You are on page 1of 21

SOFTWARE ELEMENTAL

Mínimo conocimiento para trabajar


con el software de Arduino

Andrés Lasry
Noviembre 2016
IDE: Entorno de desarrollo integrado
Para confeccionar el programa que debe
ejecutar Arduino y para poder trasladarlo a su
memoria se usa un sistema de desarrollo propio
de Arduino que debemos instalar en nuestro
ordenador
Qué permite hacer el IDE?
• Escribir el programa que deseemos que ejecute
Arduino
• Compilar el código (convertirlo de un lenguaje
que podemos entender (o casi…) al código
máquina que almacenará Arduino para su
ejecución.
• Enviar ese código máquina a la memoria de
Arduino mediante la conexión USB
• Gestionar las librerías que complementen
nuestro código
Compilación y envío
Librerías

Código FUENTE
Compilador Puerto USB
escrito por nosotros

Ejecución
El proceso NO es reversible autónoma
Instalación del IDE
• Descarga el IDE de la página oficial de Arduino para tu sistema operativo.
• Instala el software.
• Conecta tu Arduino por el puerto USB y espera a que el sistema instale el
driver. Si no lo encuentra, lo instalas desde la carpeta en donde instalaste el
software.
• Arranca el IDE con el Arduino previamente conectado
Conectando con Arduino
Una vez que haya arrancado el IDE, fíjate en
el ángulo inferior derecho:

Placa Puerto

Se puede cambiar en:


Herramientas//Placa
Herramientas//Puerto
Comprobando que lo hemos hecho:
Cargamos un script de pruebas:
Archivos//Ejemplos//01.Basics//Blink
Compilar:
Comprobaremos que no existen
errores sintácticos o falta de
alguna librería en nuestro código

Compilar y enviar:
También compila, pero si no hay
errores envía el código al
dispositivo

Si aparece la palabra “SUBIDO” y


en el Arduino parpadea una luz,
¡enhorabuena!
Partes de un script
Debe contener, al menos dos “funciones”:

“setup”
void setup() {
que se ejecuta al iniciar el programa
pinMode(13, OUTPUT);
UNA SÓLA VEZ }

void loop() {
digitalWrite(13, HIGH);
“loop” delay(1000);
que se ejecuta en bucle indefinidamente digitalWrite(13, LOW);
delay(1000);
}
Cómo se escribe una función
Empieza por el tipo de variable
que devolverá. Si devolviese un void setup() {
entero sería “int”, si devolviese un pinMode(13, OUTPUT);
byte sería “byte”, un número }
grande con decimales sería un
“float” etc. Si no devuelve nada void loop() {
(como “setup” o “loop”) digitalWrite(13, HIGH);
delay(1000);
comienzan por la palabra “void” digitalWrite(13, LOW);
que significa “vacío” delay(1000);
}

Después del nombre, entre paréntesis,


float hipotenusa(float a,float b) {
se ponen las variables de entrada, si return sqrt (float( a*a + b*b ));
existen, separadas por comas. }

Se abre una llave ({) para comenzar con la escritura del código
formado por órdenes que ejecuta la función y se termina cerrando
la llave (}).
Las líneas de las órdenes se deben terminar con un punto y coma.
Para devolver valores o salir de la función se emplea “return”
COMENTARIOS
• Se debe ir comentando el código a fin de que, en un futuro, se
entienda lo que se hace y por qué se hace.
• Los comentarios no son compilados
• Para comentar en una línea, se empiezan por dos barras (//) y
toda la línea es considerada un comentario
• Para comentar varias líneas se empieza por /* y se termina
por */
• Es interesante usar esta última opción para quitar de la
ejecución alguna parte del script al hacer pruebas sin tener
que borralas.
Ejemplos de comentarios
Son muy
importantes,
aunque no se
compilen

Comentario multilínea

Comentarios de
una sóla línea
Algunos consejos
• Al principio, no copies y pegues: escríbelo todo las veces que haga falta.
• Usa nombre muy clarificadores para los valores de las entradas y salidas
definiéndolos al principio. Por ejemplo, si voy a usar la luz Verde para Peatones en
la salida 5, es mejor definir antes del void Setup():
verdePeaton=5;
(sin tildes ni espacios. Se suele poner en minúscula y muyúscula al empezar
cada palabra que componga el nombre)
• Usa funciones siempre que puedas: simplifica y clarifica el código, ya que puedo
escribirlas un avez y usarlas tantas como sea necesario. Por ejemplo, para
apagar todas las luces de un semáforo puedo usar:
void apagarTodo(){
digitaWrite(VerdePeaton,LOW);

digitaWrite(VerdeCoche,LOW);
….
}
• Usa una buena indentación mediante tabulaciones para que el código quede claro
Lo mínimo es mucho
Con muy pocas “órdenes” es posible hacer mucho:
– Configurar entradas y salidas
– Leer y escribir en los pines configurados
– Permanecer inactivo durante un determinado tiempo
– Tomar decisiones para ejecutar unas u otras órdenes
– Contar
– Comunicarse con el ordenador
Configurar pines de entrada o salida:
pinMode
Se hace dentro de la función SETUP, ya que se
ejecuta una sola vez al inicio del programa:

void setup(){
pinMode(5,OUTPUT);
pinMode(6,INPUT); Es
} imprescindible
Que el genio escriba:
digitalWrite

Se pone un UNO (HIGH) o un


digitalWrite(5,HIGH) CERO (LOW) en la salida 5
Así permanecerá hasta que se
digitalWrite(5,LOW)
cambie otra vez
Que el genio lea:
digitalRead

Se guarda en “valorPulsador” el
valorPulsador=digitalRead(5) valor leído en el PIN 5 (HIGH o
LOW, es decir, 0 ó 1)
Que el genio decida:
if
if(digitalRead(6)==HIGH){
digitalWrite(5,HIGH);
}

ATENCIÓN:
Y si no…
Para comparar se If….else
emplea “==“ if(digitalRead(6)==HIGH){
Para asignar un digitalWrite(5,HIGH);
valor se emplea “=“ }
else{
digitalWrite(5,HIGH);
}
Que el genio se entretenga:
delay
El genio es capaz de ejecutar cientos de miles
de órdenes en un segundo. Para que las cosas
vayan mas despacio, delay lo mantiene inactivo
durante un determinado número de
milisegundos

Se verá más adelante


if(digitalRead(5)==HIGH){ que delay() NO es una
digitalWrite(6,HIGH); buena opción porque
mientras espera, el
delay(1000); genio ni ve ni hace
digitalWrite(6,LOW); nada
delay(1000);
}
Que el genio cuente: bucles
for
for(int i=1;i<=10;i++){ Le da a i el valor 1 y ejecuta todo el
interior de la función. Luego incrementa
digitalWrite(6,HIGH); i (i++) y comprueba que está dentro del
delay(1000); límite marcado (i<=10). Si es así, vuelve
digitalWrite(6,LOW); a ejecutar el conjunto de órdenes.
Cuando ya no cumpla la condición, el
delay(1000); genio da por terminada esta parte del
} código y pasa a hacer lo que haya a
continuación de la última llave
Que el genio me informe:
Serial
void setup(){
Primero, en el setup, inicializo la
Serial.begin(9600);
comunicación serie a 9600 bits por
pinmode(6,OUTPUT); segundo
}

for(int i=1;i<=10;i++){ Puedo usar


digitalWrite(6,HIGH); Serial.print(“hola”)
Serial.println(“He encendido la luz”); para escribir seguido
delay(1000); o
digitalWrite(6,LOW); Serial.println(“hola”)
Serial.println(“Ahora la he apagado”); para terminar con un fin de
delay(1000); línea
}
Mediante este botón en la
parte superior derecha del IDE
se abre la ventana en donde se
ven los mensajes. Realmente
Se puede utilizar esta habilidad para ayudarnos a encontrar los fallos en también le puedo escribir
nuestro código
Sólo con esto ya se pueden hacer
muchas cosas

La imaginación la
pones tu

You might also like