Clase 5. Semana 5
Clase 5. Semana 5
Clase 5. Semana 5
Clase 5. Semana 5
02-09-2020
Ejemplo 1
int tiempo=300;
void setup() {
Se trata de encender y apagar 4 leds pinMode(5,OUTPUT);
secuencialmente. Se deben encender y pinMode(6,OUTPUT);
posteriormente apagar los leds desde el pin 5 pinMode(7,OUTPUT);
al 8, con un tiempo de duración de encendido pinMode(8,OUTPUT);
y apagado de 300 milisegundos. }
void loop() {
digitalWrite(5,HIGH);
delay(tiempo);
digitalWrite(5,LOW);
delay(tiempo);
digitalWrite(6,HIGH);
delay(tiempo);
digitalWrite(6,LOW);
delay(tiempo);
digitalWrite(7,HIGH);
delay(tiempo);
digitalWrite(7,LOW);
delay(tiempo);
digitalWrite(8,HIGH);
delay(tiempo);
digitalWrite(8,LOW);
delay(tiempo);
}
for en Arduino
Se usa para hacer repetición de una parte de nuestro código en el
programa, una cantidad de veces determinada, esto se le suele conocer
también con el nombre de bucle.
La sintaxis de la estructura for en arduino es la siguiente:
for (índice; condición; incremento)
{……….
……….}
Para ello se necesitan tres cosas:
El índice, es una variable que irá almacenando el número de repeticiones
del bucle.
Una condición que cuando se cumpla, haga terminar el bucle y que el
resto del programa siga ejecutándose a continuación.
El incremento que modificará el índice en cada repetición del bucle.
Ejemplo: uso del bucle for con un
Arduino
El ejemplo consiste en conectar 5 led a las salidas de un arduino e ir
encendiendo y apagándolos consecutivamente, creando un efecto
desplazamiento de luz a través de los mismos.
Se conectaran 5 leds a los pines del 3 al 7
El código a ejecutar será el siguiente:
Análisis del programa del Ejemplo
La declaración de la variable también se puede hacer en el bucle for
(int indice=3; ….
La variable es del tipo entero por eso lleva delante int, este tipo de
variable puede almacenar un numero de valor entre -32769 y 32767.
En setup() se configuran los pines de arduino conectados a los led
como salidas. Pero también se podría usar un bucle para configurar
las salidas
La estructura for en arduino se compone de una variable (en
nuestro caso índice), seguido de una condición a cumplir, (en
nuestro caso que índice sea menor o igual a 7) y el incremento (con
++ incrementamos índice en uno, seria equivalente a
índice=indice+1).
Mientras se cumpla la condición, se ejecutarán las líneas de código
que hay entre las llaves, e incrementará el índice en 1 como lo
hemos programado.
Ejemplo 2 Se trata de encender y apagar 4 leds secuencialmente.
Se deben encender y posteriormente apagar los leds
desde el pin 5 al 8, con un tiempo de duración de
int tiempo=300; encendido y apagado de 300 milisegundos.
void setup() {
pinMode(5,OUTPUT);
pinMode(6,OUTPUT); int tiempo=300;
pinMode(7,OUTPUT); int n;
pinMode(8,OUTPUT);
}
void loop() {
void setup() {
digitalWrite(5,HIGH); for (n=5;n<9;n++) {
delay(tiempo); pinMode (n, OUTPUT);
digitalWrite(5,LOW); }
delay(tiempo); }
digitalWrite(6,HIGH); void loop() {
delay(tiempo);
for (n=5;n<9;n++) {
digitalWrite(6,LOW);
delay(tiempo);
digitalWrite (n, HIGH);
digitalWrite(7,HIGH); delay (tiempo);
delay(tiempo); digitalWrite (n, LOW);
digitalWrite(7,LOW); delay (tiempo);
delay(tiempo); }
digitalWrite(8,HIGH); }
delay(tiempo);
digitalWrite(8,LOW);
delay(tiempo);
}
Se trata de encender y apagar 7 leds secuencialmente. Los leds deben
Ejemplo 3 estar conectados a los pines 5, 6, 7, 8, 9, 10 y 11.
int n; int leds[]={5,6,7,8,9,10,11};
int tiempo=50; int n=0;
int tiempo=50;
void setup() {
for (n=5;n<12;n++) { void setup() {
pinMode(n,OUTPUT); for (n=0;n<7;n++) {
} pinMode(leds[n],OUTPUT);
} }
}
void loop() { void loop() {
for (n=5;n<12;n++) { for (n=0;n<7;n++) {
digitalWrite (n,HIGH); digitalWrite (leds[n],HIGH);
delay(tiempo); delay(tiempo);
digitalWrite (n,LOW); digitalWrite (leds[n],LOW);
delay(tiempo); delay(tiempo);
} }
for (n=11;n>=5;n--) { for (n=6;n>=0;n--) {
digitalWrite (n,HIGH); digitalWrite (leds[n],HIGH);
delay(tiempo); delay(tiempo);
digitalWrite (n,LOW); digitalWrite (leds[n],LOW);
delay(tiempo); delay(tiempo);
} }
} }
Instrucción condicional IF en arduino
La instrucción if en arduino, seguida de una condición, hará posible que
nuestro programa coja distintos caminos dependiendo de si se cumplen
o no.
La estructura condicional tiene la siguiente sintaxis:
if (condición) {……..}
Comenzamos con la instrucción if.
Seguido, y entre paréntesis, escribiremos una condición. Si esta
condición se cumple, será validada y por tanto se ejecutará el código
que pongamos entre las llaves {…………}. En caso contrario, el
programa continuará en la siguiente instrucción sin ejecutar lo
encerrado entre llaves.
Para escribir la condición a cumplir usaremos los operadores de
comparación dentro de los paréntesis, por ejemplo:
1 if (x>5) { digitalWrite(pinLed,HIGH); }
Condiciones y uso de operadores de
comparación
La condición es una expresión lógica que pondremos entre paréntesis
después del comando if
De que se cumpla o no dependerá que se ejecuten las instrucciones
que hayamos escrito entre las llaves.
Para hacer esta condición, disponemos de los operadores.
x == 7 // si x es igual a 7
x != 7 // si x es distinto de 7
x<7 // si x es menor que 7
x>7 // si x es mayor que 7
x >= 7 // si x es mayor o igual a 7
x <= 7 // si x es menor o igual a 7
x < 3 || x >7 // si x es menor que 3 O mayor que 7
x <== 3 && r ==7 // si x es menor o igual a 3 Y r es igual a 7
Análisis del uso de operadores de
comparación
Se usa el operador == (dos iguales) para comparar la variable
con el número. Si pusiésemos solo uno, r = 7, estaríamos asignando el
valor 7 a la variable r por lo que ahora pasaría a valer 7 (es una
asignación).
|| OR, se usa si cuando alguna de las dos condiciones se cumple (o las
2 a la vez),
&& AND, se usa solo cuando las dos condiciones se cumplen a la vez,
no en todas las combinaciones restantes
Existen muchos más operadores lógicos. Un caso particular de la
condición es que solamente pongamos una variable entre los paréntesis
por ejemplo:
if (x) { .... ...... }
se ejecutará cuando x sea igual a 1
Ejemplo 4 Se trata de encender y apagar 4 leds secuencialmente al accionar un
pulsador. El pulsador debe estar conectado al pin 4, y los leds a los pines
5, 6, 7 y 8. Se deben encender y posteriormente apagar los leds desde el
pin 5 al 8, con un tiempo de duración de encendido y apagado de 200 ms.
int cadenaleds[]={5,6,7,8};
int pulsador;
int tiempo=200;
int n=0;
void setup() {
for(n=0;n<4;n++) {
pinMode (cadenaleds[n],OUTPUT);
}
pinMode (4,INPUT);
}
void loop() {
pulsador=digitalRead(4);
if (pulsador==HIGH) {
for (n=0;n<4;n++) {
digitalWrite (cadenaleds[n],HIGH);
delay (tiempo);
digitalWrite (cadenaleds[n],LOW);
delay (tiempo);
}
}
}
Estructura de control if – else
Una variante a la estructura de control if en arduino, es cuando usamos
else. 1 if (condición) {.....
2 instrucciones si se cumple
3 }
4 else {......
5 instrucciones si no se cumple
6 }