Ejercicios de programación con Arduino

1.- ¿Con que signos acaban las lineas de código en los programas de Arduino?

2.- ¿Que se introduce dentro de las llaves ( { } ), en un programa de Arduino?

3.- Escribe las llaves que faltan en el siguiente programa:

void setup()

pinMode(11, OUTPUT);

}

void loop() {

digitalWrite(11, HIGH);

delay(1000);

digitalWrite(11, LOW);

delay(1000);

4.- Escribe el código de un programa que no haga nada, pero tenga las dos funciones setup y loop.

5.- Escribe el nombre de todas las variables que aparecen en el siguiente programa, e indica de que tipo son:

int inputPin = 5;

int ledPin = 13;

void setup() {

pinMode(inputPin, INPUT);

pinMode(ledPin, OUTPUT);

}

void loop() {

if (digitalRead(inputPin) == HIGH) {

digitalWrite(ledPin, HIGH);

} else {

digitalWrite(ledPin, LOW);

}

}

6.- Cambia el nombre de la variable inputPin por pulsador y el de la variable ledPin por salidaled.

int inputPin = 5;

int ledPin = 13;

void setup() {

pinMode(inputPin, INPUT);

pinMode(ledPin, OUTPUT);

}

void loop() {

if (digitalRead(inputPin) == HIGH) {

digitalWrite(ledPin, HIGH);

} else {

digitalWrite(ledPin, LOW);

}

}

7.- Este programa enciende un LED, pero está incompleto, le hemos quitado la linea de código que indica la configuración del pin 13. Lo has de completar para que funcione.

void setup() {

}

void loop() {

digitalWrite(13, HIGH);

delay(1000);

digitalWrite(13, LOW);

delay(1000);

}

8.- Modifica el tiempo de parpadeo del siguiente programa haciendo que las esperas entre encendidos y apagados del LED sean de medio segundo.

void setup() {

pinMode(10, OUTPUT);

}

void loop() {

digitalWrite(10, HIGH);

delay(1000);

digitalWrite(10, LOW);

delay(1000);

}

9.- Cambia el pin del LED conectado en el siguiente programa, cámbialo por el pin 7.

void setup() {

pinMode(12, OUTPUT);

}

void loop() {

digitalWrite(12, HIGH);

delay(3000);

digitalWrite(12, LOW);

delay(2000);

}

10.- El siguiente programa no funciona correctamente. Haz los cambios que consideres necesarios.

void setup()

pinMode(7, INPUT);

}

void loop() {

digitalWrite(10, HIGH);

dela(1000);

digitalWrite(10, LOW);

delay(1000);

}

11.- Escribe un programa que encienda y apague dos LEDs alternativamente. Cuando un LED esté encendido el otro estará apagado y viceversa. El tiempo de espera entre encendido y apagado será de un segundo.

12.- Describe que es lo que hace este programa de Arduino. En el pin 5 está conectado un pulsador y en el pin 13 está conectado un LED.

int inputPin = 5;

int ledPin = 13;

void setup() {

pinMode(inputPin, INPUT);

pinMode(ledPin, OUTPUT);

}

void loop() {

if (digitalRead(inputPin) == HIGH) {

digitalWrite(ledPin, HIGH);

} else {

digitalWrite(ledPin, LOW);

}

}

13.- Has de hacer que, en el programa siguiente, cuando se apriete el pulsador conectado al pin 5 se apague el LED conectado al pin 13 y cuando no esté pulsado se encienda este LED.

int inputPin = 5;

int ledPin = 13;

void setup() {

pinMode(inputPin, INPUT);

pinMode(ledPin, OUTPUT);

}

void loop() {

if (digitalRead(inputPin) == HIGH) {

digitalWrite(ledPin, HIGH);

} else {

digitalWrite(ledPin, LOW);

}

}

14.- En el siguiente programa indica que el LED está conectado en el pin 7 y el pulsador en el pin 8.

int inputPin = 5;

int ledPin = 13;

void setup() {

pinMode(inputPin, INPUT);

pinMode(ledPin, OUTPUT);

}

void loop() {

if (digitalRead(inputPin) == HIGH) {

digitalWrite(ledPin, HIGH);

} else {

digitalWrite(ledPin, LOW);

}

}

15.- Este programa no funciona. Corrige los errores que pueda contener, añadiendo o quitando parte del código.

int inputPin = 5

int ledPin = 13

void setup() {

pinMode(inputPin, );

pinMode(ledPin, );

}

void loop() {

if (digitalRead(inputPin) == HIGH) {

digitalWrite(ledPin, HIGH);

} else {

digitalWrite(ledPin, LOW);

}

}

}

}

16.- Haz un programa de Arduino que encienda un LED conectado al pin 13 cuando se pulse el pulsador conectado en el pin 5 y se apague cuando se pulse el pulsador conectado en el pin 6.

17.- En el siguiente programa, la salida de un potenciómetro se conecta al pin A5 y en el pin 13 se conecta un LED. Explica que relación hay entre el valor de tensión proporcionado por el potenciómetro y el comportamiento del LED conectado en el pin 13.

int ledPin = 13;

void setup() {

pinMode(ledPin, OUTPUT);

}

void loop() {

int val = analogRead(A5);

digitalWrite(ledPin, HIGH);

delay(val);

digitalWrite(ledPin, LOW);

delay(val);

}

18.- En el siguiente programa; ¿Qué valor se guarda en la variable val?

int ledPin = 13;

void setup() {

pinMode(ledPin, OUTPUT);

}

