- 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 8
Actividad 8

Control de intensidad de 3 LED por Puerto Serie
En este montaje se controlará la intensidad de tres LEDs diferentes (situados en los pines 9, 10 y 11).
Se les indicará por puerto serie la siguiente sentencia ‘LED X: Value’, donde X corresponde al pin (9, 10 o 11) y ‘Value’ corresponde a la intensidad entre 0-100%.
Como se hará uso de la señal PWM, deberemos convertir ese porcentaje en un valor en el rango 0-255. Para ello, haremos uso de la función map() antes descrita.
Solución
const int pin_led_1 = 9; // Definimos el pin donde conectamos LED 1
const int pin_led_2 = 10; // Definimos el pin donde conectamos LED 2
const int pin_led_3 = 11; // Definimos el pin donde conectamos LED 3
// Para hacer la pausa usaremos la función millis(), para esto necesitaremos
// la siguiente variable donde guardaremos el valor de millis() después de
// imprimir cada mensaje
unsigned long tiempo_transcurrido = 0;
void setup() {
Serial.begin(9600); // Inicializamos la comunicación serial
pinMode(pin_led_1, OUTPUT); // Inicializamos el pin del LED 1 como salida
pinMode(pin_led_2, OUTPUT); // Inicializamos el pin del LED 2 como salida
pinMode(pin_led_3, OUTPUT); // Inicializamos el pin del LED 3 como salida
analogWrite(pin_led_1, 0); // Apagamos el LED 1
analogWrite(pin_led_2, 0); // Apagamos el LED 2
analogWrite(pin_led_3, 0); // Apagamos el LED 3
}
void loop() {
// Comprobamos que tengamos datos entrantes en el Serial
if(Serial.available()) {
String mensaje = Serial.readString(); // Leemos la cadena de texto
// Extraemos del mensaje el LED que debemos modificar
int numero_led = mensaje.substring(4, 5).toInt();
// Extraemos del mensaje el valor de la PWM de 0-100 y lo
// convertimos a un valor de 0-255
int valor_led_100 = mensaje.substring(7).toInt();
int valor_led_255 = map(valor_led_100, 0, 100, 0, 255);
// Modificamos la PWM del LED que corresponda
if(numero_led == 1)
analogWrite(pin_led_1, valor_led_255);
if(numero_led == 2)
analogWrite(pin_led_2, valor_led_255);
if(numero_led == 3)
analogWrite(pin_led_3, valor_led_255);
}
}
| Vistas | |
|---|---|
| 27 | Número de vistas |
| 27 | 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.