Vous êtes sur la page 1sur 22

Laboratorio de Ingeniería

Eléctrica y Aplicaciones

• Prof. Daniel Casagrande

Unidad 2: Arduino
Contenido

• Motivación
• Introducción
• Hardware: Arduino UNO
• Software: IDE Arduino
• TinkerCAD
Motivación

• Acercar la electrónica y programación a gente sin


conocimientos técnicos en estas disciplinas.
• Promover las interacciones entre computadoras o
sistemas informáticos y su entorno.
• Plataforma económica y robusta.

Fuente: J. Nussey, Arduino for dummies, Wiley, 2013.


Contenido

• Motivación
• Introducción
• Hardware: Arduino UNO
• Software: IDE Arduino
• TinkerCAD
Introducción
¿Qué es Arduino?
• Plataforma electrónica open-source basada en software y hardware fácil de usar.
• Las placas pueden leer entradas empleando sensores
y realizar acciones a través de actuadores.
• Existen diferentes configuraciones y shields de
acuerdo a la aplicación que se desee desarrollar.
• Se pueden programar empleando el Entorno de
Desarrollo Integrado (IDE) Arduino.

Fuente: Arduino.
Introducción
Arduino UNO

Ref. analógica
14 entradas/salidas digitales

GND
I2C (6 PWM) (5 V, 40 mA)
Reset
Transmisión serie
(0=RX, 1=TX)
Conexión
USB LED de encendido
(5 V)
ICSP

Atmel ATmega328P
(8-bit, 16 MHz, 32 KB
Fuente de Flash, 1 KB EEPROM)
energía
externa
(7-12V)
Batería (9V)
3.5 V y 5 V
Salidas de

6 entradas analógicas
GND

(0-5 V, 10-bit ADC)


Fuente: Arduino.
Introducción
Arduino UNO

Fuente: foro arduino


Contenido

• Motivación
• Introducción
• Hardware: Arduino UNO
• Software: IDE Arduino
• TinkerCAD
Arduino UNO
Microprocesador
ATmel ATmega328p:
• 28 pines
• 3 V o 5 V para alimentación
• Consume 0.1 W
• 16 MHz
• 32 KB memoria flash
• 2KB de RAM
Fuente: Microchip y RS componentes • 2000 CLP

Intel i5 6400:
• 1151 pines
• 1.35 V para alimentación
• Consume 35 W
• 2800 MHz
• No posee memoria flash
• No posee memoria RAM
• 25000 CLP
Arduino UNO
Alimentación

Alimentación del Arduino:


1. A través del puerto USB (5 V), sólo para
1 aplicaciones de baja potencia
4 2. A través del conector plug 2.1mm (7-20 V,
9 V recomendado), centro positivo
5 3. A través de los pines de alimentación Vin y
GND (9 V)
4. Indicador LED de funcionamiento
2 5. Fusible
Alimentación de sensores o actuadores:
6. A través de los pines 3.3 V y 5 V
6 3
Notas:
• si hay una fuente externa de energía conectada al plug 2.1mm, entonces dicha tensión estará disponible en Vin.
• GND es la tierra común para alimentación y datos.
• La tensión de 5 V es proveída por la fuente de alimentación externa o por la conexión USB (cargas de hasta 500 mA).
• La tensión de 3.3 V es útil para algunos sensores (cargas de hasta 100 mA).
• El pin Reset cumple la misma función que el botón Reset.
• El pin IOREF es usado como referencia del nivel alto para Arduino, empleado para los shield.
Arduino UNO
Comunicación serie

3 2
1. A través del puerto USB.
2. A través de los pines TX y RX
3. A través de los pines I2C
1 4. A través de los pines ICSP (programación)
5 5. Indicadores LED de TX y RX
4
Arduino UNO
Entradas y salidas

6 5 2 1
Entradas y salidas digitales:
1. Pines 0 (RX) y 1 (TX) transmisión serie
2. Pines 2 a 13 son entradas y salidas normales, algunas
de ellas pueden efectuar PWM (indicado con ~)
3. Pin 13 se puede usar como los demás, pero además
está conectado a un LED.
4. Pin GND
5. Pin AREF se emplea para darle un valor de tensión de
referencia al conversor analógico digital.
6. Pines SDA y SCL se emplean para transmisión de datos
con sensores que emplean el protocolo I2C.

Entradas analógicas:
• 14 entradas/salidas digitales de las cuales 6 realizan 1. Pines A0 a A5
PWM (pines 3, 5, 6, 9, 10 y 11). 2. Convierten tensiones de hasta 5 V a valores digitales
• 6 entradas analógicas conectadas a un conversor 3. Pueden emplearse como entradas/salidas digitales
analógico digital de 10 bits.
Arduino UNO
Shields

Existen una gran variedad de placas suplementarias (shields) para Arduino:


1. Control de motores DC y servos
2. Módulo GPS con registro de datos
3. Módulo pantalla TFT
4. Módulo NFC/RFID
5. Módulo pantalla LCD
6. Módulo relés
7. Módulo conexión Bluetooth

Fuente: MCI electronics


Contenido

• Motivación
• Introducción
• Hardware: Arduino UNO
• Software: IDE Arduino
• TinkerCAD
Nuevo
IDE Arduino Subir Abrir
Salvar Monitor
serie
Entorno integrado de desarrollo Arduino

Principales características:
Verificar
1. Open source
2. Programación simplificada, similar a C
3. Amplia documentación
4. Librerías disponibles listas para usar
5. Gran comunidad de usuarios
6. Ejemplos incluidos
Área de edición

Área de mensajes

