hu en es hu en en en hu hu de hu hu sk hu hu hu hu hu hu hu hu hu hu zh cs kn fr ru en en kn kn hu hu hu hu hu cs zh cs kn fr hu hu hu kn hu hu hu hu hu hu hu hu ceb zh cs hu es kn fr hu en de en en kn hu en zh en en kn kn hu en hu hu hu hu hu hu hu hu hu hu en
Néha szükség van arra, hogy a kimenő jel erősségét változtatni tudjuk, erre szolgálnak a Arduino
PWM kimenetei. Amolyan digitálisan szimulált analóg kimenetek. A működésük dióhéjban:
mivel digitális kimenetek ezért csak két értéket vehetnek fel (0,5V) ahhoz, hogy több értéket kitudjunk csiholni a kimenetből (analóggá tehessük azt) ezt az 5V-os tápfeszt másodpercenként
többször meg kell szakítanunk, négyszögjel impulzust kell létre hoznunk. A megszakítások időkitevője határozza meg a kimenő impulzus hosszát. Bővebben: *RGB led vezérlés 140408
Az Unon 6db PWM kimenet található ezeket az analogWrite() utasítással programozhatjuk.
Az utasítás két értéket használ: az első a digitális kimenet száma, a második az érték amit fel
szeretnénk vétetni vele, ez 0 és 255 közé eső szám lehet.
Nézzünk egy nagyon egyszerű kapcsolást, csak egy led és egy 270ohmos áramkorlátozó ellenállás szükséges hozzá.
Kössük a ledet az ellenálláson keresztül a 3 digitális kimenetre, a led másik kivezetését a gnd-re.
Töltsük fel a következő progit:
Folyamatosan növeli a led fény erejét, majd max értéknél(255) újra kezdi.
Az Uno PWM kimenetei: 3,5,6,9,10,11-es digitális kimenetek.
Most ezt az analóg kimenetet összeszerkesztjük egy analóg bemenettel, ehhez már kellenek az előző
részben tanultak. Rá kötünk a kapcsolásunkra egy 10kohmos potenciamétert is amivel szabályozhatjuk a led fényerejét.
A poti középső kimenetét A0-ra, jobb oldalát +5V-ra, bal oldalát GND-re kötjük.
int analog = analogRead(A0); // beolvassuk analog bemenet értékét (0-1023)
int digit = map(analog,0,1023,0,255); //átalakítjuk kimeneti értékké (0-255)
analogWrite(3,digit); // kiíratjuk a hármas kimenetre
A potis fényerő szabályozásról ennyit, most nézzünk meg egy nyomógombosat is.
Bekötünk két nyomógombot, amik segítségével fogjuk a fényerőt szabályozni, ezek a 2-es és 4-es
kimenethez fognak kapcsolódni mindenféle felhúzó ellenállás nélkül, vagyis pontosabban a
beépített felhúzó ellenállást fogjuk használni.
A felhúzó ellenállások bekapcsolására a következő parancs szolgál: pinMode(kim,INPUT_PULLUP);
kim: a kimenet száma
INPUT_PULLUP: a felhúzó ellenállást bekapcsoló konstans
Nézzük a használatát: először a nyomógombokat kötjük be a 2-es 4-es kimenetre, a gombok másik felét a Gnd-re. Ha ez megvan a következő kódot töltsük fel:
int digit = 0;
pinMode(2,INPUT_PULLUP); //felhúzó ellenállás bekapcsolása
//csak akkor hajtódik végre az if ha 2-es bemenet magas állapotban és digit 255-nél kisebb
//akkor hajtódik végre ha 4-es bemenet maga állapotban és digit nagyobb mint 0
Vizsgáljuk meg egy kicsit közelebbről a következő sort:
ebben érdekesség a két & jel ez az összehasonlító kifejezések összekapcsolására szolgál logikai
és ként. Magyarul leírva: ha első kifejezés igaz ÉS a második kifejezés is igaz, csak is akkor
hajtódnak végre az if utasításai.
az és-t kitárgyaltuk, a vagy-nál elég ha csak egyik kifejezés igaz az if utasítások végrehajtódnak.
A nem egy külön állatfaj, itt az if akkor igaz ha a kifejezés hamis. Egy példa:
if(!digit) – csak akkor hajtódik végre ha digit értéke 0 .
Homepage | contact | html | css | © 2007 Anyone | Design by www.mitchinson.net | This work is licensed under a Creative Commons Attribution 3.0 License