sábado, 22 de agosto de 2015

Obtener una lectura (analógica) desde un potenciómetro que activará de 1 a 5 LED (función map()).



/*Código IDE Arduino*/

// Definición de constantes:
const int analogPin = A0;   // pin de conexión del potenciómetro
const int ledCount = 5;    // por 5 LED conectados
int ledPins[] = {2, 3, 4, 5, 6};   // array conteniendo números de pines de conexión de los LED
void setup() {
//lazo con el número de pin y envío a la salida del array:
for (int thisLed = 0; thisLed < ledCount; thisLed++) {
pinMode(ledPins[thisLed], OUTPUT); 
  }
}
void loop() {
  //lectura del potenciómetro:
  int sensorReading = analogRead(analogPin);
  //convertir el resultado a un rango entre 0 y el número de LED (5):
  int ledLevel = map(sensorReading, 0, 1023, 0, ledCount);
  
// lazo sobre el array de LED:
  for (int thisLed = 0; thisLed < ledCount; thisLed++) {
    //si el índice de elementos del array es menor que ledLevel, encender este pin:
    if (thisLed < ledLevel) {
      digitalWrite(ledPins[thisLed], HIGH);
    } 
    //apagar todos los pines más altos que ledLevel:
    else {
      digitalWrite(ledPins[thisLed], LOW); 
    }
  }
}

0 comentarios: