Gráfico de barras LED
El gráfico de barras, una serie de LED en una línea, como se ve en una pantalla de audio, es una pantalla de hardware común para sensores analógicos. Se compone de una serie de LED en una fila, una entrada analógica como un potenciómetro y un pequeño código en medio. Puede comprar pantallas de gráficos de barras multi-LED bastante baratas, como esta . Este tutorial muestra cómo controlar una serie de LED en una fila, pero se puede aplicar a cualquier serie de salidas digitales.
Hardware requerido
- Arduino o Genuino Board
- Pantalla gráfica de barras LED o 10 LEDs
- Potenciómetro
- 10 resistencias de 220 ohmios
- cables de conexión
- tablero de circuitos
Circuito
haga clic en la imagen para agrandar
Imagen desarrollada utilizando Fritzing . Para más ejemplos de circuitos, vea la página del proyecto Fritzing
Esquemático:
haga clic en la imagen para agrandar
Código
El boceto funciona así: primero lees la entrada. Asigna el valor de entrada al rango de salida, en este caso diez LED . A continuación, configura un bucle for para iterar sobre las salidas. Si el número de salida en la serie es más bajo que el rango de entrada mapeado, enciéndalo. Si no, apágalo.
const int analogPin =A0 ; // el pin que el potenciómetro está conectado a
const int ledCount = 10 ; // el número de LED en el gráfico de barras
int ledPins [ ] = {
2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11
} ; // una matriz de números de pin a la que los LED están unidos
void setup ( ) {
// bucle sobre la matriz de pines y establecer todos ellos a la salida:
para ( int thisLed = 0 ; thisLed < ledCount ; thisLed ++ ) {
pinMode ( ledPins [ thisLed ] , OUTPUT ) ;
}
}
Void loop ( ) {
// leer el potenciómetro:
int sensorReading = analogRead ( analogPin ) ;
// asigna el resultado a un rango de 0 a la cantidad de LED:
int ledLevel = map (sensorReading , 0 , 1023 , 0 , ledCount ) ;
// bucle sobre la matriz de LED:
para ( int thisLed = 0 ; thisLed < ledCount ; thisLed ++ ) {
// si el índice del elemento de la matriz es menor que ledLevel,
// encienda el pin para este elemento:
if ( thisLed < ledLevel ) {
digitalWrite ( ledPins [ thisLed ] , HIGH ) ;
}
// desactivar todos los pines más altos que ledLevel:
else {
digitalWrite ( ledPins [ thisLed ] , LOW ) ;
}
}
}