Ejercicios C++ Arduino CDYPC1BACH
💡 EJEMPLOS RESUELTOS (MODELO)
👉 Antes de empezar, observa estos ejemplos.
👉 Son muy parecidos a los ejercicios que vienen después.
👉 Fíjate en la estructura del código.
🟦 EJEMPLO 1 · CONDICIÓN (IF)
🎯 Objetivo
Encender un LED si el sensor detecta un valor alto.
💻 Código
int sensor = A0;
int led = 8;
void setup() {
pinMode(led, OUTPUT);
}
void loop() {
int valor = analogRead(sensor);
if (valor > 500) {
digitalWrite(led, HIGH);
} else {
digitalWrite(led, LOW);
}
}
🧠 Explicación
- Leemos el sensor con
analogRead - Usamos
ifpara tomar una decisión - Encendemos o apagamos el LED según el valor
👉 Estructura clave:
if (condición) {
acción
} else {
otra acción
}
🟩 EJEMPLO 2 · BUCLE (FOR)
🎯 Objetivo
Hacer parpadear un LED 5 veces.
💻 Código
int led = 8;
void setup() {
pinMode(led, OUTPUT);
for (int i = 0; i < 5; i++) {
digitalWrite(led, HIGH);
delay(500);
digitalWrite(led, LOW);
delay(500);
}
}
void loop() {
}
🧠 Explicación
- Usamos
forpara repetir una acción - El LED se enciende y apaga 5 veces
👉 Estructura clave:
for (inicio; condición; incremento) {
acciones
}
🟧 EJEMPLO 3 · CONDICIÓN + BUCLE
🎯 Objetivo
Si el sensor detecta un valor alto, el LED parpadea 3 veces.
💻 Código
int sensor = A0;
int led = 8;
void setup() {
pinMode(led, OUTPUT);
}
void loop() {
int valor = analogRead(sensor);
if (valor > 600) {
for (int i = 0; i < 3; i++) {
digitalWrite(led, HIGH);
delay(300);
digitalWrite(led, LOW);
delay(300);
}
}
}
🧠 Explicación
- Primero comprobamos una condición (
if) - Si se cumple → ejecutamos un bucle (
for) - El LED parpadea varias veces
👉 Idea clave:
if (condición) {
for (...) {
acciones repetidas
}
}
💥 CONSEJO PARA EL ALUMNADO
👉 Todos los ejercicios siguen este patrón:
- Leer datos (sensor)
- Decidir (if)
- Actuar (LED)
- Repetir (for o loop)
👉 Si entiendes estos 3 ejemplos…
👉 puedes hacer el resto 😉
💻 PRÁCTICA ARDUINO
NIVEL 2 – CONTROL Y LÓGICA
1º BACHILLERATO
🟦 ENUNCIADOS
🔵 BLOQUE 1 · CONDICIONES
🟦 EJERCICIO 1. LED según temperatura
Lee un valor de un sensor (A0).
👉 Si es mayor de 600 → LED encendido
👉 Si no → LED apagado
🟦 EJERCICIO 2. Dos niveles de alerta
Sensor en A0:
- < 400 → LED verde
- 400–700 → LED amarillo
- 700 → LED rojo
🟦 EJERCICIO 3. Control inverso
Sensor en A0:
👉 Si el valor es bajo → LED encendido
👉 Si es alto → LED apagado
🟢 BLOQUE 2 · BUCLES
🟩 EJERCICIO 4. Parpadeo fijo
Haz parpadear un LED 10 veces usando for.
🟩 EJERCICIO 5. Cuenta con LED
Haz que un LED se encienda 5 veces, con pausa de 1 segundo.
🟩 EJERCICIO 6. Encendido progresivo
Haz que un LED se encienda y se apague lentamente (simulación con delay).
🟠 BLOQUE 3 · CONDICIONES + BUCLES
🟧 EJERCICIO 7. Control de luz repetido
Lee continuamente un sensor:
👉 Si valor > 500 → LED encendido
👉 Si no → apagado
🟧 EJERCICIO 8. Aviso intermitente
Si el sensor supera 700:
👉 LED parpadea 3 veces
🟧 EJERCICIO 9. Detección de rango
Si el sensor está entre 400 y 600:
👉 LED encendido
Si no:
👉 LED apagado
🔴 BLOQUE 4 · NIVEL EXTRA
🟥 EJERCICIO 10. Sistema de alarma simple
Sensor en A0:
👉 Si valor > 800:
- LED parpadea continuamente
👉 Si no:
- LED apagado
🟪 SOLUCIONES
🟦 EJERCICIO 1
int sensor = A0;
int led = 8;
void setup() {
pinMode(led, OUTPUT);
}
void loop() {
int valor = analogRead(sensor);
if (valor > 600) {
digitalWrite(led, HIGH);
} else {
digitalWrite(led, LOW);
}
}
🟦 EJERCICIO 2
int sensor = A0;
int verde = 8;
int amarillo = 9;
int rojo = 10;
void setup() {
pinMode(verde, OUTPUT);
pinMode(amarillo, OUTPUT);
pinMode(rojo, OUTPUT);
}
void loop() {
int valor = analogRead(sensor);
if (valor < 400) {
digitalWrite(verde, HIGH);
digitalWrite(amarillo, LOW);
digitalWrite(rojo, LOW);
}
else if (valor <= 700) {
digitalWrite(verde, LOW);
digitalWrite(amarillo, HIGH);
digitalWrite(rojo, LOW);
}
else {
digitalWrite(verde, LOW);
digitalWrite(amarillo, LOW);
digitalWrite(rojo, HIGH);
}
}
🟦 EJERCICIO 3
int sensor = A0;
int led = 8;
void setup() {
pinMode(led, OUTPUT);
}
void loop() {
int valor = analogRead(sensor);
if (valor < 400) {
digitalWrite(led, HIGH);
} else {
digitalWrite(led, LOW);
}
}
🟩 EJERCICIO 4
int led = 8;
void setup() {
pinMode(led, OUTPUT);
for (int i = 0; i < 10; i++) {
digitalWrite(led, HIGH);
delay(500);
digitalWrite(led, LOW);
delay(500);
}
}
void loop() {
}
🟩 EJERCICIO 5
int led = 8;
void setup() {
pinMode(led, OUTPUT);
for (int i = 0; i < 5; i++) {
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
delay(1000);
}
}
void loop() {
}
🟩 EJERCICIO 6
int led = 8;
void setup() {
pinMode(led, OUTPUT);
}
void loop() {
digitalWrite(led, HIGH);
delay(200);
digitalWrite(led, LOW);
delay(800);
}
🟧 EJERCICIO 7
int sensor = A0;
int led = 8;
void setup() {
pinMode(led, OUTPUT);
}
void loop() {
int valor = analogRead(sensor);
if (valor > 500) {
digitalWrite(led, HIGH);
} else {
digitalWrite(led, LOW);
}
}
🟧 EJERCICIO 8
int sensor = A0;
int led = 8;
void setup() {
pinMode(led, OUTPUT);
}
void loop() {
int valor = analogRead(sensor);
if (valor > 700) {
for (int i = 0; i < 3; i++) {
digitalWrite(led, HIGH);
delay(300);
digitalWrite(led, LOW);
delay(300);
}
}
}
🟧 EJERCICIO 9
int sensor = A0;
int led = 8;
void setup() {
pinMode(led, OUTPUT);
}
void loop() {
int valor = analogRead(sensor);
if (valor >= 400 && valor <= 600) {
digitalWrite(led, HIGH);
} else {
digitalWrite(led, LOW);
}
}
🟥 EJERCICIO 10
int sensor = A0;
int led = 8;
void setup() {
pinMode(led, OUTPUT);
}
void loop() {
int valor = analogRead(sensor);
if (valor > 800) {
digitalWrite(led, HIGH);
delay(200);
digitalWrite(led, LOW);
delay(200);
} else {
digitalWrite(led, LOW);
}
}
Etiqueta:AIDARAC, arduino, c++, ies monterroso, ROBÓTICA

