Sunteți pe pagina 1din 31

7/4/2019

Curso: Sistemas Mecatrónicos Industriales


Especialidad: Mantenimiento de Maquinaria
de Planta
6to Semestre
Profesor: Miguel León Mozo
Email: mleon@tecsup.edu.pe
Tecsup - 2019

Seguridad
• Teléfono en caso de emergencia.
• Extintores de incendio.
• Rutas de Evacuación.
• Peligros potenciales de la sala.

1
7/4/2019

Video

Programación de Micro
controladores - Arduino

2
7/4/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).

3
7/4/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)

4
7/4/2019

MECATRÓNICA INDUSTRIAL

LECCION 01

INTRODUCCIÓN

¿En que consiste Arduino?


“Arduino es una plataforma de HARDWARE Y SOFTWARE LIBRE,
fácil de usar; dirigido a cualquier persona que realiza proyectos
interactivos”.
Esta plataforma consta de una placa con un microcontrolador que
permite conectar sensores y actuadores; mediante entradas y
salidas respectivamente, las cuales pueden ser digitales o
analógicas.

http://arduino.cc/

5
7/4/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.

Arduino se ideó como una herramienta para crear objetos


interactivos sin la intervención de un especialista poniendo en las
manos de cualquier persona con conocimientos técnicos mínimos
la capacidad de experimentar con la electrónica de una forma
sencilla y práctica.

http://arduino.cc/

6
7/4/2019

¿Cómo nació Arduino?


“Arduino surgió en el año 2005 como un proyecto para estudiantes
en el Instituto IVREA, en Ivrea (Italia). Uno de los fundadores de
Arduino, Massimo Banzi quien daba clases allí. Su objetivo era
reemplazar una placa de 100 dólares que usaban los estudiantes
por una que no costara más de 30 euros.
El nombre proviene del “Bar del Rey Arduino” en el cual Massimo
pasaba algunas horas.

http://arduino.cc/
http://es.wikipedia.org/wiki/Arduino

¿Cómo nació Arduino?


En su creación, contribuyó el estudiante colombiano Hernando
Barragán, quien desarrolló la tarjeta electrónica Wiring, el lenguaje
de programación y la plataforma de desarrollo.

Concluida dicha plataforma, varios investigadores trabajaron para


hacerlo más ligero, más económico y disponible para la comunidad
de CÓDIGO ABIERTO (hardware y software abierto).

http://arduino.cc/
http://es.wikipedia.org/wiki/Arduino

7
7/4/2019

¿Para que sirve Arduino?


 Desarrollar programas que interactúan con el mundo
 Redes de sensores
 Robótica sencilla
 Alarmas
 Sistemas de comunicaciones
 Otros

http://arduino.cc/
http://es.wikipedia.org/wiki/Arduino

MECATRÓNICA INDUSTRIAL

LECCION 02

HARDWARE

8
7/4/2019

Hardware: Familia de tarjetas Arduino

Leonardo Uno Mega 2560 Zero

Yún Tre Due Ethernet

http://arduino.cc/
Mega ADK

Continua….

Micro Nano Pro Mini


Mini

LilyPad
Esplora

LilyPad Simple
LilyPad USB

Robot

LilyPad SimpleSnap
http://arduino.cc/
Fio Pro

9
7/4/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

Tarjetas de expansión: Shields

http://arduino.cc/

10
7/4/2019

Tarjetas de expansión: Shields

GSM Shield Ethernet Shield WiFi Shield

Wireless SD Shield USB Host Shield Motor Shield

http://arduino.cc/
Wireless Proto Shield Proto Shield

Descripción de la Tarjeta Arduino

Botón de RESET

Conector USB
Tipo B hembra

Jack alimentación
externa +7-12V

Circuito Esquemático
http://arduino.cc/

11
7/4/2019

Descripción de la Tarjeta Arduino


USB to serial IC

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

3.3 V low dropout


regulator

Circuito Esquemático
http://arduino.cc/

Microcontrolador Arduino: AT Mega 328

