S05 - Programación de Microcontroladores Arduino - CANVAS PDF
S05 - Programación de Microcontroladores Arduino - CANVAS PDF
Programación de Micro
controladores - Arduino
1
07/12/2019
Objetivo
• Comprender la estructura interna de la tarjeta Arduino.
• Conocer los diferentes tipos de tarjetas Arduino.
• Saber el funcionamiento de las tarjetas Arduino.
• Saber utilizar y aplicarlo en un sistema mecatrónico.
Importancia
• Reconoce la estructura del Arduino, identifica sus elementos y sus
aplicaciones más importantes
• Completar esta unidad con éxito le permitirá al estudiante
identificar y describir el funcionamiento de las diferentes tarjetas
Arduino (Hardware y Software).
2
07/12/2019
Mensaje
Temas
• Introducción a las tarjetas Arduino (L01)
• Hardware de la tarjeta Arduino (L02)
• Software de la tarjeta Arduino (L03)
• Conexiones (L04)
• Herramientas (L05)
• Ejemplos (L06)
3
07/12/2019
MECATRÓNICA INDUSTRIAL
LECCION 01
INTRODUCCIÓN
http://arduino.cc/
4
07/12/2019
Continua….
Continua….
Con Arduino se pueden desarrollar proyectos interactivos
autónomos o con capacidad de interactuar con otros dispositivos
tales como una computadora, a través de diversos protocolos de
comunicación con capas físicas cableadas o inalámbricas.
http://arduino.cc/
10
5
07/12/2019
http://arduino.cc/
http://es.wikipedia.org/wiki/Arduino
11
http://arduino.cc/
http://es.wikipedia.org/wiki/Arduino
12
6
07/12/2019
http://arduino.cc/
http://es.wikipedia.org/wiki/Arduino
13
MECATRÓNICA INDUSTRIAL
LECCION 02
HARDWARE
14
7
07/12/2019
http://arduino.cc/
Mega ADK
15
Continua….
LilyPad
Esplora
LilyPad Simple
LilyPad USB
Robot
LilyPad SimpleSnap
http://arduino.cc/
Fio Pro
16
8
07/12/2019
Continua….
Tensión de operación / Velocidad IN/OUT Digital EEPROM SRAM Flash
Nombre Procesador USB UART
Tensión de entrada CPU Análogas
IO/PWM [KB] [KB] [KB]
Uno ATmega328 5 V/7-12 V 16 Mhz 6/0 14/6 1 2 32 Regular 1
Due AT91SAM3X8E 3.3 V/7-12 V 84 Mhz 12/2 54/12 - 96 512 2 Micro 4
Leonardo ATmega32u4 5 V/7-12 V 16 Mhz 12/0 20/7 1 2.5 32 Micro 1
Mega 2560 ATmega2560 5 V/7-12 V 16 Mhz 16/0 54/15 4 8 256 Regular 4
Mega ADK ATmega2560 5 V/7-12 V 16 Mhz 16/0 54/15 4 8 256 Regular 4
Micro ATmega32u4 5 V/7-12 V 16 Mhz 12/0 20/7 1 2.5 32 Micro 1
Mini ATmega328 5 V/7-9 V 16 Mhz 8/0 14/6 1 2 32 - - Uno
ATmega168 0.512 1 16
Nano 5 V/7-9 V 16 Mhz 8/0 14/6 Mini-B 1
ATmega328 1 2 32
Ethernet ATmega328 5 V/7-12 V 16 Mhz 6/0 14/4 1 2 32 Regular -
Esplora ATmega32u4 5 V/7-12 V 16 Mhz - - 1 2.5 32 Micro -
ArduinoBT ATmega328 5 V/2.5-12 V 16 Mhz 6/0 14/6 1 2 32 - 1
Fio ATmega328P 3.3 V/3.7-7 V 8 Mhz 8/0 14/6 1 2 32 Mini 1
Pro (168) ATmega168 3.3 V/3.35-12 V 8 Mhz 6/0 14/6 0.512 1 16 - 1
Pro (328) ATmega328 5 V/5-12 V 16 Mhz 6/0 14/6 1 2 32 - 1
3.3 V/3.35-12 V 8 Mhz Mega ADK
Pro Mini ATmega168 6/0 14/6 0.512 1 16 - 1
5 V/5-12 V 16Mhz
ATmega168V
LilyPad 2.7-5.5 V/2.7-5.5 V 8 Mhz 6/0 14/6 0.512 1 16 - -
ATmega328V
LilyPad USB ATmega32u4 3.3 V/3.8-5V 8 Mhz 4/0 9/4 1 2.5 32 Micro -
LilyPad Simple ATmega328 2.7-5.5 V/2.7-5.5 V 8 Mhz 4/0 9/4 1 2 32 - -
LilyPad SimpleSnap ATmega328 2.7-5.5 V/2.7-5.5 V 8 Mhz 4/0 9/4 1 2 32 - -
http://arduino.cc/
UART: Transmisor-Receptor Asíncrono Universal, es el dispositivo que controla los puertos y dispositivos en serie
17
http://arduino.cc/
18
9
07/12/2019
http://arduino.cc/
Wireless Proto Shield Proto Shield
19
Botón de RESET
Conector USB
Tipo B hembra
Jack alimentación
externa +7-12V
Circuito Esquemático
http://arduino.cc/
20
10
07/12/2019
Botón de RESET
Conector USB
Tipo B hembra
16 MHz Cristal
Resettable fuse
(500 mA)
5 V low dropout
regulator
Jack alimentación
externa +7-12V
Circuito Esquemático
http://arduino.cc/
21
22
11
07/12/2019
Continua….
La placa cuenta con tres tipos de memoria:
B. SRAM: (Memoria Estática de Acceso Aleatorio), allí se crean y manipulan variables durante la
ejecución del sketch.
http://arduino.cc/en/pmwiki.php?n=Tutorial/Memory
23
Continua….
La placa ARDUINO UNO tiene las siguientes capacidades de memoria:
Flash: 32kb
SRAM: 2kb
EEPROM: 1kb
Para requerimientos mayores de memoria, por ejemplo, para guardar registros de mediciones,
existen SHIELDs o Tarjetas de Expansión que permiten conectar memorias SD y micro SD a la
placa Arduino y, leer y escribir datos en ellas a través de librerías existentes en el Entorno de
programación de Arduino.
http://arduino.cc/en/pmwiki.php?n=Tutorial/Memory
24
12
07/12/2019
MECATRÓNICA INDUSTRIAL
LECCION 03
SOFTWARE
25
Entornos de programación gráfica autónomos (La placa ejecuta el programa sin una PC)
GNU
•Miniblock
•Ardublock
•Amici
•Mind +
Comercial
•ModKit
•VirtualBreadBoard
•VBB Jarvis
http://arduino.cc/
Herramientas Gráficas de Programación para Arduino – José Manuel Ruiz Gutiérrez – Marzo 2012.
26
13
07/12/2019
IDE Arduino
27
Continua….
Se ejecuta Infinitamente
Mensajes y errores
28
14
07/12/2019
Continua….
29
Continua….
30
15
07/12/2019
Continua….
31
IDE: Sintaxis/Comandos
Estructura
setup() (Ejecución inicial para iniciación de variables, librerías, estado de pines).
loop() (Ciclo principal del sketch que se ejecuta indefinidamente).
Estructuras de control
if while break
If…else do while continue
for switch case return
Sintaxis
; (fin de comando o estructura de control)
{} (los comandos dentro de ellas pertenecen a la misma estructura de control)
// (comentarios de una sola línea)
/**/ (comentarios multilíneas)
# define (definición de precompilador)
# include (inclusión de código externo como librerías)
Operadores Aritméticos
= (operador de asignación)
+ (suma)
- (resta)
* (multiplicación)
/ (división)
% (módulo)
32
16
07/12/2019
Continua….
Operadores de comparación Operadores de Comparación
== (igual que) x == y // x es igual a y
!= (distinto que) x != y // x no es igual a y
< (menor que) x < y // x es menor que y
> (mayor que) x > y // x es mayor que y
<= (menor o igual que) x <= y // x es menor o igual que y
>= (mayor o igual que) x >= y // x es mayor o igual que y
33
Continua….
Operadores compuestos Operadores Compuestos
++ (incremento) x++ // igual que x = x +1, o incremento de x en +1
-- (decremento) x-- // igual que x = x - 1, o decremento de x en -1
+= (suma compuesta) x+= y // igual que x = x + y, o incremento de x en +y
-= (resta compuesta) x -= y // igual que x = x - y, o decremento de x en –y
*= (multiplicación compuesta) x *= y // igual que x = x * y, o multiplica x por y
/= (división compuesta) x /= y // igual que x = x / y, o divide x por y
&= ( and compuesto a nivel de bits)
|= (or compuesto a nivel de bits)
34
17
07/12/2019
Continua….
Operadores a nivel de bits Tipos de variables
35
Continua….
Conversión Funciones Funciones
char() Cálculo Interrupciones externas
byte() min(), max() attachInterrupt()
int() abs() dettachInterrupt()
word() constrain()
long() map() Interrupciones
float() pow() interrupts()
sqrt() noInterrupts()
Funciones
Entradas/salidas digitales: Trigonometría Comunicación / Serial
pinMode() (INPUT ó OUTPUT) sin(), cos(), tan() begin()
digitalWrite() (HIGH ó LOW) end()
digitalRead() (HIGH ó LOW) Números aleatorios available()
randomSeed() read()
Entradas/salidas analógicas: random() flush()
analogReference() print()
AnalogRead() Bits y Bytes println()
AnalogWrite() lowByte() write()
highByte()
Entradas/salidas avanzadas bitRead() Tiempo
tone() bitWrite() millis()
notone() bitSet() micros()
shiftOut() bitClear() delay()
pulseIn() bit()
36
18
07/12/2019
MECATRÓNICA INDUSTRIAL
LECCION 04
HERRAMIENTAS
37
123D CIRCUITS
Es un programa libre online de simulación de circuitos que incluye placas ARDUINO. Permite
introducir el código y evaluar funcionamiento del mismo.
38
19
07/12/2019
FRITZING
Es un programa libre de automatización de diseño electrónico que busca ayudar a diseñadores
para que puedan pasar de prototipos (usando placas de pruebas por ejemplo) a productos
finales. NO SIMULA EL CIRCUITO
39
PROCESSING
Es un lenguaje de programación y entorno de desarrollo integrado de código abierto basado en
Java, de fácil utilización, y que sirve como medio para la enseñanza y producción de proyectos
multimedia e interactivos de diseño digital.
40
20
07/12/2019
ARDUBLOCK ó S4A
Es una aplicación ligera que te proporciona un sencillo entorno de programación visual para la
plataforma Arduino. Transforma la programación en un juego de bloques tipo TETRIS.
41
Sites de descarga
ARDUINO: http://arduino.cc/
ARDUBLOCK: http://blog.ardublock.com/
FRITZING: http://fritzing.org/home/
PROCESSING: https://processing.org/
TINKERCAD https://www.tinkercad.com/
42
21
07/12/2019
MECATRÓNICA INDUSTRIAL
LECCION 06
EJEMPLOS
43
Terminología
“Sketch” = Un Programa escrito para ejecutarse en una tarjeta Arduino.
“pin” = Una entrada o salida conectado hacia algo. Ejemplo Salida a un Led
44
22
07/12/2019
45
46
23
07/12/2019
void setup() {
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
}
47
Continúa….
48
24
07/12/2019
49
50
25
07/12/2019
51
26