void loop() {

int val = analogRead(A5);

digitalWrite(ledPin, HIGH);

delay(val);

digitalWrite(ledPin, LOW);

delay(val);

}

19.- Modifica el siguiente programa utilizando el comando map, de forma que el valor proporcionado por el potenciómetro (De 0 a 1023) tenga como valor máximo el 1000 y como valor mínimo el 500.

int ledPin = 13;

void setup() {

pinMode(ledPin, OUTPUT);

}

void loop() {

int val = analogRead(A5);

digitalWrite(ledPin, HIGH);

delay(val);

digitalWrite(ledPin, LOW);

delay(val);

}

20.- Este programa no funciona. Corrige los errores que pueda contener, añadiendo o quitando parte del código.

int ledPin = 13;

void setup() {

pinMode(ledPin, );

}

void loop() {

int val = analogRead(5);

digitalWrite(ledPin, HIGH);

delay(vali);

digitalWrite(ledPin, LOW);

delay(val);

21.- Indica el nombre, el tipo y el valor guardado en las variables que aparecen en este programa.

int ledPin = 13;

void setup() {

pinMode(ledPin, OUTPUT);

}

void loop() {

int val = analogRead(A5);

digitalWrite(ledPin, HIGH);

delay(val);

digitalWrite(ledPin, LOW);

delay(val);

}

22.- El siguiente programa enciende un LED si el pulsador conectado al pin 5 está apretado.

Indica que parte del código es la función condicional que compara el valor de la entrada correspondiente al pin 5.

int inputPin = 5;

int ledPin = 13;

void setup() {

pinMode(inputPin, INPUT);

pinMode(ledPin, OUTPUT);

}

void loop() {

if (digitalRead(inputPin) == HIGH) {

digitalWrite(ledPin, HIGH);

} else {

digitalWrite(ledPin, LOW);

}

}

23.- Cambia el código para que el pin conectado al pulsador, en el programa anterior, sea el 13 y el pin conectado al LED sea el 5.

24.- Completa el código en el siguiente programa, con los elementos necesarios, para que funcione.

int inputPin = 5;

int ledPin = 13;

void setup()

pinMode(inputPin, );

pinMode(ledPin, OUTPUT);

}

void loop() {

if (digitalRead(inputPin) = HIGH) {

digitalWrite(HIGH);

} else {

digitalWrite(ledPin, LOW);

}

25.- Escribe un programa similar al anterior, pero con dos pulsadores. El pulsador conectado al pin 5 encenderá el LED conectado en el pin 13 y el pulsador conectado al pin 6 apagará el mismo LED.

26.- En este programa la lectura del potenciómetro conectado al pin analógico A5 cambiará el tiempo de retardo, delay, y por lo tanto la velocidad con la que parpadea el LED del pin 13. Cuando se gira el potenciómetro, se puede ver el cambio en la frecuencia de parpadeo.

Cambia el nombre de la primera variable por "pindelled" y su valor por 9. Cambia el nombre de la segunda variable por valor. Cambia el pin al que está conectado el potenciómetro por el A4.

int ledPin = 13;

void setup() {

pinMode(ledPin, OUTPUT);

}

void loop() {

int val = analogRead(A5);

digitalWrite(ledPin, HIGH);

delay(val);

digitalWrite(ledPin, LOW);

delay(val);

}

27.- En este programa el LED conectado en el pin 10 se va iluminando poco a poco hasta llegar a su máxima intensidad, y luego vuelve a apagarse para comenzar de nuevo indefinidamente.

Cambia el nombre de la variable ledPin por "pindelled" y su valor por 11 y el nombre de la variable fade por "brillo" y su valor por 1. Haz que la variable brillo se incremente en 7 a cada ciclo de la función loop.

int ledPin = 10;

int fade = 0;

void setup() {

// sin configuración

}

void loop() {

analogWrite(ledPin, fade);

delay(10);

fade = fade + 10;

if (fade > 255) fade = 0;

}

28.- ¿Como funciona la instrucción condicional en el siguiente programa?

int ledPin = 10;

int fade = 0;

void setup() {

// sin configuración

}

void loop() {

analogWrite(ledPin, fade);

delay(10);

fade = fade + 10;

if (fade > 255) fade = 0;

}

29.- Que indica la linea #include <Servo.h> en el siguiente programa:

#include <Servo.h>

Servo myservo;

int potPin = A0;

int val;

void setup() {

myservo.attach(9);

}

void loop() {

val = analogRead(potPin);

val = map(val, 0, 1023, 0, 179);

myservo.write(val);

delay(15);

}

30.- ¿Qué nombre recibe el servo en el siguiente programa?

#include <Servo.h>

Servo myservo;

int potPin = A0;

int val;

void setup() {

myservo.attach(9);

}

void loop() {

val = analogRead(potPin);

val = map(val, 0, 1023, 0, 179);

myservo.write(val);

delay(15);

}

31.- ¿Que hace esta linea de código: myservo.attach(9); en el siguiente programa:

#include <Servo.h>

Servo myservo;

int potPin = A0;

int val;

void setup() {

myservo.attach(9);

}

void loop() {

val = analogRead(potPin);

val = map(val, 0, 1023, 0, 179);

myservo.write(val);

delay(15);

}

32.- Completa el código del siguiente programa para que funcione:

#include <Servo>

Servo;

int potPin =

int val;

void setup()

myservo.attach(9);

}

void loop() {

val = analogRead();

val = map(val, 0, 1023, 0, 179);

myservo.write(val);

delay(15);