0% encontró este documento útil (0 votos)
7 vistas69 páginas

S5 Lab1

El documento describe un laboratorio sobre el Internet de las Cosas utilizando Arduino, donde los estudiantes aprenden a simular y programar circuitos eléctricos. Se abordan temas como la simulación de circuitos, el uso de microcontroladores, la programación en Arduino, y la configuración de pines digitales y analógicos. Además, se explica el uso de librerías para facilitar la programación y la comunicación serial entre dispositivos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
7 vistas69 páginas

S5 Lab1

El documento describe un laboratorio sobre el Internet de las Cosas utilizando Arduino, donde los estudiantes aprenden a simular y programar circuitos eléctricos. Se abordan temas como la simulación de circuitos, el uso de microcontroladores, la programación en Arduino, y la configuración de pines digitales y analógicos. Además, se explica el uso de librerías para facilitar la programación y la comunicación serial entre dispositivos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 69

Internet de las Cosas

LAB 1 – Arduino
Simulación, Implementación y
Programación.
Sesión de Laboratorio
En esta experiencia de laboratorio, exploraremos diversas
prácticas orientadas al aprendizaje activo de los principios
Objetivo de sesión aquí
fundamentales de los circuitos eléctricos y su simulación.
A lo largo de las sesiones, los estudiantes desarrollarán
competencias prácticas mediante el uso de plataformas
digitales y componentes reales. Aquí se presentan los
objetivos principales formulados de manera clara y
didáctica:

1. Simulación de Circuitos. Utilizar Tinkercad y Falstad


para construir y analizar circuitos eléctricos de forma
virtual.

1. Conexiones de Resistencias. Aplicar configuraciones en


serie y paralelo para calcular la resistencia equivalente.

1. Montaje de Componentes Básicos. Integrar resistencias,


LEDs, potenciómetros y botones en circuitos prácticos.

1. Diseño de un Semáforo. Implementar un sistema de


control de semáforo con lógica programada y entradas
digitales.

1. Uso de Instrumentos de Medición. Medir voltaje,


corriente y resistencia con instrumentos adecuados y
conexiones correctas.
1.
Simulación de Circuitos
Eléctricos
Tinkercad y Falstad
Espacio de Trabajo
En Tinkercad.
Espacio de Trabajo
En Tinkercad.
Espacio de Trabajo
En Tinkercad.
Conexionado de Resistencias
En protoboard.
Espacio de Trabajo
En Tinkercad.

¿Funciona?
Espacio de Trabajo
En Tinkercad.
Espacio de Trabajo
En Tinkercad.
Simulación en Tinkercad
Encendido de LED y medición con herramientas.
Anexo: Resistencias
Recuperación de sesiones
2.
Programación en
Arduino
Tinkercad
Introducción: Microcontroladores
¿Qué es un Microcontrolador?
Una unidad de microcontrolador es esencialmente una computadora
pequeña en un solo chip. Está diseñado para administrar tareas
específicas dentro de un sistema integrado sin requerir un sistema
operativo complejo.

Estos circuitos integrados compactos (IC) contienen un núcleo de


procesador (o núcleos), memoria de acceso aleatorio (RAM) y
memoria de solo lectura programable borrable eléctricamente
(EEPROM) para almacenar los programas personalizados que se
ejecutan en el microcontrolador, incluso cuando la unidad está Microcontrolador PIC16F876A de
desconectada de una fuente de alimentación. Microchip
Introducción: Microcontroladores
¿Cuál es la diferencia con un microprocesador?
Un microprocesador (como los de una
computadora) necesita componentes
externos para funcionar, como memoria y
dispositivos de entrada/salida.

Los microcontroladores integran


periféricos de procesamiento, memoria y
entrada/salida (E/S), incluidos
temporizadores, contadores y Microcontrolador PIC16F876A
Microprocesador Intel Core i7
convertidores de analógico a digital de Microchip

(ADC), en una unidad independiente


eficiente y rentable.
Introducción: Microcontroladores
¿Cuál es la diferencia con un microprocesador?
Un microprocesador (como los de una
computadora) necesita componentes
externos para funcionar, como memoria y
dispositivos de entrada/salida.

Los microcontroladores integran


periféricos de procesamiento, memoria y
entrada/salida (E/S), incluidos
temporizadores, contadores y
convertidores de analógico a digital
(ADC), en una unidad independiente
eficiente y rentable. Esquema de Microprocesador vs. Microcontrolador
Introducción: Microcontroladores
Diversas placas de desarrollo

Arduino UNO ESP32 STM Nucleo MSP-ESP430G2ET (MSP430)

Arduino MEGA Raspberry Pi PIC18 Explorer RAKWisblock (STM)


