Sesion 4
Sesion 4
Sesion 4
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
- Zona de importación de librerías (se verá más adelante) y declaración de variables.
- Función setup() para inicializaciones.
- Función loop(), que será la función principal del programa de Arduino, el bucle
principal que se repetirá todo el tiempo.
Comentarios en el código:
Los comentarios es texto escrito sobre el código que sirve únicamente para
informar; no tienen efecto en la ejecución de instrucciones.
- Comentario simple: comienza con doble barra ‘//’, seguido del texto, en una
sola línea.
- Comentario de bloque: comienza con barra asterisco ‘/*’, y termina con
asterisco barra ‘*/’, y dentro va el texto, que puede tener varias líneas.
/* comentario de bloque
de varias líneas
*/
Variables:
En el lenguaje de bloques tipo Scratch dentro de Tinkercad, cuando usamos una
variable con la instrucción set para darle un valor, y usándola con su nombre en la
forma redondeada, estamos haciendo varias cosas en el lenguaje de Arduino:
- declarar esa variable, que hasta ahora siempre ha sido un número entero (int):
int variable1;
- asignarle un valor inicial; es algo que se hace dentro de setup()
El operador de asignación es un único símbolo ‘=’:
variable1 = 3; // a la variable1 se le asigna el valor 3
Sesión 4 1
- leer ese valor para imprimirlo, compararlo, hacer una operación matemática…
En el lenguaje Arduino usamos directamente ese valor escribiendo el nombre de la
variable.
variable1
Monitor serie:
- Se inicializa dentro de setup() con la instrucción:
Serial.begin(9600);
- Se escribe dentro de loop() con las instrucciones:
Serial.println("texto"); // con salto de línea
Serial.print("texto"); // sin salto de línea
- Para escribir el valor de una variable, se usa directamente el nombre de esa
variable:
Serial.println(variable1);
Tiempo de espera:
La instrucción wait en código Scratch, que se le indican los segundos, se va a
traducir por la instrucción delay, indicando los milisegundos.
1 segundo = 1000 milisegundos.
delay(2000); // espera 2 segundos
Operadores matemáticos:
Vistos los operadores matemáticos con la instrucción verde con los bordes
redondeados, vamos a verlos en el código Arduino con varios ejemplos, usando una
variable:
int variable1;
Operadores lógicos:
El resultado de una operación lógica es true (verdadero) o false (falso).
- Comparación entre dos valores:
Menor que: 1 < 1 (resultado false)
Menor o igual que: 1 <= 1 (resultado true)
Mayor que: 3 > 2 (resultado true)
Mayor o igual que: 2 >= 5 (resultado false)
Igual (doble signo ‘=’): 5 == 5 (resultado true)
Distinto: 7 != 4 (resultado true)
Sesión 4 2
- Operadores lógicos:
AND &&
OR ||
NOT !
- Ejemplos:
(7 == 7) && (3 < 6) true
(3 <= 7) && (8 >= 10) false
(1 != 1) && (7 < 1) false
(7 != 7) || (5 > 5) true
(8 <= 8) || (0 == 5) true
(3 > 9) || (2 < -1) false
!(2 == 5) true
!(7 >= 2) false
Ejemplo complejo calculado por partes:
((3 < 2) || (8 == 8)) && ((-1 == -1) || !(3 > 8))
( false || true ) && ( true || true )
true && true
true
Sentencias de decisión:
Los operadores lógicos se suelen usar casi siempre en sentencias de decisión if,
para comprobar si se cumple una condición, y además se suelen usar comprobando el
valor de una variable.
Un ejemplo para comprobar si variable1 está dentro de un rango de número.
Supongamos que ya la tenemos declarada y tiene un valor asignado; la comprobación
se haría:
if ((variable1 > 1) && (variable1 < 10)) {
Serial.println("la variable está entre 1 y 10");
delay(2000);
}
else {
Serial.println("la variable NO está entre 1 y 10");
delay(2000);
}
La parte else no es obligatoria, se pone cuando queremos hacer algo en caso
que no se cumpla la condición.
Para la parte if, se debe poner la condición entre paréntesis, usando paréntesis
interiores para las comparaciones, si fuese necesario.
En este ejemplo, se excluyen de la comprobación los propios límites de 1 y 10;
para incluirlos, habrá que utilizar los operadores ‘>=’ y ‘<=’ respectivamente.
Valor aleatorio:
La instrucción random nos va a asignar un valor aleatorio. Se puede usar con
argumentos numéricos (n y m son números):
- con 1 argumento: random(m), genera un número aleatorio entre 0 y m-1.
- con 2 argumentos: random(n, m), genera un número aleatorio entre n y m-1.
Sesión 4 3
Ejemplo:
random(3); devuelve un número aleatorio entre 0 y 2 (incluidos).
random(1, 11); devuelve un número aleatorio entre 1 y 10 (incluidos).
Si se utiliza reiteradamente esta función, con mismos parámetros, sacará una
secuencia de números aleatorios, pero siempre la misma. Para cambiar esto, se usa
una semilla, con la función randomSeed(n), donde n es un número. Ejemplo:
random(1, 10); → saca la secuencia de números: 7, 9, 3, 8, 0, 2, 4… (cada
vez que se utiliza va sacando uno).
Si cambiamos la semilla con: randomSeed(6); nos sale una secuencia distinta:
randomSeed(6);
random(1, 10); → saca la secuencia de números: 2, 4, 0, 4, 9, 5, 4, 0…
(cada vez que se utiliza va sacando uno).
Sesión 4 4
Más operadores.
- Auto-incremento:
La operación variable1 = variable1 + 1; se puede escribir de las
siguientes maneras equivalentes también:
variable1 += 1;
o
variable1++;
El resultado será incrementar variable1 en 1 unidad.
- Auto-decremento:
Para decrementar la variable en 1 (variable1 = variable1 - 1;), se
utilizarían las instrucciones:
variable1 -= 1;
y
variable1--;
Sesión 4 5