- Portada
- Descripción del curso
- Fundamentos de Arduino y electrónica
- Fundamentos de programación Arduino
-
Electrónica del Escornabot I
-
Introducción
-
Lista de materiales
-
Pulsadores de secuencia I
-
Pulsadores Secuencia II
-
Pulsadores Secuencia III
-
LEDs de indicación de secuencia
-
Actividad 9
-
Actividad 10
-
Actividad 11
-
Zumbador I
-
Zumbador II
-
Zumbador III
-
Actividad 12
-
Actividad 13
-
Funciones
-
Actividad 14
-
Clases
-
Actividad 15
-
Arrays en Arduino
-
Actividad 16
-
- Montaje del robot
- Electrónica del Escornabot II
Actividad 5
Actividad 5

Control de intensidad de un LED con PWM
En este circuito se partirá del Circuito 3 pero se hará variar la intensidad del LED haciendo uso de una señal PWM. Una vez presionado el pulsador, se iluminará el LED del pin 9 con diferentes valores del ciclo de trabajo de PWM, por ejemplo: 30, 64, 128 y 255. Se debe dejar un tiempo de 500ms entre valores para apreciar correctamente los cambios.
En este caso, además de las sentencias de código vistas hasta ahora, será necesario emplear la función analogWrite(pin, value). En ella se debe indicar el pin de la salida PWM y con value se indica el ciclo de trabajo en un valor entre 0 y 255 (correspondiente a 8 bits).
Tras finalizar el ejemplo, se aprovechará el mismo montaje para controlar el incremento de intensidad con cada pulsación. Se debe conseguir que el LED de forma cíclica con cada pulsación corta del botón incremente su intensidad entre los 4 valores anteriores y en la quinta pulsación se apague.
Solución 1
const int pin_led = 9; // Definimos el pin donde conectamos el LED
const int pin_pulsador = 10; // Definimos el pin donde conectamos el Pulsador
void setup() {
pinMode(pin_led, OUTPUT); // Inicializamos el pin del LED como salida
pinMode(pin_pulsador, INPUT); // Inicializamos el pin del Pulsador como entrada
digitalWrite(pin_led, LOW); // Apagamos el LED
}
void loop() {
// Comprobamos que la lectura del Pulsador
if(digitalRead(pin_pulsador) == HIGH) {
analogWrite(pin_led, 30);
delay(500);
analogWrite(pin_led, 64);
delay(500);
analogWrite(pin_led, 128);
delay(500);
analogWrite(pin_led, 255);
}
}
Solución 2
const int pin_led = 9; // Definimos el pin donde conectamos el LED
const int pin_pulsador = 10;// Definimos el pin donde conectamos el Pulsador
int pulsaciones = 0; // Variable auxiliar para controlar las pulsaciones
void setup() {
pinMode(pin_led, OUTPUT); // Inicializamos el pin del LED como salida
pinMode(pin_pulsador, INPUT); // Inicializamos el pin del Pulsador como entrada
digitalWrite(pin_led, LOW); // Apagamos el LED
}
void loop() {
// Comprobamos que la lectura del Pulsador
if(digitalRead(pin_pulsador) == HIGH) {
if(pulsaciones == 0) { // Primera pulsación
analogWrite(pin_led, 30); // Establecemos el valor de la PWM a 30/255
pulsaciones = pulsaciones + 1;// Sumamos una pulsación a la cuenta
}
if(pulsaciones == 1) { // Segunda pulsación
analogWrite(pin_led, 64); // Establecemos el valor de la PWM a 64/255
pulsaciones = pulsaciones + 1;// Sumamos una pulsación a la cuenta
}
if(pulsaciones == 2) { // Tercera pulsación
analogWrite(pin_led, 128); // Establecemos el valor de la PWM a 128/255
pulsaciones = pulsaciones + 1;// Sumamos una pulsación a la cuenta
}
if(pulsaciones == 3) { // Cuarta pulsación
analogWrite(pin_led, 255); // Establecemos el valor de la PWM a 255/255
pulsaciones = pulsaciones + 1;// Sumamos una pulsación a la cuenta
}
if(pulsaciones == 4) { // Quinta pulsación
analogWrite(pin_led, 0); // Establecemos el valor de la PWM a 0/255
pulsaciones = 0; // Reiniciamos la cuenta de pulsaciones
}
}
}

| Vistas | |
|---|---|
| 33 | Número de vistas |
| 33 | Vistas de miembros |
| 0 | Vistas públicas |
| Acciones | |
|---|---|
| 0 | Gustos |
| 0 | No me gusta |
| 0 | Comentarios |
Compartir por correo
Por favor iniciar sesión para compartir esto webpage por correo.