12 LED fényerejének változtatása, egymás után, egy Arduino Mega kártya segítségével.
Utolsó felülvizsgálat: 2022.02.04 16:50
Ez a példa egyenként 12 LED-et erősít fel és halványít el egy Arduino Mega kártyán, kihasználva az alaplap PWM-kompatibilis digitális kivezetéseinek megnövekedett számát.
Hardver szükséglet
Arduino Mega kártya
12 piros LED
12 220 ohm-os ellenállás
összekötő vezetékek
dugdosós próbapanel (breadboard)
Az áramkör

Csatlakoztassa a 12 LED hosszabb, pozitív lábait (anódjait) a 2-13-as digitális kivezetésekhez 220 ohmos áramkorlátozó ellenállások között. Csatlakoztassa a rövidebb negatív lábakat (katódokat) a testhez.
Vázlat

A kód
Az alábbi kód setup()
függvényében egy for()
ciklust használunk a Mega 2-13 digitális kivezetéseinek kimenetként való hozzárendelésére.
Ezután az alábbi program loop()
függvényében a beágyazott for()
ciklusok hármasát használjuk.
A ciklusok közül az első,
for (int thisPin =lowestPin; thisPin <= highestPin; thisPin++)
egyenként mozog az egyes LED-eken, a legalacsonyabb kivezetésűtől a legmagasabbig. Mielőtt ez a ciklus az egyik kivezetésről a másikra léphetne, két dolgot kell teljesíteni. Először az alábbi kódsorokon keresztül világítsa meg az egyes LED-eket:
for (int brightness = 0; brightness < 255; brightness++) {
analogWrite(thisPin, brightness);
delay(2);
}
A fenti cikluson minden egyes áthaladáskor a változó fényerő egy ponttal növekszik, és ez az érték a fő ciklus aktuálisan kiválasztott kivezetésére íródik. Amelyik kivezetés eléri a maximális PWM értéket (255), a következő ciklus indul el:
for (int brightness = 255; brightness >= 0; brightness--) {
analogWrite(thisPin, brightness);
delay(2);
}
Ez a ciklus levon egy pontot a fényerő változóból, és a LED-et visszaviszi 0-ra. A nulla elérése után a fő for()
ciklus elindul, és a program továbblép a következő LED kivezetésre, megismételve a fent említett lépéseket.
/*
Mega analogWrite() test
Ez a vázlat a 2–13. digitális kivezetéseken egyesével felerősíti-elhalványítja a LED-eket.
Ezt a vázlatot az Arduino Megához írták, és nem fog működni más kártyákon.
Az áramkör:
- LED-ek a 2-13 kivezetésektől a földhöz csatlakoztatva.
created 8 Feb 2009
by Tom Igoe
Ez a kód nyilvános.
https://docs.arduino.cc/built-in-examples/analog/AnalogWriteMega
*/
// Ezek az állandók nem változnak. A használt kivezetések elnevezésére szolgálnak:
const int lowestPin = 2;
const int highestPin = 13;
void setup() {
// állítsa be a 2-13 kivezetéseket kimenetre:
for (int thisPin = lowestPin; thisPin <= highestPin; thisPin++) {
pinMode(thisPin, OUTPUT);
}
}
void loop() {
// ciklus a kivezetéseken:
for (int thisPin = lowestPin; thisPin <= highestPin; thisPin++) {
// erősítse fel a LED-et ezen a kivezetésen kikapcsolt állapotról a legfényesebbre:
for (int brightness = 0; brightness < 255; brightness++) {
analogWrite(thisPin, brightness);
delay(2);
}
// halványítsa el a LED-et ezen a kivezetésen a legfényesebbről kikapcsolt állapotra:
for (int brightness = 255; brightness >= 0; brightness--) {
analogWrite(thisPin, brightness);
delay(2);
}
// szünet a LEDek között:
delay(100);
}
}
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.