INTRODUCCIÓN A ARDUINO
David Santos, Xaime Rodríguez, Iago Fernández y Daniel Fernández
4ºA
QUÉ ES ARDUINO
Arduino es una compañía de hardware libre, la cual desarrolla placas de desarrollo que integran un microcontrolador y un entorno de desarrollo (IDE), diseñado para facilitar el uso de la electrónica en proyectos multidisciplinarios. - Wikipedia
APLICACIONES
TIPO DE PLACAS
TIPOS DE PLACAS
ARDUINO MEGA
ARDUINO PRO
ARDUINO BLUETOOTH
TIPOS DE PLACAS
ARDUINO UNO
ARDUINO MINI
ARDUINO NANO
TIPO DE PLACAS
ARDUINO PRO MINI
ARDUINO DUEMINALOVE
ARDUINO UNO (1) Características
El arduino UNO es una placa con un microcontrolador de la marca ATMEGA y con toda la circuitería de soporte, que incluye reguladores de tensión y un puerto USB conectado a un módulo adaptador USB-Serie que permite programar el microcontrolador desde cualquier PC de manera cómoda y también hacer pruebas de comunicación con el propio chip.
ARDUINO UNO (2) Entradas y salidas
Consta de 14 pines que pueden configurarse como entrada o salida y a los que puede conectarse cualquier dispositivo que sea capaz de transmitir o recibir señales digitales de 0 y 5 V. Cada pin puede suministrar hasta 40 mA, siendo esta también su intensidad máxima. Tienen una resistencia interna de entre 20 KΩ y 50 KΩ, que permanecerá desconectada a no ser que nosotros indiquemos lo contrario. También hay 6 pines de entrada analógicos que trasladan las señales a un conversor analógico/digital de 10 bits.
ARDUINO UNO (3) Pines especiales
-RX y TX: Se usan para transmisiones serie de señales TTL.
-Interrupciones externas: Los pines 2 y 3 están configurados para generar una interrupción en el atmega cuando se encuentra un valor bajo en estas entradas.
-PWM: 6 salidas destinadas a generar señales PWM( pulse-width modulation) de hasta 8 bits.
ARDUINO UNO (4) Pines especiales
-SPI: Los pines 10, 11, 12 y 13 pueden utilizarse para llevar a cabo comunicaciones SPI( Serial Peripheral Interface), que permiten trasladar información full dúplex en un entorno Maestro/Esclavo.
-I2C: Permite establecer comunicaciones a través de un bus I2C. El bus I2C es un producto de Phillips para interconexión de sistemas embebidos
IDE de Arduino (1) Descripción
El IDE (Entorno de Desarrollo Integrado) es el software que es necesario instalar para así poder programar el Arduino.
IDE de Arduino (2) Instalación
En Windows:
En Linux/Ubuntu:
Solo tenemos que abrir una consola de comandos y escribir:
1 sudo apt-get install arduino
Ya tendréis instalada la última versión estable de Arduino.
ESTRUCTURA DE UN SKETCH (1)
Se denomina Sketch a una parte de código fuente listo para abrir con el IDE y ser cargado sobre nuestro dispositivo. Sobre él se escribirá todo el comportamiento que tendrá nuestro proyecto, incluyendo respuesta ante entradas determinadas, cálculos internos, salidas del sistema, etc…
ESTRUCTURA DE UN SKETCH (2)
Un sketch se compone al menos de dos partes.
ESTRUCTURA DE UN SKETCH (3)
El bloque setup()
La parte de código representada como se ejecuta una sola vez cuando comienza el programa. Aun cuando no escribamos nada en él, es necesario escribirlo y añadir las llaves de apertura y cierre { }. Es el método encargado de recoger la configuración. Se suele emplear para determinar si un determinado ‘pin’ es salida o entrada, establecer su valor inicial, inicializar el puerto serie…
ESTRUCTURA DE UN SKETCH (4)
El bloque loop()
Como su propio nombre indica, la función se ejecuta de forma ininterrumpida, una y otra vez. Con este bucle logramos que nuestro programa responda ante los distintos eventos que se produzcan en nuestro proyecto.
ESTRUCTURA DE UN SKETCH (5)
Las llaves { } delimitan bloques de código como funciones, sentencias if…etc, marcando el comienzo y el fin del mismo. Toda llave de apertura ha de tener una llave de cierre de forma balanceada.
Si ves algún sketch, verás partes del código que están escritas en lenguaje humano, es decir, no entendible para el IDE de Arduino. Un buen sketch va siempre acompañado de unos buenos comentarios, es decir, líneas de código que el programa ignorará y que nos servirán, por ejemplo, para describir el funcionamiento del programa.
PRÁCTICAS SELECCIONADAS
¡HOLA MUNDO! O BLINK
CÓDIGO UTILIZADO:
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH); delay(1000);
digitalWrite(13, LOW); delay(1000);
}
PARPADEO DE UN LED
CÓDIGO UTILIZADO:
int led = 13;
void setup() {
pinMode(led, OUTPUT);
}
void loop() {
digitalWrite(led, HIGH)
delay(1000);
digitalWrite(led, LOW); delay(1000);
}
COCHE FANTÁSTICO
CÓDIGO UTILIZADO
int pin2 = 2;
int pin3 = 3;
int pin4 = 4;
int pin5 = 5;
int pin6 = 6;
int pin7 = 7;
int espera = 70;
void setup(){
pinMode(pin2, OUTPUT);
pinMode(pin3, OUTPUT);
pinMode(pin4, OUTPUT);
pinMode(pin5, OUTPUT);
pinMode(pin6, OUTPUT);
pinMode(pin7, OUTPUT);
}
void loop() {
digitalWrite(pin2, HIGH);
delay(espera);
digitalWrite(pin2, LOW);
delay(espera);
digitalWrite(pin3, HIGH);
delay(espera);
digitalWrite(pin3, LOW);
delay(espera);
digitalWrite(pin4, HIGH);
delay(espera);
digitalWrite(pin4, LOW);
delay(espera);
digitalWrite(pin5, HIGH);
delay(espera);
digitalWrite(pin5, LOW);
delay(espera);
digitalWrite(pin6, HIGH);
delay(espera);
digitalWrite(pin6, LOW);
delay(espera);
digitalWrite(pin7, HIGH);
delay(espera);
digitalWrite(pin7, LOW);
delay(espera);
digitalWrite(pin6, HIGH);
delay(espera);
digitalWrite(pin6, LOW);
delay(espera);
digitalWrite(pin5, HIGH);
delay(espera);
digitalWrite(pin5, LOW);
delay(espera);
digitalWrite(pin4, HIGH);
delay(espera);
digitalWrite(pin4, LOW);
delay(espera);
digitalWrite(pin3, HIGH);
delay(espera);
digitalWrite(pin3, LOW);
delay(espera);
}
SEMÁFORO
CÓDIGO UTILIZADO
int rojo=6;
int amarillo=4;
int verde=2;
void setup() {
pinMode(verde,OUTPUT);
pinMode(amarillo,OUTPUT);
pinMode(rojo,OUTPUT);
}
void loop() {
digitalWrite(verde,HIGH); delay(3000); digitalWrite(verde,LOW);
delay(500);
digitalWrite(amarillo,HIGH);
delay(1000);
digitalWrite(amarillo,LOW);
delay(500);
digitalWrite(rojo,HIGH);
delay(3000); digitalWrite(rojo,LOW); delay(500); }
CONTROL DE BRILLO
CÓDIGO UTILIZADO:
const int led =3;
const int pot =0;
int brillo; �void setup () {�pinMode (led, OUTPUT); �void loop (){�brillo = analogRead (pot) / 4; �analogWrite(led, brillo);
}
123D Circuits
Control de brillo de un LED mediante potenciómetro
<iframe frameborder='0' height='448' marginheight='0' marginwidth='0' scrolling='no' src='https://123d.circuits.io/circuits/2281862-control-del-brillo-de-un-led-mediante-potenciometro/embed#breadboard' width='650'></iframe>
123d circuits
Semáforo
<iframe frameborder='0' height='448' marginheight='0' marginwidth='0' scrolling='no' src='https://123d.circuits.io/circuits/2281834-semaforo/embed#breadboard' width='650'></iframe>
123d circuits
Coche fantástico:
<iframe frameborder='0' height='448' marginheight='0' marginwidth='0' scrolling='no' src='https://123d.circuits.io/circuits/2281818-coche-fantastico/embed#breadboard' width='650'></iframe>
123D circuits
Parpadeo de un LED:
<iframe frameborder='0' height='448' marginheight='0' marginwidth='0' scrolling='no' src='https://123d.circuits.io/circuits/2281804-parpadeo-de-un-led/embed#breadboard' width='650'></iframe>
123D circuits
¡Hola mundo! o Blink:
<iframe frameborder='0' height='448' marginheight='0' marginwidth='0' scrolling='no' src='https://123d.circuits.io/circuits/2281809-hola-mundo-o-blink/embed#schematic' width='650'></iframe>