A #13 hf-nek már a minta példája sem működik nekem. A minta célja gondolom, hogy folyamatosan növekvő fényerő legyen a leden. Nyilván úgy csináljuk, hogy a kitöltést folyamatosan növeljük.
Azt látom, hogy a pwm változót létrehoztuk 1 kezdő értékkel, és hogy a softpwm-et addig növeljük, amíg el ne éri pwm értékét, akkor maceráljuk a ledet, de pwm-et senki nem növeli, így nem fog növekedni a kitöltés, hiszen az első lépésben már hamis a feltétel. Egy rövid villanás az eredmény. Ezért a végére odaírtam a pwm változó növelését.
Kód: Egész kijelölése
byte pwm=1; // Milyen kitoltesu legyen a jel indulaskor (0..255)
byte softpwm=0; // belso szamlalo
void setup() {
pinMode(13, OUTPUT); //A 13-as lab kimenet mert gyarilag ezen van LED
}
void loop() {
softpwm++; //softpwm=softpwm+1
if (softpwm < pwm) {
digitalWrite(13, HIGH); // LED on
} else {
digitalWrite(13, LOW); // LED off
pwm++;
}
delay(3); // varakozas ket lepes kozt
}
Mondjuk Azt sem értem miért is villan fel, mert a loop első lépésében még az if előtt növeljük a softpwm értékét, ezért a legelső összehasonlításban már az "else" ágon találjuk magunkat. És innentől már növelhetem én a pwm értékét, azt mindíg követi a softpwm, és mindíg egyenlők leszne, vagyis minden kanyarban az else ág fog futni. De ha kiveszem a pwm növelését, vagyis az eredeti példához vissza térek, akkor meg ki kapcsolja be a ledet.
Na most jöhet a segítség,, mert valamit nagyon nem veszek észre.
Ja, amikor a bájton átfordul, akkor egy alkalommal az "igaz" ágon lesz, ezért villan fel a led. De a segítség még kell, mert a működés elmarad a várttól, és még a leckébe bele sem kezdtem.