sziasztok.
Sajnos kicsit lassan haladok. A 13-as leckénél megakadtam. Tajtilaci által leírt progi elég érthető, de van benne bizonytalanság.
A számláló fut, megcsinálja az összehasonlítást, ha az érték kisebb 127.-él a led világít, ha nagyobb, akkor nem.
bekötöttem az 5v kapcsoló 6-os láb értéket, de nem látni, hogy tenne vmit. akkor sem, ha a led magas értéken van, akkor sem, ha alacsony értéken.
Meghatároztam, hogy a 6-os láb alacsony értéket vegyen fel, de érdemben ez sem változtatott.
Persze, ha a számláló növekedését befolyásolom 1-ről 5 re, akkor talán van némi eredmény de még ez is bizonytalan.
byte pwm=127; //kezdeti jelkitoltes
byte softpwm=0;//belső szamlalo 0rol indul
void setup(){
pinMode(13, OUTPUT);//13láb a kimenet
pinMode(6, INPUT);//6 lab a nyomogomb bemenet
}
void loop(){
softpwm=softpwm+5;//5-el növelem a valtozot
if(softpwm<pwm) {
digitalWrite(13, HIGH);//LED be
} else {
digitalWrite(13, LOW);//LED ki
}
digitalRead(6)==LOW;
if(digitalRead(6) == HIGH) { //nyomogomb nyomva
delay(100); //késleltet 100 msec
}
delay(3);// varakozas ket lepes kozt
}
60 nap alatt Arduino #13 - PWM, analogWrite
Re: 60 nap alatt Arduino #13 - PWM, analogWrite
Sziasztok!
Hiányos elektrotechnikai ismereteimnek tudom be - s pont ezért vagyok itt - hogy nem értem miért működik az alábbi áramkör. RGB LED működtetése a cél, és működik is. Kódot azért nem mellékelek, mert igazából a kapcsolással van gondom.
3V3 -ról kapja egyetlen 100 Ohmos ellenálláson keresztül a tápot. Pwm vezérlést pedig a 11,10,9 pin-ekről. Nincs azonban GND-re kötve sehol!
A tápot - sajátos módon - a leghosszabb lábon kapja, ami a pozitív pólus, szemben a legtöbb leírás állításával, melyek szerint ezt kellene GND-re kötni.
Mivel a pwm a feszültség időtartamával generál pszeudo analóg jelet - úgy gondoltam nem lenne szabad ilymódon bekötni. Valahol szükség lenne GND-re. Úgy viszont nem működött. Mit nem tudok, vagy mit tudok rosszul?
Hiányos elektrotechnikai ismereteimnek tudom be - s pont ezért vagyok itt - hogy nem értem miért működik az alábbi áramkör. RGB LED működtetése a cél, és működik is. Kódot azért nem mellékelek, mert igazából a kapcsolással van gondom.
3V3 -ról kapja egyetlen 100 Ohmos ellenálláson keresztül a tápot. Pwm vezérlést pedig a 11,10,9 pin-ekről. Nincs azonban GND-re kötve sehol!
A tápot - sajátos módon - a leghosszabb lábon kapja, ami a pozitív pólus, szemben a legtöbb leírás állításával, melyek szerint ezt kellene GND-re kötni.
Mivel a pwm a feszültség időtartamával generál pszeudo analóg jelet - úgy gondoltam nem lenne szabad ilymódon bekötni. Valahol szükség lenne GND-re. Úgy viszont nem működött. Mit nem tudok, vagy mit tudok rosszul?
Nincs meg a kellő jogosultságod a hozzászóláshoz csatolt állományok megtekintéséhez.
Re: 60 nap alatt Arduino #13 - PWM, analogWrite
Egy LED-nek két kivezetése van. Ha áramforráshoz csatlakoztatod, akkor világít. A negatív (katód) megy a GND-re, a pozitív (anód) a tápfeszültségre (VCC). Eddig megvan, ugye?
Az ellenállás akkor kell a LED elé, ha nem áramgenerátorral hajtod. A LED ugyanis olyan, hogy nagyon sok áramot szeretne felvenni, akár annyit is, hogy kiégjen. Ezt korlátozza az ellenállás.
Egy mikrokontrollerről két módon is meghajthatsz egy LED-et. A katódot GND-re kötöd, az anódot pedig (ellenálláson keresztül) a mikrokontroller kimenetére. Ha a kimenetet alacsony szintre állítod, akkor ott föld (GND) lesz, a LED nem világít, mert mindkét lába földön van. Ha a kimenetet magasra állítod, akkor ott megjelenik a tápfeszültség (VCC), a LED pedig világítani fog. Nincs közvetlenül VCC-re kötve, mert azt a mikrokontrolelren keresztül kapja. Ezt hívják pozitív logikának. Sok mikrokontroller rendelkezik aszimmetrikus kimenettel, vagyis több áramot tud nyelni, mint adni. Ezért bevett mód az, hogy a LED anódja megy a VCC-re, a katódja pedig a mikrokontroller kimenetére. Ekkor ha a kimenet magas, akkor a LED nem világít, ha alacsony, akkor viszont igen. Ilyenkor a GND-t "adja" a mikrokontroller.
Egy RGB LED nem más, mint három LED összeépítve. Egy LEDnek két lába van, három LEDnek hat, ebből mégics csak négy jön ki. Ezt két módn lehet elérni, vagy a katódokat kötöd össze (common cathode) és az anódok vannak külön kivezetve, vagy az anódokat kötöd össze (common anode) és a katódok vannak külön kivezetve. Tehát a legtöbb leírás, amit olvastál az közös katódos RGB LED-ről ír, ez pedig egy közös anódos RGB LED. A hosszú lábát kell VCC-re kötni, a többit pedig GND-re.
"Mivel a pwm a feszültség időtartamával generál pszeudo analóg jelet" Ha ezt végig gondolod, akkor rájössz, hogy nagy frekvenciával kapcsolgat GND és VCC között egy kimenetet. Teljesen mindegy, hogy pozitív vagy negatív logikájó eszközt kötsz rá, működni fog. A közös katódos LED az analogWrite 255-re lesz maximális fényerőn, míg a közös anódos analogWrite 0-ra.
Megjegyzés: Ha az Arduino 5 Voltról megy, akkor a LED ne 3.3-ról menjen. Ja, és színenként legyen előtét ellenállás.
Az ellenállás akkor kell a LED elé, ha nem áramgenerátorral hajtod. A LED ugyanis olyan, hogy nagyon sok áramot szeretne felvenni, akár annyit is, hogy kiégjen. Ezt korlátozza az ellenállás.
Egy mikrokontrollerről két módon is meghajthatsz egy LED-et. A katódot GND-re kötöd, az anódot pedig (ellenálláson keresztül) a mikrokontroller kimenetére. Ha a kimenetet alacsony szintre állítod, akkor ott föld (GND) lesz, a LED nem világít, mert mindkét lába földön van. Ha a kimenetet magasra állítod, akkor ott megjelenik a tápfeszültség (VCC), a LED pedig világítani fog. Nincs közvetlenül VCC-re kötve, mert azt a mikrokontrolelren keresztül kapja. Ezt hívják pozitív logikának. Sok mikrokontroller rendelkezik aszimmetrikus kimenettel, vagyis több áramot tud nyelni, mint adni. Ezért bevett mód az, hogy a LED anódja megy a VCC-re, a katódja pedig a mikrokontroller kimenetére. Ekkor ha a kimenet magas, akkor a LED nem világít, ha alacsony, akkor viszont igen. Ilyenkor a GND-t "adja" a mikrokontroller.
Egy RGB LED nem más, mint három LED összeépítve. Egy LEDnek két lába van, három LEDnek hat, ebből mégics csak négy jön ki. Ezt két módn lehet elérni, vagy a katódokat kötöd össze (common cathode) és az anódok vannak külön kivezetve, vagy az anódokat kötöd össze (common anode) és a katódok vannak külön kivezetve. Tehát a legtöbb leírás, amit olvastál az közös katódos RGB LED-ről ír, ez pedig egy közös anódos RGB LED. A hosszú lábát kell VCC-re kötni, a többit pedig GND-re.
"Mivel a pwm a feszültség időtartamával generál pszeudo analóg jelet" Ha ezt végig gondolod, akkor rájössz, hogy nagy frekvenciával kapcsolgat GND és VCC között egy kimenetet. Teljesen mindegy, hogy pozitív vagy negatív logikájó eszközt kötsz rá, működni fog. A közös katódos LED az analogWrite 255-re lesz maximális fényerőn, míg a közös anódos analogWrite 0-ra.
Megjegyzés: Ha az Arduino 5 Voltról megy, akkor a LED ne 3.3-ról menjen. Ja, és színenként legyen előtét ellenállás.
Re: 60 nap alatt Arduino #13 - PWM, analogWrite
Vargham !
Nagyon szépen köszönöm a részletes választ. Pontosan ezekre az információkra volt szükségem, illetve arra - az egyébként magától értetődő gondolatra - amely nem jutott eszembe, hogy a pwm GND és VCC között alternál. Aha..
Átalakítottam az áramkört a leírtaknak megfelelően, és rendben működik is. A 3V3 meghajtásnak az az egyszerű oka van, hogy csak 100 Ohm-os ellenállás volt kéznél, és a LED adatlapja szerint 2-3 V a nyitófeszültség. Ily módon ráadásul kevésbé volt szemet rongáló a látvány is.
Mégegyszer köszönet, a gyors és hasznos válaszért!
Nagyon szépen köszönöm a részletes választ. Pontosan ezekre az információkra volt szükségem, illetve arra - az egyébként magától értetődő gondolatra - amely nem jutott eszembe, hogy a pwm GND és VCC között alternál. Aha..
Átalakítottam az áramkört a leírtaknak megfelelően, és rendben működik is. A 3V3 meghajtásnak az az egyszerű oka van, hogy csak 100 Ohm-os ellenállás volt kéznél, és a LED adatlapja szerint 2-3 V a nyitófeszültség. Ily módon ráadásul kevésbé volt szemet rongáló a látvány is.
Mégegyszer köszönet, a gyors és hasznos válaszért!
Re: 60 nap alatt Arduino #13 - PWM, analogWrite
Sziasztok!
Nyilván senki sem fog szoftveres PWM vezérlést használni egy DOT mátrix fényerő szabályzásához! Az MPU 99 százalékát használja.
Nyilván senki sem fog szoftveres PWM vezérlést használni egy DOT mátrix fényerő szabályzásához! Az MPU 99 százalékát használja.
Kód: Egész kijelölése
// Szoftveres PWM vezérlés nyomógombbal HF_2
/* A nyomógomb a digitális 6-os láb és a GND-re van kötve,
és egy 4,7k÷10k ellenállás a 6-os láb és a +5V-ra. */
byte GOMBpin = 6; // nyomógomb a 6-os lábon
byte pwm=80; // Kezdeti jelkitöltés
byte softpwm=0; // belső számlaló
void setup() {
pinMode(13, OUTPUT); // A 13-as láb kimenet, LED
}
void loop() {
softpwm++; // softpwm=softpwm+1
if (softpwm < pwm) {
digitalWrite(13, HIGH); // LED be
}
else { digitalWrite(13, LOW); // LED ki
}
if (digitalRead(GOMBpin) == LOW) { // Várakozás 100 ms
delay (100);
}
}