CONTROL DEL BRILLO POR UN POTENCIOMETRO ANALOGICO
El LED está conectado al pin analógico 11, y el pin central del potenciómetro está conectado al pin analógico 0. Los cables de tierra (negativo) y 5V se conectan a los pines Arduino GND y 5V. Tener en cuenta que el LED tiene una pata más corta (cátodo), que debe conectarse a tierra o negativo. El más largo es conectado a la resistencia de 220 ohmios.
La función setup()
Inicia la comunicación en serie a una velocidad de 9600 y define en el pinMode, el ledPin como salida.
void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
}
La función loop()
La función loop(), lo primero que debe hacer es declarar una nueva variable de entera local llamada sensorValue para almacenar el valor del potenciómetro conectado al pin analógico 0. Inicializa la variable a este valor mediante la función analogRead() y especificando A0 (Analog 0) como su pin. Si fueras a leer pin analógico 1, escribirías A1, y así sucesivamente.
A continuación, imprime el valor del potenciómetro al búffer serie utilizando la función Serial.println (). Si abres el Monitor de serie mientras el programa se está ejecutando, verás que los valores provenientes del rango del potenciómetro van de 0 a 1023. Tu deseas utilizar este valor para establecer el brillo del LED, pero el alcance del brillo debe estar en un rango de 0 a 255. La solución a este problema será mapear los valores de El potenciómetro desde su rango hasta el rango del potenciómetro. Usarás esta técnica muy
a menudo en tus proyectos; Afortunadamente, Arduino tiene una función para realizar esta operación llamada mapa (). La función map() toma cinco argumentos: map (value, fromLow, fromHigh, toLow, toHigh). El valor del argumento es el valor actual que se asignará. desdeLow y fromHigh definen el inferior y los valores más altos del rango de origen, y paraLow y toHigh, los valores más bajos y más altos del rango objetivo. El brillo de LED debe definirse como map(sensorValue, 0,1023,0,255), por lo que si el valor del sensor es 1023, el brillo del LED es 255. La función map() siempre devolverá un número entero, incluso en el caso de que la asignación diera lugar a un número decimal o de punto flotante. Una vez que haya determinado el brillo del LED, escribe este valor en el pin LED usando la función analogWrite (pin, valor).
void loop() {
int sensorValue = analogRead(A0);
Serial.println(sensorValue);
int ledBrightness = map(sensorValue,0,1023,0,255);
analogWrite(ledPin, ledBrightness);
}
No hay comentarios:
Publicar un comentario