Programación de Arduino
Pedro Corcuera
Dpto. Matemática Aplicada y
Ciencias de la Computación
Universidad de Cantabria
corcuerp@[Link]
1
Índice General
• Introducción
• Ecuaciones diferenciales
• Método Euler
Arduino 2
Introducción
• Arduino ([Link] es una plataforma de
electrónica abierta para la creación de prototipos
basada en software y hardware flexibles y fáciles de
usar. Se creó para artistas, diseñadores, aficionados
y cualquiera interesado en crear entornos u objetos
interactivos.
Arduino 3
Arduino UNO
• Microcontroller ATmega328
• Operating Voltage 5V
• Input Voltage (recommended)7-12V
• Input Voltage (limits)6-20V
• Digital I/O Pins14
– of which 6 provide PWM output
• Analog Input Pins 6
• Flash Memory 32KB
• SRAM 2KB
• EEPROM 1KB
• Clock Speed 16 MHz 22 €
Arduino 4
Otras placas Arduino
Arduino 5
Algunos Shields
Ethernet Motor
Xbee LCD
Arduino 6
Algunos Sensores
Fotoresistencias
Fotodiodos Láser
Humedad Ultrasonido
Arduino 7
Algunos desarrollos
Robot
Control de Invernadores
Massimo Banzi at TED ([Link]
Arduino 8
Programación
• Lenguaje de programación Arduino (basado en
Wiring, a su vez basado en C/C++)
– El entorno Arduino (basado en Processing, a su vez
desarrollado en Java) es abierto.
– Se descarga de [Link]
• Otros entornos:
– Autónomos
• Minibloq, Ardubloq, Amici, ModKit, VirtualBreadBoard, Matlab
– Esclavos
• Etoys (Squeak), S4A (Scratch), Labview, Firefly, MyOpenLab
Arduino 9
Entorno de programación
Programas = Sketches
Arduino 10
Tipo de tarjeta (board)
Arduino 11
Puerto serie / COM
Arduino 12
Partes de un Sketch
/*
Blink
Turns on an LED on for one second, then off for one second, repeatedly.
*/
// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;
// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
Arduino 13
Programación: estructura
void setup() {
….se ejecuta una vez cuando se ejecuta
….un programa Arduino
}
void loop() {
…. se ejecuta después de setup. Se ejecuta
…. de manera repetida hasta que se quita la
…. tensión
}
Arduino 14
Programación: Comentarios
y sintaxis
• Igual que en C
– Multilínea /* Comentario */
– Línea // Linea
• { } para encerrar código
• ; para terminar instrucciones
Arduino 15
Programación: Operadores
de comparación
• == (equal to)
• != (not equal to)
• < (less than)
• > (greater than)
Arduino 16
Programación: Operadores
matemáticos
• = (assignment)
• % (módulo)
• +
• -
• *
• /
Arduino 17
Programación: Variables
• Tipos básicos:
– int
– long
– boolean
– float
– char
Arduino 18
Programación: Alcance
de variables
Arduino 19
Programación: estructura de
control if
Arduino 20
Programación: estructura de
control loop
Arduino 21
Programación: estructura de
control for
Arduino 22
Programación: estructura de
control while
Arduino 23
Programación: señales digitales
• pinMode (pin, mode) : usado para asignar el modo de
un pin. pin es el número del pin que se quiere
asignar 0-19. mode puede ser INPUT o OUTPUT.
• digitalWrite (pin, value): una vez un pin es asignado
como OUTPUT se puede asignar a HIGH (5 Volts) o
LOW(0 volts). Básicamente significa ON y OFF.
• int digitalRead (pin): una vez un pin es asignado
como INPUT se puede usar para devolver HIGH (5
Volts) o LOW(0 volts).
Arduino 24
Programación: señales analógicas
• analogWrite (pin, value); algunos de lo pines soportan
pulsos modulados (PWM) (3, 5, 6 ,9, 10, 11). Esto
pone el pin en on o off muy rápido comportándose
como una salida analógica. El valor es un número
entre 0 (0 v) y 255 (5 v).
• int analogRead (pin); puede leer un voltaje. Devuelve
un valor entre 0 (0 v) y 1024 (5 v).
Arduino 25
Programación: desde
Matlab/Simulink
• [Link]
Arduino 26
Programación: desde
LabView
• [Link]
Arduino 27