Introducción a Arduino
¿Qué es Arduino?

● Arduino es una plataforma electrónica de código abierto basada en


hardware y software fáciles de usar.
● Es una plataforma de prototipado electrónico de código abierto que
consta de hardware y software fácil de usar.
● El hardware de Arduino generalmente se refiere a la Breakout
Board o conocido también como placa de desarrollo, que es una
PCB que incluye un microcontrolador y una serie de pines de
entrada/salida que permiten a los usuarios conectar diversos
componentes electrónicos y sensores.
● El software de Arduino IDE consiste en un entorno de desarrollo
integrado que facilita la escritura, carga y ejecución de código en la
placa Arduino.
Introducción a Arduino
¿Qué es Arduino?

Arduino Uno Rev3 Microcontrolador ATMEGA328P


Introducción a Arduino
¿Qué es Arduino?

Arduino MEGA Microcontrolador ATMEGA2560


Introducción a Arduino
¿Qué es Arduino?
La página oficial de Arduino (www.arduino.cc) posee una gran cantidad de información tanto del
hardware como del software, así mismo de tutoriales y librerías para una experiencia de desarrollo
amigable.
Introducción a Arduino
Comparativa de placas
Arduino UNO R3
ATMEGA328P
El Arduino Uno R3 es una de las placas Arduino más
populares y ampliamente utilizadas
● Microcontrolador: Utiliza un microcontrolador
ATmega328P.
● Pines de entrada/salida (E/S): Dispone de 14 pines
digitales de entrada/salida, de los cuales 6 pueden ser
utilizados como salidas PWM (Modulación por Ancho de
Pulso) y 6 como entradas analógicas.
● Memoria: El ATmega328P tiene 32 KB de memoria flash Arduino Uno Rev3
(programa), 2 KB de SRAM y 1 KB de EEPROM.
● Velocidad de reloj: Opera a una velocidad de reloj de 16
MHz.
● Dimensiones: Aproximadamente 68.6 mm x 53.4 mm.
Arduino UNO R3
Pinout
Arduino MEGA
ATMEGA2560
● Microcontrolador: ATmega2560
● Velocidad de reloj: 16 MHz
● Voltaje de operación: 5 V
● Voltaje de entrada (límites): 6-20 V
● Pines digitales I/O: 54 (15 con salida PWM)
● Entradas analógicas: 16
● Memoria Flash: 256 KB (8 KB usados por el bootloader)
● SRAM: 8 KB
Arduino MEGA
● EEPROM: 4 KB
● Interfaces de comunicación: 4 puertos UART, SPI, I2C
● Interrupciones externas: 6 pines
● Conversor A/D: de 10 bits
Arduino MEGA
Pinout
Arduino MEGA
Pinout
IDE de Arduino
Arduino IDE
El IDE de Arduino es una aplicación de software que
permite escribir, compilar y cargar programas en
placas Arduino.
Proporciona una interfaz simple para programar
microcontroladores, ofreciendo herramientas como un
editor de texto para el código, un compilador para
traducir el código a instrucciones que el
microcontrolador pueda ejecutar, y una interfaz para
cargar ese código a través de un puerto USB.
El IDE de Arduino soporta varios lenguajes de
programación, aunque comúnmente se utiliza un Captura de IDE de Arduino
subconjunto de C/C++.
IDE de Arduino
Instalación
Dirigirse al sitio web oficial de Arduino (https://www.arduino.cc/en/software) y descarga el IDE de
Arduino. Podrás ver las múltiples versiones disponibles para Windows, Linux y Mac OS X.
IDE de Arduino
Instalación
Aceptar todos los permisos.
IDE de Arduino
Guía de la interfaz
Guía de la interfaz Arduino IDE
1. Menú de opciones del IDE
Puede configurar algunos parámetros generales
como el puerto serie, la información de la placa,
las bibliotecas, los parámetros de edición, etc.
1. Botones de operación
Los botones de operación tienen cinco
operaciones:
● Verificar/Compilar el código fuente;
● Cargar el código compilado;
● Abrir una nueva ventana del IDE Arduino
● o una aplicación existente;
● Guardar la aplicación actual.
IDE de Arduino
Guía de la interfaz
3. Área de código
Puedes editar el código fuente, que
será compilado y cargado en
WisBlock más tarde en esta área.

4. Área de estado

5. Área de Mensaje de Salida


Puedes ver el mensaje de salida en
esta área, ya sea información de fallo
o de éxito.
IDE de Arduino
Guía de la interfaz
IDE de Arduino
Conexión con la placa
1. Conecta el Arduino a tu
computadora: Utiliza el cable
USB para conectar tu Arduino
a uno de los puertos USB
disponibles en tu computadora.
Asegúrate de que la conexión
esté segura y estable.
IDE de Arduino
Conexión con la placa
2. Abre el software de Arduino: Una vez que hayas conectado tu Arduino, abre el software
de Arduino en tu computadora. El software debería detectar automáticamente la conexión y
seleccionar el puerto COM correcto.

3. Configura el tipo de placa: En el menú «Herramientas» del software de Arduino,


selecciona el tipo de placa que estás utilizando. Por ejemplo, si estás utilizando un Arduino
Uno, elige «Arduino/Genuino Uno» en la opción «Placa».

4. Selecciona el puerto COM: En el mismo menú «Herramientas», selecciona el puerto COM


al que está conectado tu Arduino. Si no estás seguro de cuál es el puerto correcto, puedes
verificarlo en el Administrador de dispositivos de tu computadora.
IDE de Arduino
Estructura
La estructura básica del código en Arduino IDE consta
de dos partes principales:
● setup(): Función que se ejecuta una sola vez al
iniciar el programa. Se usa para inicializar
configuraciones, como definir pines o iniciar
comunicaciones.
● loop(): Función que se ejecuta de manera continua
después de setup(). Aquí se coloca el código que
debe ejecutarse repetidamente, como la lectura de
sensores o el control de actuadores.
Ambas funciones son obligatorias para que el
programa funcione en Arduino. Estructura
4. Introducción a código C para Arduino

En la página de arduino, podemos encontrar diferentes referencias


de códigos y programas pre-hechos para el desarrollo de diferentes
soluciones. (https://docs.arduino.cc/programming/)
4. Introducción a código C para Arduino

Lenguaje para Arduino

El lenguaje de programación de Arduino es C++. No es un C++ puro sino


que es una adaptación que proveniente de avr-libc que provee de una
librería de C de alta calidad para usar con GCC (compilador de C y C++)
en los microcontroladores AVR de Atmel y muchas utilidades
específicas para las MCU AVR de Atmel como avrdude.

Aunque se hable de que hay un lenguaje propio de programación de


Arduino, no es cierto, la programación se hace en C++ pero Arduino
ofrece una api o core que facilitan la programación de los pines de
entrada y salida y de los puertos de comunicación, así como otras
librerías para operaciones específicas.
4. Introducción a código C para Arduino

Lenguaje para Arduino


5. Configuración y modos de uso de pines

a. Configuración Digital (GPIO)

GPIO significa entradas y salidas de propósito general (en inglés General Purpose Input
Output). Estos pines se pueden definir dentro del código para dos tipos de función: lectura
y escritura.
Es necesario conocer la siguiente sintaxis.

● pinMode()
Configura el pin especificado para que se comporte como entrada o como salida.
5. Configuración y modos de uso de pines

a. Configuración Digital (GPIO)

● pinMode()
Configura el pin especificado para que se comporte como entrada o como salida.
5. Configuración y modos de uso de pines

a. Configuración Digital (GPIO)

● digitalWrite()
Escribe un valor ALTO o BAJO en un pin digital.

Si el pin se ha configurado como OUTPUT con pinMode(), su voltaje se ajustará al valor


correspondiente: 5V (o 3,3V en placas de 3,3V) para HIGH, 0V (Tierra) para LOW.

Si el pin está configurado como INPUT, digitalWrite() activará (HIGH) o desactivará


(LOW) el pullup interno del pin de entrada. Se recomienda ajustar pinMode() a
INPUT_PULLUP para habilitar la resistencia interna de pull-up. Vea el tutorial Pines
Digitales para más información.
5. Configuración y modos de uso de pines

a. Configuración Digital (GPIO)

● digitalWrite()
Escribe un valor ALTO o BAJO en un pin digital.
5. Configuración y modos de uso de pines

a. Configuración Digital (GPIO)

● digitalRead()
Lee el valor de un pin digital especificado, ya sea HIGH o LOW.
5. Configuración y modos de uso de pines

b. Configuración Analógica

Permite realizar una lectura de un valor analógico de voltaje en los pines del tipo Analog. El
valor de voltaje medido no debe superar los 3.3V o 5V dependiendo de la placa.
Emplea un ADC interno en la placa, cuya resolución depende del modelo.

● analogRead()
Lee el valor del pin analógico especificado. Las placas Arduino contienen un
convertidor analógico-digital multicanal de 10 bits. Esto significa que mapeará los
voltajes de entrada entre 0 y el voltaje de funcionamiento (5V o 3.3V) en valores
enteros entre 0 y 1023.
5. Configuración y modos de uso de pines

b. Configuración Analógica

Permite realizar una lectura de un valor analógico de voltaje en los pines del tipo Analog. El
valor de voltaje medido no debe superar los 3.3V o 5V dependiendo de la placa.
Emplea un ADC interno en la placa, cuya resolución depende del modelo.

● analogRead()
Lee el valor del pin analógico especificado. Las placas Arduino contienen un
convertidor analógico-digital multicanal de 10 bits. Esto significa que mapeará los
voltajes de entrada entre 0 y el voltaje de funcionamiento (5V o 3.3V) en valores
enteros entre 0 y 1023.
5. Configuración y modos de uso de pines

b. Configuración Analógica

● analogRead()
5. Configuración y modos de uso de pines

b. Configuración Analógica

● analogRead()
5. Configuración y modos de uso de pines

b. Configuración Analógica

● analogRead()
5. Configuración y modos de uso de pines

c. Comunicación Serial

Se utiliza para la comunicación entre la placa Arduino y un ordenador u otros


dispositivos (como algunos sensores). Todas las placas Arduino tienen al menos un
puerto serie (también conocido como UART o USART), y algunas tienen varios.
Puede utilizar el monitor serie incorporado en el entorno Arduino para comunicarse con
una placa Arduino.

La comunicación serie en los pines TX/RX utiliza niveles lógicos TTL (5V o 3.3V
dependiendo de la placa). No conecte estos pines directamente a un puerto serie
RS232; funcionan a +/- 12V y pueden dañar su placa Arduino.
5. Configuración y modos de uso de pines

c. Comunicación Serial
6. Librerías

Las librerías son paquetes de código hechos por terceros que usamos en nuestro
sketch. Esto nos facilita mucho la programación y hace que nuestro programa sea
más sencillo de hacer y de entender.
6. Librerías

La instalación de librerías se puede hacer directamente desde el gestor de librerías o


manualmente.

Así mismo ya existen librerías de diversos sensores en Arduino las cuales se pueden
descargar en el Administrador de Librerías.
6. Librerías

Por ejemplo para el sensor DHT22:

Buscamos el nombre del sensor en la barra de búsqueda:


6. Librerías

Por ejemplo para el sensor DHT22:

Instalamos la librería, (instalar con todas las dependencias):


6. Librerías

Por ejemplo para el sensor DHT22:

Luego podemos buscar un ejemplo para el sensor instalado (si la


librería lo incluye)
6. Librerías

Por ejemplo para el sensor DHT22:

También podemos buscar las librerías instaladas con el paquete


descargado (pestaña Sketch).

#include <DHT.h>
#include <DHT_U.h>
Guía básica de Arduino.

https://www.calameo.com/read/001898612aa3ebf485e6e
3.
Ejemplos de
Programación
Arduino
Ejemplo con LED
Ejemplo de encendido de LED con Arduino.
Ejemplo con LED
Ejemplo de encendido de LED con Arduino.
Ejemplo con LED
Ejemplo de encendido de LED con Arduino.

void setup()
{
pinMode(4, OUTPUT);
}

void loop()
{
digitalWrite(4, HIGH);
delay(1000); // Wait for 1000
millisecond(s)
digitalWrite(4, LOW);
delay(1000); // Wait for 1000
millisecond(s)
}
Ejemplo con LED
Ejemplo de encendido de LED con Arduino.
Ejemplo con LED
Ejemplo de encendido de LED con Arduino.
Ejemplo con LED + Botón
Uso de botón con Arduino.
// C++ code
//
int LEDAZUL = 4;
int button = 5;
void setup()
{
pinMode(LEDAZUL, OUTPUT);
pinMode(button, INPUT);
digitalWrite(LEDAZUL, 0);
}

void loop()
{
if(digitalRead(button)==1)
digitalWrite(LEDAZUL, 1);
else
digitalWrite(LEDAZUL, 0);
delay(100);
}
Ejemplos

Uso de teclado matricial con Arduino.


Ejemplos

Uso de teclado matricial con Arduino.


#include <Keypad.h>
const byte filas = 4;
const byte columnas = 4;
byte pinesFilas[] = {9,8,7,6};
byte pinesColumnas[] = {5,4,3,2};
char teclas[4][4] = {{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}};
Keypad teclado1 = Keypad( makeKeymap(teclas), pinesFilas,
pinesColumnas, filas, columnas);
void setup() {
Serial.begin(9600);
Serial.println("Teclado 4x4 con Biblioteca Keypad");
Serial.println();
}
void loop() {
//Verifica si alguna tecla fue presionada
char tecla_presionada = teclado1.getKey();
//Monitor Serial
if (tecla_presionada)
{
Serial.print("Tecla: ");
Serial.println(tecla_presionada);
}
GRACIAS
Internet de las Cosas 2025-I

También podría gustarte