12
7/4/2019

Continua….
La placa cuenta con tres tipos de memoria:

A. Flash: en ella se almacenan los programas conocidos como sketchs.

B. SRAM: (Memoria Estática de Acceso Aleatorio), allí se crean y manipulan variables durante la
ejecución del sketch.

C. EEPROM: memoria en la que se pueden almacenar datos a largo plazo.

Las memorias Flash y EEPROM no son volátiles, es decir, la información no se pierde o


volatiliza con la falta de energía. Por el contrario, la memoria SRAM es volátil, es decir, sus
datos se borran al desenergizar la placa.

http://arduino.cc/en/pmwiki.php?n=Tutorial/Memory

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

13
7/4/2019

MECATRÓNICA INDUSTRIAL

LECCION 03

SOFTWARE

Software: Entornos de programación


IDE (Entorno de Desarrollo Integrado)

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

Entornos de monitorización esclavos (La placa interactúa con una PC)


GNU
•Etoys (Squeak)
•S4A (Scratch)
•FireFly
•Pure Data
•MyOpenLab
Comercial
•LabVIEW
•FireFly

http://arduino.cc/
Herramientas Gráficas de Programación para Arduino – José Manuel Ruiz Gutiérrez – Marzo 2012.

14
7/4/2019

IDE (Entorno de Desarrollo Integrado)


El IDE de Arduino está creado en Java y consta de un editor de texto que permite escribir, verificar,
compilar y cargar programas en un lenguaje propio basado en C/C++ a todas las placas de la familia
Arduino. Estos programas se conocen como sketchs o bocetos y tiene la extensión .ino (en la versión 1.0
era .pde). El programa se descarga gratuitamente del sitio oficial: http://arduino.cc/en/Main/Software
Una vez cargado el sketch en la memoria flash de la placa Arduino, el mismo se ejecutará siempre que la
placa esté energizada a través del puerto USB o a través de alimentación externa en la ficha JACK o en el
pin Vin.

IDE Arduino

Continua….

Se ejecuta una sola vez

Se ejecuta Infinitamente

Mensajes y errores

15
7/4/2019

Continua….

Continua….

16
7/4/2019

Continua….

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)

17
7/4/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

Operadores booleanos Operadores Booleanos


&& (and) Logica AND:
|| (or) if (x > 0 && x < 5) // cierto sólo si las dos expresiones // son ciertas
! (not) Logica OR:
if (x > 0 || y > 0) // cierto si una cualquiera de las // expresiones es cierta
Operadores de acceso a punteros Logica NOT:
& (acceso a memoria) if (!x > 0) // cierto solo si la expresión es // falsa
* (direccionamiento)

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)

18
7/4/2019

Continua….
Operadores a nivel de bits Tipos de variables

& (and) boolean (true o false)


| (or) char – unsigned char (un solo carácter)
^ (xor) String (cadena de caraceres)
~ (not) byte (1byte: enteros de -128 a 127)
<< (desp. de bits a la izquierda) int – unsigned int (2 bytes: enteros de -32768 a 32767)
>> (desp. de bits a la derecha) long – unsigned long (enteros de 4 bytes)
word (entero de 16 bits sin signo)
Constantes float, double (coma flotante 4 bytes)
array (matriz de datos del mismo tipo)
HIGH, LOW (alto, bajo)
INPUT, OUTPUT (entrada, salida)
True, False
constantes enteras
constantes punto flotante

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()

19
7/4/2019

MECATRÓNICA INDUSTRIAL

LECCION 04

CONEXIONES

Conexionado de Entradas y Salidas


Entrada digital por interruptor o pulsador

- Conexión pullup - Conexión pulldown

- Entrada analógica por potenciómetro

http://arduino.cc/
Manual de Arduino. Programación y conceptos básicos. Raul Diosdado – MakerZona.

20
7/4/2019

Continua….
Salidas digitales
Salida de baja corriente (< 40 mA Salida de potencia a través de mosfet o
por pin y < 200 mA en conjunto) transistor (salida de estado solido)

