Extra: Cómo funciona el código de Arduino
Aquí veremos brevemente qué significan algunos de los elementos que encontramos en el código, para así poder entenderlos y usarlos en el futuro nosotros mismos!
void setup() {
}
void loop() {
}
Estos métodos* los usa Arduino para entender qué código debe ejecutar.
Si queremos, nosotros podemos crear también nuestros métodos para estructurar mejor nuestro código.
* conjunto de código que, al ser llamado, ejecuta todas las líneas en su interior
- pinMode(5, OUTPUT);
Aquí le estamos diciendo a Arduino que en el PIN número 5, hay un componente (por ejemplo un LED) que funcionará en modo OUTPUT, es decir, que EMITIRÁ (en vez de input/recibir) una señal, que en esta caso será la de encender (HIGH) o apagar (LOW) el LED.
RECUERDA: Todas las líneas de código en este lenguaje deben terminar con ";" pues esta es la forma de indicar el final de linea.
Otro ejemplo sería el que vemos por primera vez en la sesión 2:
- Serial.begin(9600);
Esta orden sirve para decirle a la Arduino que prepare la consola, que vamos a usarla para escribir. Puedes acceder a la consola haciendo click al icono de la lupa de arriba a la derecha:
Enciende la calefacción
Serial.println("El valor de i es: " + i);
const int pinSensor = 0;
#1 - Estructura básica
Un nuevo proyecto de Arduino incluye únicamente los siguientes métodos:void setup() {
}
void loop() {
}
Estos métodos* los usa Arduino para entender qué código debe ejecutar.
Si queremos, nosotros podemos crear también nuestros métodos para estructurar mejor nuestro código.
* conjunto de código que, al ser llamado, ejecuta todas las líneas en su interior
#1.1 - Setup
Al cargar el código en la placa, primero ejecuta una sola vez el setup. Por eso dentro de ese método debemos poner todas las lineas que sirvan para inicializar componentes que solo se hace al principio y una sola vez. Por ejemplo:- pinMode(5, OUTPUT);
Aquí le estamos diciendo a Arduino que en el PIN número 5, hay un componente (por ejemplo un LED) que funcionará en modo OUTPUT, es decir, que EMITIRÁ (en vez de input/recibir) una señal, que en esta caso será la de encender (HIGH) o apagar (LOW) el LED.
RECUERDA: Todas las líneas de código en este lenguaje deben terminar con ";" pues esta es la forma de indicar el final de linea.
Otro ejemplo sería el que vemos por primera vez en la sesión 2:
- Serial.begin(9600);
Esta orden sirve para decirle a la Arduino que prepare la consola, que vamos a usarla para escribir. Puedes acceder a la consola haciendo click al icono de la lupa de arriba a la derecha:
Esta consola es muy importante, pues nos permitirá usar dentro del loop el comando Serial.println("Hola!"); para escribir lo que nos interese. Se usa por ejemplo para escribir los valores que está leyendo el sensor y así comprobamos si está funcionando correctamente.
#1.2 - Loop
Aquí va lo gordo del código. Este método corre continuamente en la Arduino. Esta lo ejecuta, y cuando se completa, lo vuelve a ejecutar de nuevo. Aquí pondremos todo lo que la Arduino debe hacer.
#2 - Palabras Clave
Hay ciertas palabras, llamadas keywords que el sistema usa para entender lo que estamos escribiendo. Hay muchas, suelen estar resaltadas en algún color y normalmente vienen del inglés. Algunos ejemplos serían:
- const: constante, no puedes modificar el valor de lo que viene a continuación
- int: integer, número entero, puede ir del -999999 al +999999, pero no puede contener decimales
- float: igual que int, pero este sí contiene decimales
- if / else: El condicional; la base de la programación. Sería el equivalente a si/entonces. Esto se usa para ejecutar código SOLO en las situaciones que queramos. Por ejemplo:
Si hace frío {Enciende la calefacción
}
Si no {
Déjala apagada
}
- for: Esto es un bucle (llamado "loop" en inglés). Sirve para repetir el código que hay en su interior según le indiquemos. Por ejemplo:
for (int i=0; i<10; i++) {
// código
}
La gestión del for se hace en base a una variable, en este caso i, y se define en 3 partes, separadas con comas.
1) int i=0: El valor inicial de la variable al empezar el loop. Por lo tanto diremos que usamos la variable i y le damos un valor de 0. En caso que ya hayamos usado i anteriormente, nos ahorraremos el int, que se usa únicamente al principio para declararla.
2) i<10: Hasta cuándo seguiremos ejecutando el código, es decir, la condición de salida. Aquí queremos parar cuando i valga 10, con lo cuál en cuanto tenga ese valor ya no entrará en el bucle. Sería equivalente a if (i<10); un condicional.
3) i++: Cómo cambiar el valor de i. Si empezamos con i=0 y no paramos hasta que i=10, de alguna manera i tiene que aumentar. Aquí le decimos que al final de cada "iteración" del bucle aumente i en 1. Sería equivalente a decirle i=i+1. También podríamos decirle i=i+5, y el bucle únicamente tendría 2 iteraciones.
Para probarlo, dentro del código podríamos escribir:Serial.println("El valor de i es: " + i);
Y veríamos que saldrían 10 lineas:
El valor de i es 0
El valor de i es 1
El valor de i es 2
.....
El valor de i es 10
- delay(1000): Esto es un método específico para Arduino, que sirve para indicarle que espere 1.000 milisegundos (1 segundo) en este caso.
- //: Estas barritas significan que lo que venga a continuación NO es código, solamente texto que escribimos para nosotros mismos que sirve para poder explicar y entender mejor lo que hace el código
- #include <****.h>: Esta linea sirve para importar una librería. El concepto de librería es un conjunto de código ya preparado para hacer unas funciones determinadas.
Para elementos básicos como los LEDs y sensores no suelen ser necesarias, pero por ejemplo en la Sesión 3, necesitamos importar la librería Servo.h para poder controlar nuestro Micro Servo. Esto nos da acceso a poder declarar una variable de tipo Servo, con la cuál podremos hacer operaciones como servo.write(45) para mover el servo.
Otro ejemplo sería importar una librería para poder usar una pantalla LCD, escribiendo texto desde el código#3 - Variables Globales
A veces vemos que arriba del todo, encima del setup, hay unas lineas escritas. Esto sirve para definir unos valores que podremos usar a lo largo de todo nuestro código.
El ejemplo más claro sería de declarar los PINs que usaremos para el circuito, por ejemplo:const int pinSensor = 0;
Esto es muy práctico, pues a partir de ahora para referirnos al pin de ese sensor, simplemente usaremos "pinSensor" en vez de "0". Esto puede parecer poco práctico, pero si ahora quieres cambiar la electrónica y conectar tu sensor al PIN 5, simplemente modificas esa variable y tu código funciona con el nuevo circuito electrónico!
# Siguientes Pasos:
Aún quedan varias situaciones más para explicar, pero como cualquier lenguaje, lo iremos aprendiendo poco a poco.
Con esto hemos visto las más importantes que se usan en el 90% de las situaciones.
Iremos expandiendo y viendo nuevas lineas y estructuras de código a medida que avancemos y consolidando mucho más las anteriores!
Comments
Post a Comment