Arduino – analogový vstup, digi výstup

Napadlo mě vyzkoušet analogový vstup. Připojil jsem na něj tahový potenciometr, výsledek jsem nechal posílat na sériový port, kde jsem zjistil, že má rozsah cca 0-1000. Jako výstup jsem zvolil pětici LEDek, pro každou jsem vyčlenil pětinu naměřené hodnoty a podle toho nastavil jejich svícení.

Program tentokrát s malým využitím pole (Array) abych pochopil rozdíl oproti mé „mateřštině“ PHP:

int sensorPin = A0; // select the input pin for the potentiometer (or other analog input)
int pinArray[] = {2,3,4,5,6}; // array of outputs LED pins
int count = 0;
int sensorValue = 0; // variable to store the value coming from the sensor

void setup() { // declare the pinArray as an OUTPUT:
  for (count=0; count<6; count++) {
    pinMode(pinArray[count], OUTPUT);
  }
}

void loop() { // read the value from the sensor:
  sensorValue = analogRead(sensorPin); // we have 5 LEDs for 0-1000 range of senzorValue
  if (sensorValue>0){digitalWrite(pinArray[0], HIGH);} // 1-200 lights 1 LED
  if (sensorValue>201){digitalWrite(pinArray[1], HIGH);} // 201-400 lights 2 LED
  if (sensorValue>401){digitalWrite(pinArray[2], HIGH);} // 401-600 lights 3 LED
  if (sensorValue>601){digitalWrite(pinArray[3], HIGH);} // 601-800 lights 4 LED 
  if (sensorValue>801){digitalWrite(pinArray[4], HIGH);} // 801-1000 lights 5 LED
  delay(50);
  for (count=0;count<6;count++) {
    digitalWrite(pinArray[count], LOW);
  }
}
Otevřít projekt v      , online Arduino a ESP32 simulátoru

One Reply to “Arduino – analogový vstup, digi výstup”

  1. Teď koukám, že ta definice rozsahu by šla taky pomocí for a jednoho řádku místo pěti, ale zas tolik bych neušetřil, uvidíme ráno před natáčením videa 🙂

Comments are closed.