Ejercicios C++ Arduino Tecnología 4ESO
Ejercicios de C++
para Arduino
Nivel básico · Secuencia, Condiciones y Bucles
Secuencia
3 ejerciciosUn coche recorre una distancia de 120 km en 1,5 horas. Escribe un programa en C++ que calcule e imprima por pantalla (Serial) la velocidad media del vehículo en km/h.
Serial.begin(9600) en setup() y Serial.println() para mostrar el resultado.- Declara dos variables
float: una para la distancia y otra para el tiempo. - Crea una tercera variable
floatpara guardar el resultado. - Usa el operador
/para dividir distancia entre tiempo. - Muestra el resultado con
Serial.println(velocidad).
// Ejercicio S-01: Velocidad media void setup() { Serial.begin(9600); float distancia = 120.0; // km float tiempo = 1.5; // horas float velocidad = distancia / tiempo; Serial.print("Velocidad media: "); Serial.print(velocidad); Serial.println(" km/h"); } void loop() { // Nada aquí por ahora }
Tienes un rectángulo de base = 8 cm y altura = 5 cm. Calcula e imprime el área y el perímetro.
int ya que los valores son enteros. ¿Cambiaría algo si fuesen decimales?- Puedes usar variables
intpara base y altura. - Calcula el área multiplicando:
area = base * altura - Calcula el perímetro:
perimetro = 2 * (base + altura) - Imprime ambos resultados con
Serial.println().
// Ejercicio S-02: Área y perímetro del rectángulo void setup() { Serial.begin(9600); int base = 8; int altura = 5; int area = base * altura; int perimetro = 2 * (base + altura); Serial.print("Área: "); Serial.println(area); Serial.print("Perímetro: "); Serial.println(perimetro); } void loop() { }
El sensor de temperatura de tu Arduino mide 25 °C. Escribe un programa que convierta esa temperatura a grados Fahrenheit e imprima el resultado.
9.0 y 5.0 (con decimal) en la fórmula para que el resultado no se redondee a entero.- Declara
float celsius = 25.0; - Aplica la fórmula directamente en una sola línea.
- Muestra tanto el valor en Celsius como en Fahrenheit.
// Ejercicio S-03: Conversión Celsius → Fahrenheit void setup() { Serial.begin(9600); float celsius = 25.0; float fahrenheit = (celsius * 9.0 / 5.0) + 32; Serial.print(celsius); Serial.print(" °C equivalen a "); Serial.print(fahrenheit); Serial.println(" °F"); } void loop() { }
Condiciones
4 ejercicios
Una variable ledEncendido almacena true o false.
Escribe un programa que imprima “LED encendido” si es true.
Si no, no imprima nada. Usa una condición if simple.
else es opcional.- Declara:
bool ledEncendido = true; - Usa
if (ledEncendido)— no hace falta comparar con== true. - Dentro del bloque
{ }imprime el mensaje.
// Ejercicio C-01: if simple void setup() { Serial.begin(9600); bool ledEncendido = true; if (ledEncendido) { Serial.println("LED encendido"); } } void loop() { }
Dada una variable edad con un valor numérico, imprime
“Mayor de edad” si es 18 o más, o “Menor de edad” si es menor de 18.
Usa if / else.
edad a 15, 18 y 21 para verificar que funciona.- Declara
int edad = 16;(o cualquier valor). - Usa el operador
>=para comparar con 18. - El bloque
elsese ejecuta cuando la condición es falsa.
// Ejercicio C-02: if / else void setup() { Serial.begin(9600); int edad = 16; if (edad >= 18) { Serial.println("Mayor de edad"); } else { Serial.println("Menor de edad"); } } void loop() { }
Un sensor da la temperatura en °C. Clasifícala imprimiendo un mensaje según este criterio:
Menor de 10 → “Frío”
Entre 10 y 25 → “Agradable”
Mayor de 25 → “Calor”
if / else if / else para cubrir todos los rangos.- Declara
float temperatura = 18.5; - Primer
if: comprueba si es menor de 10. else if: comprueba si es menor o igual a 25 (ya sabemos que es ≥10).- El
elsefinal cubre el resto (mayor de 25).
// Ejercicio C-03: if / else if / else void setup() { Serial.begin(9600); float temperatura = 18.5; if (temperatura < 10) { Serial.println("Frío"); } else if (temperatura <= 25) { Serial.println("Agradable"); } else { Serial.println("Calor"); } } void loop() { }
Tu Arduino controla una alarma que se activa solo si:
el sensor de movimiento detecta algo (movimiento = true)
Y ADEMÁS es de noche (esDeNoche = true).
Si solo se cumple una condición, imprime “Aviso: revisa sensores”.
Si no se cumple ninguna, imprime “Todo en orden”.
&& (AND) para combinar ambas condiciones en un solo if.- Declara:
bool movimiento = true;ybool esDeNoche = true; - Primer
if:if (movimiento && esDeNoche)→ “¡ALARMA!” else if: usa||(OR) para detectar si solo uno es true.else: ninguno activo → “Todo en orden”.
// Ejercicio C-04: Condición compuesta con && y || void setup() { Serial.begin(9600); bool movimiento = true; bool esDeNoche = true; if (movimiento && esDeNoche) { Serial.println("¡ALARMA! Intruso detectado de noche."); } else if (movimiento || esDeNoche) { Serial.println("Aviso: revisa sensores"); } else { Serial.println("Todo en orden"); } } void loop() { }
Bucles
4 ejerciciosUsa un bucle for para imprimir los números del 1 al 10, uno en cada línea. Es el ejercicio más clásico para entender cómo funciona un bucle con contador.
for es perfecto cuando sabes exactamente cuántas veces quieres repetir algo.- Estructura:
for (int i = 1; i <= 10; i++) i = 1es el valor inicial,i <= 10es la condición de parada,i++incrementa el contador.- Dentro del bucle, usa
Serial.println(i).
// Ejercicio B-01: Bucle for del 1 al 10 void setup() { Serial.begin(9600); for (int i = 1; i <= 10; i++) { Serial.println(i); } } void loop() { }
Escribe un programa con un bucle for que imprima la
tabla de multiplicar del 5 (del 5×1 hasta el 5×10).
El formato debe ser: 5 x 3 = 15
Serial.print(). Solo al final usa Serial.println().- El contador
iva de 1 a 10. - El resultado es
5 * i. - Usa varios
Serial.print()seguidos para construir la línea, y un soloSerial.println()al final.
// Ejercicio B-02: Tabla de multiplicar del 5 void setup() { Serial.begin(9600); for (int i = 1; i <= 10; i++) { Serial.print("5 x "); Serial.print(i); Serial.print(" = "); Serial.println(5 * i); } } void loop() { }
Tienes una variable bateria que empieza en 10 y representa la carga restante.
Usa un bucle while para imprimir el nivel de batería, restándole 2 en cada vuelta,
hasta que llegue a 0 o menos. Al finalizar imprime “Batería agotada”.
while es ideal cuando no sabes exactamente cuántas veces se repetirá algo, solo la condición de parada.- Declara
int bateria = 10;antes del bucle. - La condición del while es
bateria > 0. - Dentro del bucle: imprime el valor y luego haz
bateria -= 2;(resta 2). - Tras el bucle, imprime “Batería agotada”.
// Ejercicio B-03: Bucle while – nivel de batería void setup() { Serial.begin(9600); int bateria = 10; while (bateria > 0) { Serial.print("Batería: "); Serial.println(bateria); bateria -= 2; // resta 2 en cada vuelta } Serial.println("Batería agotada"); } void loop() { }
Hay un número secreto = 7. El programa empieza probando con intento = 1
y va incrementando de uno en uno usando un bucle while,
hasta que el intento sea igual al número secreto.
Imprime cada intento y al acertar imprime “¡Encontrado!”.
- Declara
int secreto = 7;eint intento = 1; - Condición del while:
intento != secreto - Dentro: imprime el intento e incrementa con
intento++ - Tras el bucle, imprime “¡Encontrado!”
// Ejercicio B-04: Bucle while – buscar número secreto void setup() { Serial.begin(9600); int secreto = 7; int intento = 1; while (intento != secreto) { Serial.print("Probando: "); Serial.println(intento); intento++; } Serial.print("¡Encontrado! El número era: "); Serial.println(secreto); } void loop() { }


