Egy LED fényereje

Bemutatja az analóg kimenet használatát egy LED fényerejének változtatásával.


Utolsó felülvizsgálat: 2022.02.04 16:50


Ez a példa bemutatja az analogWrite() függvény használatát egy LED fényerejének felerősítésével és csökkentésével. Az AnalogWrite impulzusszélesség-modulációt (PWM) használ, amely a digitális kivezetést nagyon gyorsan be- és kikapcsolja, különböző be- és kikapcsolási arányokkal, a fényerő vezérléséhez.

Hardver szükséglet

  • Arduino kártya

  • LED

  • 220 ohm-os ellenállás

  • összekötő vezetékek

  • dugdosós próbapanel (breadboard)

Az áramkör

Csatlakoztassa a LED anódját (a hosszabb, pozitív lábát) a kártya 9-es digitális kimeneti kivezetéséhez egy 220 ohmos ellenálláson keresztül. Csatlakoztassa a katódot (a rövidebb, negatív láb) közvetlenül a földhöz.

Vázlat

A kód

Miután a 9-es kivezetést ledPin-nek nyilvánította, a kód setup() függvényében nincs mit tenni.

Az analogWrite() függvény, amelyet a kód fő ciklusában fog használni, két argumentumot igényel: az egyik megmondja a függvénynek, hogy melyik kivezetésre írjon, a másik pedig azt, hogy milyen PWM értéket írjon.

A LED fényerejének felerősítése majd csökkentése érdekében fokozatosan növelje a PWM értékét 0-ról (teljesen kikapcsolva) 255-re (teljesen bekapcsolva), majd ismét vissza 0-ra a ciklus befejezéséhez. Az alábbi vázlaton a PWM értéket a brightness nevű változóval állítjuk be. A cikluson keresztül minden alkalommal a fadeAmount változó értékével növekszik.

Ha a brightness értékének bármelyik szélső pontján van (0 vagy 255), akkor a fadeAmount értéke negatívjára változik. Más szóval, ha a fadeAmount értéke 5, akkor -5-re lesz állítva. Ha -5, akkor 5-re lesz állítva. A ciklusban a következő alkalommal ez a fényerő változásának irányát is megváltoztatja.

Az analogWrite() nagyon gyorsan képes megváltoztatni a PWM értéket, így a vázlat végén lévő késleltetés szabályozza a fényerő változásának sebességét. Próbálja meg módosítani a késleltetés értékét, és nézze meg, hogyan változtatja meg a fényerő megváltozását.

/*
  Fade

  Ez a példa azt mutatja be, hogyan lehet a 9. kivezetésen lévő LED fényerejét változtatni
  az analogWrite() függvény használatával.

  Az analogWrite() függvény PWM-et használ, ezért ha meg akarja változtatni a használt kivezetést,
  feltétlenül használjon másik PWM-képes kivezetést. A legtöbb Arduino-n a PWM kivezetéseket
  "~" jellel azonosítják, például ~3, ~5, ~6, ~9, ~10 és ~11. 

  Ez a példakód nyilvános.

  https://docs.arduino.cc/built-in-examples/basics/Fade
*/

int ledPin = 9;        // a PWM kivezetés, amelyhez a LED csatlakozik
int brightness = 0;    // milyen fényes a LED
int fadeAmount = 5;    // hány ponttal változtassa LED fényerejét

// a setup (beállítási) funkció egyszer fut le, amikor megnyomja a reset gombot, vagy bekapcsolja a kártyát:
void setup() {
  // a 9. kivezetés kimenet lesz:
  pinMode(ledPin, OUTPUT);
}

// a loop (ciklus) függvény újra és újra lefut, örökké:
void loop() {
  // a 9. kivezetés fényerejének beállítása:
  analogWrite(ledPin, brightness);

  // módosítsa a fényerőt a következő alkalommal a ciklusban:
  brightness = brightness + fadeAmount;

  // fordítsa meg a fényerő változásának irányát a szélső értéknél:
  if (brightness <= 0 || brightness >= 255) {
    fadeAmount = -fadeAmount;
  }
  // várjon 30 ezredmásodpercet, hogy láthassa a hatást
  delay(30);
}

Tudj meg többet

További alapvető oktatóanyagokat a beépített példák részben talál.

Felfedezheti a nyelvi referenciát is, az Arduino programozási nyelv részletes gyűjteményét.