Analóg írás 12 LED-del egy Arduino Mega-n

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.