1. ARDUINO I
Sesión 1
Bach. Max Andy Diaz Neyra
mdiazn@uni.pe
Universidad Nacional de Ingeniería
Centro de Tecnología de Información y Comunicaciones
2019
2. Objetivo:
• Utilizar la plataforma de hardware libre Arduino para solucionar
problemas de adquisición y de control a través de programas que
trabajen con sensores y actuadores.
• Conoceremos las características de la plataforma.
• Aprenderemos a usar el entorno de desarrollo integrado(IDE) de
Arduino.
• Diseñar programas para el uso de las interfaces
3. Cronograma
• Semana 1: Tarjeta Arduino y programación: declaración de variables, tipo de datos y
operadores. Leds y display 7 segmentos.
• Semana 2: Programación: Estructuras de control. Funciones. Arreglos. Uso de pulsadores.
Comunicación Arduino-PC.
• Semana 3: Librerías. Interfaces y shields. Uso de la matriz de led 8x8. Uso del teclado
matricial 4x4. Pantalla LCD 16x2.
• Semana 4: Concepto de conversor analógico digital. Potenciómetro. Sensores analógicos:
ultrasónicos y de temperatura.
• Semana 5: Concepto de señales PWM. Concepto de motores de corriente continua y
tipos. Uso de un módulo puente H.
• Semana 6: Modulo bluetooth. Comunicación Android – Arduino. Proyecto: Carro a
control remoto controlado con celular.
4. Sistema de calificación
• 6 evaluaciones/ 1 al final de cada clase
• La nota final será el promedio de las 6
• La nota mínima para el certificado será 14
5. ¿Qué es un Arduino?
• Una computadora completa en un solo circuito. (Single Board
Computer).
• Arduino es una plataforma de hardware libre.
• Programadas a través de un entorno de desarrollo integrado (IDE).
• Diseñado para desarrollar proyectos de electrónica.
6. Single Board Computer (SBC)
Un SBC es una computadora completa en un solo circuito. El diseño se
centra en un solo microprocesador o microcontrolador, que cuenta con
memoria ROM, RAM e interfases de entrada y salida (E/S) en una sola
tarjeta que suele ser de tamaño reducido.
8. Open hardware
• Significa que tanto su diseño como su distribución es libre, y puede
utilizarse libremente para desarrollar cualquier tipo de proyecto sin
tener que adquirir ningún tipo de licencia.
14. Un mundo de posibilidades
• https://www.youtube.com/watch?v=nfm3qQoZIuo
15. Arduino UNO
• Utiliza microcontroladores de 8
bits ATmega328.
• 14 pines entradas/salidas digitales
(0 al 13).
• 6 pines de entradas analógicas (0 al
5).
• 6 pines de salida analógica
(soportan PWM).
• Los pines de Atmega328
pueden entregar o recibir hasta 40
mA (miliamperios).
16. Microcontrolador ATmega328
• Es un microcontrolador RISC
(Reduce Instruction Set
Computer)
• Memoria flash 32KB
• SRAM 2KB
• EEPROM 1KB
• 6 ADC de 10 bits .
• Velocidad de reloj de 16MHz
20. Estructura del Sketch
• Se denomina Sketch al programa
desarrollado para ser ejecutado
en la placa Arduino.
• Cada instrucción finaliza con un ;
• Los comentarios se indican con
//
• La extensión de los programas
de Arduino es .ino
21. Tipo de datos
• bool: Almacena el valor de 1 bit. Puede valer "0" o "1".
• byte: Almacena un valor numérico de 8 bits. Tienen un rango de 0 a 255.
• char: Almacena el código ASCII de un caracter.
• int: Almacena un valor entero de 16 bits con un rango de -32,768 a 32,767.
• long: Valor entero almacenado en 32 bits con un rango de -2,147,483,648
a 2,147,483,647.
• float: Tipo coma flotante almacenado en 32 bits con un rango de -
3.4028235E+38 a 3.4028235E+38.
• double: Número en coma flotante de doble precisión de 32 bits. La
implementación "double" en Arduino es exactamente lo mismo que la float,
sin ganar nada de precisión.
• array: Es una colección de variables que son accedidas mediante un número
de índice (el primer valor del índice es 0).
22. Variable
• Es un posición en la memora donde se almacena el valor de un dato.
• Dependiendo del tipo de dato, la variable ocupara un determinado
espacio
• Ejemplo: int inputVariable ;
• La variable es global es aquella que puede ser usado en cualquier
función
• Una variable local si es definida dentro de una función.
23. Funciones
• Una función es un bloque de código identificado por un nombre y que
es ejecutado cuando la función es llamada. Tiene la misma estructura
que las funciones en C.
• Setup() y Loop() son ejemplos de función.
26. LED(Light Emitting Diode)
• El LED, como su nombre indica,
es un diodo emisor de luz
• Este tiene dos pines llamados
ánodo y cátodo.
• Se puede verificar cual es el
ánodo y cátodo con ayuda de un
multímetro.
27. Ejemplo
• Programa el Arduino UNO para hacer parpadear el led conectado al
pin 13 cada 1 segundo.
28. Solución
• void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, 1); // Encendemos el led
delay(1000); // Esperamos 1 segundo
digitalWrite(13, 0); // Apagamos el led
delay(1000); // Esperamos 1 segundo
}
43. Solución
void setup() {
pinMode(13,OUTPUT);
pinMode(12,OUTPUT);
pinMode(11,OUTPUT);
pinMode(10,OUTPUT);
}
void loop() {
//El número DOS se expresa en binario como 0010
digitalWrite(13,0); // Leemos el bit0
digitalWrite(12,1); // Leemos el bit1
digitalWrite(11,0); // Leemos el bit2
digitalWrite(10,0); // Leemos el bit3
delay(1000);
//El número CINCO se expresa en binario como 0101
digitalWrite(13,1); // Leemos el bit0
digitalWrite(12,0); // Leemos el bit1
digitalWrite(11,1); // Leemos el bit2
digitalWrite(10,0); // Leemos el bit3
delay(1000);
}
50. Ejemplo
Realizar un programa con el cual se hace parpadear un led cada 4
segundos, cuando se active el switch el tiempo de parpadeo debe ser
de 8 segundos.
52. Ejercicio
• Elaborar un programa en el cual un slideswitch encienda un led
cuando esta en una posición y encender otro cuando este en la otra
posición
70. Operador a nivel de bit
• &(and)
• |(or)
• ^(xor)
• ~(not)
• <<(bitshift left)
• >>(bitshift right)
71. Ejemplo
Programa (sketch) que lee un número BCD y muestra en una "barra de
leds" la misma cantidad, en leds encendidos. Ejemplo:
número = 2, entonces se encienden 2 leds.
número = 1, entonces se encienden 1 leds.
Arduino es un proyecto que inicia en 2005 en el instituto de IVREA
Diseñado para realizar proyectos electrónicos.
Raspberry es de origen ingles y se diseño pensado en llevar informática a los colegios.
Realiza una pausa especificada por el valor colocado entre los paréntesis. La base de tiempos es en milisegundos. Los valores permitidos van de 0 hasta 1000.
Actualmente, el mayor valor que producirá un retardo preciso es 16383 (esto puede cambiar en futuras versiones de Arduino).
La corriente máxima recomendada para un LED es de 10 miliamperios.
El Protoboard es una placa de desarrollo electrónico en el cual se pueden insertar componentes electrónicos y cables para el armado de circuitos electrónicos
Ánodo común: Los segmentos se encienden con "0".
Cátodo común: Los segmentos se encienden con "1".
Cada dígito decimal es codificado con una secuencia de 4 bits (nibble).
Con BCD solo se utilizan 10 de las 16 posibles combinaciones que se pueden formar con números de 4 bits.
CI que nos permite utilizar el display de 7 segmentos utilizando un menor numero de pines digitales.
7447 y 7448, las pines 3 4 5 van a fuente
Los pines restantes LT, BI/RBO y RBI son entradas que se activan en nivel bajo (0 voltios), es decir que si las vamos a conectar por lo general deben permanecer en estado alto (5 Voltios). La función que cumplen son las siguientes:
LT (Lamp Test): Poniendo en estado Lógico 0 este pin y manteniendo BI/RBO en 1, el decodificador encenderá todos los segmentos del display (sin importar el valor que este en las entradas A, B, C y D), es una forma de probar que ninguno se encuentre dañado.
RBI (Ripple Blanking Input): Cuando todas nuestras entradas se encuentran en estado lógico 0 y manteniendo LT en 1, al poner el pin RBI en 0 este apagará todo el display, por tanto, en algunos casos podemos usarlo para suprimir el cero cuando no hace falta mostrarlo.
BI/RBO (Blanking Input/Ripple Blanking Output): Siempre permanece en estado alto (1), a menos que RBI, A, B, C y D estén es estado bajo, de este modo, BI/RBO también pasará a estado bajo. Al aplicarle directamente un estado bajo, sin importar el estado de las demás entradas, apagará los segmentos del display.