Modificaremos el brillo de un LED mediante la salida digital en modo PWM y lo comandaremos con un potenciómetro conectado a una entrada analógica. Se explica el proceso de la modulación por ancho de pulso que permite obtener distintos valores de tensión en salidas digitales y también exploramos como leer una entrada analógica mediante un potenciómetro. Se introduce el concepto del bucle for.
//Capitulo 4 Primer programa que enciende y apaga de forma progresiva un LED mediante PWM.
int LED = 3; // LED en pin 3
int BRILLO;
void setup(){
pinMode(LED, OUTPUT); // pin 3 como salida
}
void loop(){
for (BRILLO = 0; BRILLO < 256; BRILLO++){ // bucle de 0 a 255
analogWrite(LED, BRILLO); // escritura en pin PWM
delay(15); // demora entre incrementos
}
for (BRILLO = 255; BRILLO >= 0; BRILLO--){ // bucle de 255 a 0
analogWrite(LED, BRILLO); // escritura en pin PWM
delay(15); // demora entre incrementos
}
}
// Capitulo 4 Segundo programa que maneja el brillo del LED mediante el potenciometro.
int LED = 3; // LED en pin 3
int BRILLO;
int POT = 0; // potenciometro en pin A0
void setup(){
pinMode(LED, OUTPUT); // pin 3 como salida
// las entradas analogicas no requieren inicializacion
}
void loop(){
BRILLO = analogRead(POT) / 4; // valor leido de entrada analogica divido por 4
analogWrite(LED, BRILLO); // brillo del LED proporcional al giro del potenciometro
}