LED oszlopdiagram

Ismerje meg, hogyan készíthet LED-oszlopdiagramot – LED-ek sorozata egy sorban.


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


Az oszlopdiagram – LED-ek sorozata egy vonalban, mint amilyen az audiokijelzőn látható – az analóg érzékelők szokásos hardveres kijelzője. Egy sor LED-ből áll, egy analóg bemenetből, például egy potenciométerből, és egy kis kódból. Meglehetősen olcsón vásárolhat több LED-es oszlopdiagram-kijelzőt, mint ez. Ez az oktatóanyag bemutatja, hogyan lehet egy sor LED-et vezérelni, de alkalmazható bármilyen digitális kimenetre.

Ez az oktatóanyag a For ciklus és Tömbök oktatóanyagból, valamint az Analóg bemenet oktatóanyagból származik.

Hardver szükséglet

  • Arduino kártya

  • LED oszlopdiagram kijelző vagy 10 LED

  • potenciométer

  • 10 220 ohm-os ellenállás

  • összekötő vezetékek

  • dugdosós próbapanel (breadboard)

Az áramkör

Vázlat

A kód

A vázlat így működik: először olvassa le a bemenetet. A bemeneti értéket leképezi a kimeneti tartományra, ebben az esetben tíz LED-re. Ezután beállít egy for ciklust, amely a kimenetek között iterál. Ha a kimenet száma a sorozatban kisebb, mint a leképezett bemeneti tartomány, akkor kapcsolja be. Ha nem, akkor kapcsolja ki.

/*
  LED bar graph

  Egy sor LED-et kapcsol be egy analóg érzékelő értéke alapján.
  Ez egy egyszerű módja az oszlopdiagram megjelenítésének. Bár ez
  a grafikon 10 LED-et használ, bármilyen számot használhat a 
  LED-ek számának és a kivezetések tömbjének megváltoztatásával.

  Ezzel a módszerrel bármilyen digitális kimenet vezérelhető,
  amely az analóg bemenettől függ.

  Az áramkör:
  - LED-ek a 2-11 kivezetésektől a földig

  created 4 Sep 2010
  by Tom Igoe

  Ez a kód nyilvános.

  https://docs.arduino.cc/built-in-examples/display/BarGraph
*/

// ezek az állandók nem változnak:
const int analogPin = A0;   // a kivezetés, amelyre a potenciométer csatlakozik
const int ledCount = 10;    // a LED-ek száma az oszlopdiagramban

int ledPins[] = {
  2, 3, 4, 5, 6, 7, 8, 9, 10, 11
};   // kivezetésszámok tömbje, amelyhez LED-ek vannak csatlakoztatva


void setup() {
  // ciklus a kivezetések tömbjéhez, és állítsa be mindegyiket kimenetre:
  for (int thisLed = 0; thisLed < ledCount; thisLed++) {
    pinMode(ledPins[thisLed], OUTPUT);
  }
}

void loop() {
  // olvasd le a potenciométert:
  int sensorReading = analogRead(analogPin);
  // képezze le az eredményt egy 0-tól a LED-ek számáig terjedő tartományba:
  int ledLevel = map(sensorReading, 0, 1023, 0, ledCount);

  // ciklus a LED-tömbhöz:
  for (int thisLed = 0; thisLed < ledCount; thisLed++) {
    // ha a tömbelem indexe kisebb, mint a ledLevel,
    // kapcsolja be az elem kivezetését:
    if (thisLed < ledLevel) {
      digitalWrite(ledPins[thisLed], HIGH);
    }
    // kapcsoljon ki minden, a ledLevelnél magasabb kivezetést:
    else {
      digitalWrite(ledPins[thisLed], LOW);
    }
  }
}

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.