Consola
IDE Arduino
Entorno integrado de desarrollo Arduino
Un sketch cuenta con al menos dos partes:
1. setup
2. loop
3. Comentarios
4. Declaraciones
setup
Primer bloque o función en ejecutarse y sólo se ejecuta una vez.
En este bloque se configura el Arduino: declaración de variables,
configuración de puertos como entrada o salida, configuración de la
comunicación serie, configuración inicial de las salidas, etc.
loop
Contiene el código que se ejecuta cíclicamente: lectura de entradas,
activación de salidas, etc.

Declaraciones
Pueden declararse variables antes del bloque setup. También se
pueden agregar librerías con funciones ya desarrolladas.
IDE Arduino
Comentarios sobre el lenguaje de programación

Tipos de variables: Operadores aritméticos: Constantes:


• void • Aritméticos: =, +, -, *, /, % • true, false
• boolean (true o false) • HIGH, LOW
• Comparadores: ==, !=, <, >, <=, >=
• char (‘C’, 66) • INPUT, OUTPUT, INPUT_PULLUP
• unsigned char
• Booleanos: &&, ||, ! • LED_BUILTIN
• byte • Bit a bit: &, |, ^, ~, <<, >>, • Constantes de tipo int y float
• int (2 bytes -32768 a 32767) • Compuestos: ++, --, +=, -=, *=, /=, • Simbólicas empleando #define
• unsigned int (0 a 65535) %=, &=, |=
• word (número de 16 bit sin signo)
• long (4 bytes con signo) Alcance (scope) de una variable:
• unsigned long (4 bytes sin signo)
• Global: variables declaradas fuera de una función.
• short (en Arduino es igual a int)
• float (4 bytes) • Local: variables que sólo están definidas dentro de una
• double (4 bytes, en Uno es igual a float) función o estructura de control.
• string (“Arduino”, es un array de char)
• String (clase String, mejor manipulación Conversión de tipo de variable:
de texto) • A través de funciones específicas: char(), byte(), int(), etc.
• array (colección de variables a las que
• Operador cast: (tipo)variable.
se accede con un índice, que inicia en 0)

Caracteres válidos para las variables: letras del alfabeto inglés en minúsculas y mayúsculas, números del 0 al 9 y el
carácter ‘_’.
IDE Arduino
Comentarios sobre el lenguaje de programación

Estructuras de control: Configuración de entradas y salidas:


• if (condición){…} • Se realiza en el bloque setup y se emplea la función
• if (condición) {…} else {…} “pinMode(pin,mode)”
• for (inicialización, condición, incremento){…} • “pin” es el pin que se desea configurar
• switch (variable){case 1…} • “mode” es INPUT, OUTPUT o INPUT_PULLUP
• while (condición){…}
• do {…} while (condición)
A veces es necesario llevar un pin de entrada a un valor
• break (empleado para salir de bucles y bloques switch) conocido cuando no hay señal presente.
• continue (empleado en bucles para ignorar el resto de Si se desea un valor bajo se usa un resistor pull-down; por el
código en dicha iteración y continuar con la siguiente) contrario, para un valor alto se emplea un resistor pull-up.
• return (termina una función y puede devolver un valor) También puede emplearse un resistor interno configurando
• goto (continúa la ejecución a partir de una etiqueta) el pin como “INPUT_PULLUP”.

Tener en cuenta:
• ‘#include’ se usa para incluir librerías y ‘#define’ para definir constantes.
• Cada declaración debe terminar con ‘;’ con la excepción de “#include” y “#define” y estructuras de control.
IDE Arduino
Cheat sheet

Disponible
en
uCampus
IDE Arduino
Enlaces útiles

Documentación:
• https://playground.arduino.cc/ (en inglés)
• https://playground.arduino.cc/ArduinoNotebookTraduccion/Structure/ (en español)
• https://playground.arduino.cc/Es/Guias/ (en español)
• Buscar en la ayuda del entorno de desarrollo.

Entorno de desarrollo en línea:


• https://create.arduino.cc/ (es necesario abrir una cuenta de usuario)

Tutoriales:
• https://www.arduino.cc/en/Tutorial/HomePage (también se pueden encontrar en la ayuda de la IDE)

Simulación:
• https://www.tinkercad.com/ (es necesario abrir una cuenta de usuario)
Arduino UNO
¿Qué es PWM?

PWM quiere decir modulación por ancho de pulso.


Las salidas del Arduino pueden tomar un valor HIGH (5 V) o LOW (0 V).
¿cómo obtener valores intermedios o señales analógicas?
No se pueden obtener valores intermedios, pero si es posible controlar el tiempo que la salida está en HIGH y en LOW.
Si se cambia rápidamente entre LOW y HIGH, para la carga es como si la señal fuera un valor intermedio entre 0 y 5 V.

Ton = tiempo que la señal está en HIGH


Toff = tiempo que la señal está en LOW
Periodo = Ton + Toff
Ciclo de trabajo (duty cicle) = Ton/(Ton + Toff)

La función que se debe emplear es: analogWrite(valor);

valor puede variar entre 0 (0%) y 255 (100%).


La frecuencia (por defecto) de la señal es de 980 Hz para los pines
5 y 6; y de 490 Hz para los pines 3, 9, 10 y 11.

Fuente: www.hackster.io
Arduino UNO
Ejemplos en TinkerCAD

Blink
PWM para controlar un led
Leer un valor analógico
Leer un valor analógico y convertirlo a un valor de tensión
Leer un valor PWM y mostrar el resultado en el monitor serie

Vous aimerez peut-être aussi