Salida de potencia a través de relé (salida con contacto móvil)

http://arduino.cc/
Manual de Arduino. Programación y conceptos básicos. Raul Diosdado – MakerZona.

MECATRÓNICA INDUSTRIAL

LECCION 05

HERRAMIENTAS

21
7/4/2019

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.

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

22
7/4/2019

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.

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.

23
7/4/2019

Sites de descarga
 ARDUINO: http://arduino.cc/

 SCRACTH FOR ARDUINO: www.s4a.cat

 ARDUBLOCK: http://blog.ardublock.com/

 FRITZING: http://fritzing.org/home/

 PROCESSING: https://processing.org/

MECATRÓNICA INDUSTRIAL

LECCION 06

EJEMPLOS

24
7/4/2019

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

 “Digital” = Es un valor Alto o Bajo (1 / 0)

 “Analog” = Toma valores, usualmente entre 0 - 255.

Ejemplo 1: Lectura y escritura de I/O Digitales

25
7/4/2019

Ejemplo 1: Lectura y escritura de I/O Digitales

Ejemplo 1: Lectura y escritura de I/O Digitales


/*
Blink
Turns on an LED on for one second, then off for one second, repeatedly.
This example code is in the public domain.
*/
//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
}

26
7/4/2019

Reto 1: Lectura y escritura de I/O Digitales

Ejemplo 2: Lectura y escritura de I/O Digitales


/*Instrumentación Avanzada, ejemplo de programación en el IDE. Lectura y escritura de entradas y salidas digitales
*/

const int pulsador = 5; // numero del pin de entrada


const int led = 7; // numero del pin de salida

int estado_boton = 0; // estado del pin de entrada

void setup () {
pinMode (led, OUTPUT); // se configura el pin 7 como salida
pinMode (pulsador, INPUT); // se configura el pin 5 como entrada
} // fin del setup

void loop () {
estado_boton = digitalRead (pulsador); //lee la entrada digital del botón
if (estado_boton == HIGH) { // si se pulsa el botón (estado lógico alto)
digitalWrite(led, HIGH); //escribe la salida digital del led (lo enciende)
} // fin del if
else {
digitalWrite(led, LOW); //escribe la salida digital del led (lo apaga)
} // fin del else
} // fin del loop

27
7/4/2019

Ejemplo 3: Lectura y escritura de I/O Analógicas


/* Instrumentación Avanzada, ejemplo de programación en el IDE. Lectura y escritura de entradas y salidas analógicas
*/

const int potenciometro=2; // numero del pin de la entrada analógica


const int led=9; // num. del pin de la salida digital PWM func. como analógica de 8 bits de resolución (0 a 255)
int valor_pote; // variable en la que se guardara el valor del pote (de 0 a 1023);

void setup () {
pinMode(led,OUTPUT); // se configura el pin 9 como salida
} // fin del setup

void loop () {
valor_pote=analogRead (potenciometro); // lee la entrada analógica del potenciómetro
valor_pote=map (valor_pote,0,1023,0,255); // mapea valores de 0 a 1023 en valores de 0 a 255
analogWrite (led,valor_pote); // escribe la salida digital del led en modo PWM (0-255 equivale a 0-5V)
} // fin del loop

MECATRÓNICA INDUSTRIAL

LECCION 07

PROXIMA CLASE

28
7/4/2019

Investigación sobre Arduino


Funcionamiento de las salidas analógicas PWM
Interacción con la PC a través de Labview
Ejemplo de programación Labview

Web Server con Arduino + Ethernet Shield


Registrador con Arduino + Datalogger Shield

Continúa….

29
7/4/2019

Mecatrónica. William Bolton.


Arduino by Example (Community Experience Distilled)

30
7/4/2019

Curso: Sistemas Mecatrónicos Industriales


Especialidad: Mantenimiento de Maquinaria
de Planta
6to Semestre
Profesor: Miguel León Mozo
Email: mleon@tecsup.edu.pe
Tecsup - 2019

31

S-ar putea să vă placă și