Está en la página 1de 35

PROCEDIMIENTOS TÉCNICOS 3

PROFESORES: Colina Carla, De la Fuente Luis.


CARGA HORARIA: 3hs semanales.
MODALIDAD: Anual.
SÍNTESIS INTRODUCTORIA
En este módulo, los alumnos realizarán actividades que les permitan acceder a
conocimientos y habilidades en el tratamiento con nuevos materiales que sean de uso
habitual en la elaboración de productos tecnológicos.
EXPECTATIVAS DE LOGRO
• Uso pertinente y efectivo de técnicas, materiales y herramientas según las actividades
propuestas.
• Revisión de las relaciones de trabajo al interior del equipo y de la pertinencia en la
distribución de las responsabilidades.
• Práctica de normas de seguridad e higiene como medio de prevención de riesgos,
personales y ambientales.

CONTENIDOS
Los recursos materiales:
La incorporación de nuevos materiales a fines del Siglo XX y principio del siglo XXI: La
expansión de los nuevos materiales. Propiedades físicas, químicas, biológicas. Tipos de
materiales usados actualmente según los procesos relevantes (ejemplo Cerámicos.
Metálicos. Compuestos orgánicos, Polímeros naturales y artificiales, vidrios, sustratos.
Materiales químicos, Hidrocarburos). Relación entre las propiedades de los materiales y el
campo de aplicación: Selección de materiales para aplicaciones específicas. Tratamiento y
riesgos en el manipuleo de materiales.
Las herramientas y las máquinas:
Conocimiento y uso de las máquinas y herramientas automatizadas. Las máquinas y
herramientas utilizadas en distintas tareas de mantenimientos y en los procesos de
producción.
Las normas de seguridad e higiene:
Peligros generados por las máquinas y herramientas: Peligro mecánico, eléctrico, térmico,
etc. Peligros por mal diseño ergonómico. Prevención de Incendios: Clasificación de los
fuegos. Agentes extintores. Causas de origen de incendios. Fuentes de calor. Lucha contra
el fuego. Medios de escape. Sectorización. Evacuación de humos. Señalización de
elementos de protección contra incendios. Planes de evacuación.
La organización en el trabajo:
Acuerdos en la distribución de responsabilidades y tareas en el grupo de trabajo.
Planificación de las diferentes operaciones de la producción: búsqueda, discriminación y
selección de la información útil, visita a lugares de producción relacionada con el proyecto,
observando el proceso de transformación de los materiales.
Integración de contenidos mediante la implementación de proyectos con Arduino:
El hardware y software de Arduino. Visión general, alimentación, memoria, entrada y salida,
comunicación. Programación. Estructura de un programa en Arduino, variables y tipos de
datos. Constantes. Operadores aritméticos y lógicos. Control de flujo. E/S digital y analógica.
Funciones de tiempo. Comunicación serie.
OBJETIVOS
• Que el alumno se familiarice con el entorno de programación de Arduino.
• Que el alumno comprenda la declaración de variables tipo lista de valores.
• Adquirir el concepto de funciones en programación, cómo declararlas y cómo realizar
las llamadas a las mismas.
• Construir un prototipo mediante el uso de un Arduino UNO mediante el cual se
controlará el encendido y apagado de 6 LEDs a modo de cruce de semáforos.
HABILIDADES Y/O DESTREZAS DESARROLLADAS
Al finalizar el presente trabajo el alumno logrará desarrollar capacidades que lo lleven a
reconocer la estructura de los programas en Arduino, así como la manipulación de variables
y el manejo de funciones en programación.
ACTIVIDADES

• Diseño de circuitos mediante software específico.


• Trabajos prácticos y de investigación, grupales e individuales.
• Diseño e implementación de circuitos con Arduino.
• Programación mediante la interfaz de Arduino.
• Proyectos electrónicos con Arduino.

LISTADO DE HERRAMIENTAS DE SOFTWARE DE USO ESPECÍFICO


• Software de Arduino
BIBLIOGRAFÍA DEL DOCENTE
• Brian, W. (2008). Arduino Programming Handbook: A Beginner's Reference. Licencia
Creative Commons.
BIBLIOGRAFÍA DEL ALUMNO
• Apuntes desarrollados por el docente para el presente trabajo práctico.
CRITERIOS DE EVALUACIÓN
Para la aprobación del presente trabajo el alumno deberá presentar la demostración del
funcionamiento con el software de simulación (en caso de que el modelo pueda ser
simulado), el prototipo funcionando.
LISTA ANUAL DE MATERIALES

• 1 Tester
• 1 Arduino UNO (opcional)
• 1 sensor de presencia PIR (opcional)
• 1 Buzzer
• 1 Display LCD 16x2 + módulo de comunicación I2C (opcional)
• 1 sensor de temperatura DTH11
• 10 cables dupont macho - hembra 10cm
• 10 cables dupont macho - macho 10cm
• 10 LED 5mm
• 5 pulsadores
• 2 LDR
• 2 potenciómetros 5 kΩ
• 10 resistencias 330 Ω
• 10 resistencias 220 Ω
• 10 resistencias 470 Ω
• 10 resistencias 1 kΩ
INTRODUCCION AL MICROCONTROLADOR
Un microcontrolador es un circuito integrado que en su interior contiene una unidad central
de procesamiento (CPU), unidades de memoria (RAM y ROM), puertos de entrada y salida
y periféricos.
Estas partes están interconectadas dentro del microcontrolador, y en conjunto forman lo
que se le conoce como microcomputadora. ya que contiene toda la estructura de un
Microcomputador
Es un dispositivo programable que puede ejecutar un sinnúmero de tareas y procesos.
Sus cuatro componentes principales son:
Memoria ROM, EEPROM o EPROM: es la memoria donde se almacena el programa.
Memoria RAM o SRAM: es la
memoria donde se almacenan los
datos.
Líneas de Entrada / Salida (I / O):
también llamada puertos, se utilizan
para conectar elementos externos al
microcontrolador.
CPU: controla y ejecuta todas las
instrucciones que conforman el
programa.

Toda microcomputadora requiere de un programa para que realice una función específica.
Este se almacena normalmente en la memoria ROM. No está de más mencionar que sin un
programa, los microcontroladores carecen de utilidad.

El propósito fundamental de los microcontroladores es el de leer y ejecutar los programas


que el usuario le escribe, es por esto que la programación es una actividad básica e
indispensable cuando se diseñan circuitos y sistemas que los incluyan.
El carácter programable de los microcontroladores simplifica el diseño de circuitos
electrónicos. Permiten modularidad y flexibilidad, ya que un mismo circuito se puede utilizar
para que realice diferentes funciones con solo cambiar el programa del microcontrolador.
Las aplicaciones de los microcontroladores son vastas, se puede decir que solo están
limitadas por la imaginación del usuario. Es común encontrar microcontroladores en campos
como la robótica y el automatismo, en la industria del entretenimiento, en las
telecomunicaciones, en la instrumentación, en el hogar, en la industria automotriz, etc.
Existen diferentes familias de microcontroladores: Intel, Motorola, Microchip, entre otras.
A continuación se exponen, a modo de ejemplo, una serie de programas donde se muestra
el uso del Entorno de Desarrollo Integrado (IDE). En forma creciente en cuanto al nivel de
complejidad.
Descripción de la placa Arduino UNO

Estructura básica de un programa


La estructura básica de programación de Arduino es bastante simple y divide la ejecución
en dos partes: setup y loop.
Setup(): constituye la preparación del programa. En la función Setup() se incluye la
declaración de variables y se trata de la primera función que se ejecuta en el programa. Esta
función se ejecuta una única vez y es empleada para configurar el pinMode (p. ej. Si un
determinado pin digital es de entrada o salida) e inicializar la comunicación serie.
loop(): es la ejecución. La función loop() incluye el código a ser ejecutado continuamente
(leyendo las entradas de la placa, salidas, etc.).

Entradas y salidas digitales y analógicas


Funciones digitales:
• Función pinMode: Función usada en la función setup() para configurar un pin dado
para comportarse como INPUT u OUTPUT.
Ej: pinMode(3, OUTPUT);
configura el pin número 3 como de salida. Los pines de Arduino funcionan por defecto
como entradas, de forma que no necesitan declararse explícitamente como entradas
empleando pinMode().

• Función digitalRead: Lee el valor desde un pin digital de entrada específico.


Devuelve un valor HIGH o LOW. El pin puede ser especificado con una variable o una
constante entera (0-13).
Ej: valor=digitalRead(2);
• Función digitalWrite: Introduce un nivel alto (HIGH) o bajo (LOW) en el pin digital de
salida especificado. De nuevo, el pin puede ser especificado con una variable o una
constante entera del 0-13.
Ej: digitalWrite(10, HIGH);
• Función analogRead: Lee el valor desde el pin analógico especificado con una
resolución de 10 bits. Esta función sólo funciona en los pines analógicos (A0-A5). El
valor resultante es un entero dentro del intervalo 0 a 1023. Los pines analógicos de
entrada, a diferencia de los digitales, no necesitan declararse previamente como
INPUT.
Ej: valor=analogRead(A0);
• Función analogWrite: Escribe un valor pseudo-analógico usando modulación por
ancho de pulso (PWM) en un pin de salida marcado como PWM. En las placas
Arduino UNO esta función está activa para los pines 3, 5, 6, 9, 10, 11.
Ej: analogWrite(A0, valor); // escribe 'valor' en el 'pin' analógico.

Puede especificarse un valor entero comprendido entre 0 y 255. Un valor 0 genera 0


V en el pin especificado y 255 genera 5 V. Para valores de 0 a 255, el pin alterna
rápidamente entre 0V y 5V, cuanto mayor sea el valor, más a menudo el pin se
encuentra en HIGH (5 V). Por ejemplo, un valor de 64 será 0 V tres cuartas partes del
tiempo y 5 V una cuarta parte. Un valor de 128 será 0 V la mitad del tiempo y 5 V la
otra mitad. Un valor de 192 será 0 V una cuarta parte del tiempo y 5 V tres cuartas
partes.
Funciones de tiempo y matemáticas
• delay(ms): Realiza una pausa en el programa la cantidad de tiempo en milisegundos
especificada.
• millis(): Devuelve la cantidad de milisegundos que lleva la placa Arduino ejecutando
el programa actual como un valor long unsigned int. Después de 9 horas el contador
vuelve a 0.
• min(x,y) - max(x,y): Devuelve el mínimo y el máximo respectivamente de entre sus
parámetros.
Funciones de generación aleatoria
• randomSeed(seed): Especifica un valor o semilla como el punto de inicio para la
función random(). Este parámetro debe ser realmente aleatorio y para ello puede
emplearse la función millis() o incluso analogRead() para leer ruido eléctrico desde
una entrada analógica.
• random(max) - random(min, max): Esta función devuelve un valor aleatorio entrenel
rango especificado.
Puerto serie - Introducción a UART en Arduino
UART, que significa Recepción y Transmisión Asincrónica Universal, es un protocolo de
comunicación en serie simple que permite al host (Arduino) comunicarse con dispositivos en
serie.
UART admite transmisión de datos bidireccional, asíncrona y en serie. Utiliza 2 líneas de
datos para comunicarse entre sí que son: TX (Pin 1) y RX (Pin 0).
• TX: Se utiliza para transmitir
• RX: se utiliza para recibir
Están conectados entre dos dispositivos (por ejemplo, USB en Arduino y computadora)
UART se encuentra en todo tipo de placas Arduino, lo que permite que Arduino se comunique
con una computadora gracias a su convertidor USB a serie integrado.
Si su programa está escrito en un sistema operativo Windows, Mac o Linux y desea usarlo
con su Arduino, simplemente conéctelos a través de su puerto USB como si fuera un puerto
serie.
• Serial.begin(rate): Abre un puerto serie y
especifica la velocidad de transmisión. La velocidad típica
para comunicación con el ordenador es de 9600 baudios,
aunque se pueden soportar otras velocidades.
• Serial.println(data): Imprime datos al puerto serie
seguido por un retorno de línea automático. Este comando
tiene la misma forma que Serial.print() pero este último sin
el salto de línea al final. Este comando puede emplearse
para realizar la depuración de programas. Para ello puede
mandar mensajes de depuración y valores de variables
por el puerto serie. Posteriormente, desde el entorno de
programación de Arduino, activando el "Serial Monitor" se
puede observar el contenido del puerto serie, y, por lo
tanto, los mensajes de depuración. Para observar
correctamente el contenido del puerto serie se debe tener
en cuenta que el "Serial Monitor" y el puerto serie han de
estar configurados a la misma velocidad (Para configurar la velocidad del puerto serie
se hará con el comando Serial.begin(rate)).
• Serial.read(): Lee o captura un byte (un caracter) desde el puerto serie. Devuelve -1
si no hay ningún carácter en el puerto serie.
• Serial.parseInt(): devuelve el primer número entero válido del buffer serie. Los
caracteres que no sean dígitos (o el signo menos) son ignorados. parseInt() termina
cuando encuentra el primer carácter que no corresponda a un número entero.
• Serial.parseFloat(): devuelve el primer número real valido del buffer serie. Los
caracteres que no sean dígitos (o el signo menos) son ignorados. parseFloat() termina
cuando encuentra el primer carácter que no sea un número real.
• Serial.available(): Devuelve el número de caracteres disponibles para leer desde el
puerto serie.
PRINCIPIO DE FUNCIONAMIENTO DEL PUENTE H

El puente H es un circuito electrónico que se utiliza para controlar el movimiento de motores,


en particular motores de corriente continua (DC). Su nombre se debe a la forma típica del
circuito, que se asemeja a la letra «H». El principal objetivo del puente H es permitir que un
motor gire en ambas direcciones: hacia adelante y hacia atrás. Para lograr esto, se utilizan
conmutadores o interruptores, que pueden ser mecánicos (como relés) o electrónicos (como
transistores).

La operación del puente H se basa en cómo se activan y desactivan los interruptores. En


función de qué interruptores estén cerrados (activados) o abiertos (desactivados), el motor
girará en una dirección, se detendrá o girará en la dirección opuesta.
• Giro hacia adelante: Para hacer girar el motor hacia adelante, se activan los
interruptores diagonales (por ejemplo, el superior izquierdo y el inferior derecho)
mientras que los otros dos permanecen desactivados. Esto hace que la corriente fluya
en una dirección específica a través del motor.
• Giro hacia atrás: Para invertir la dirección del motor, se activan los interruptores
opuestos (por ejemplo, el superior derecho y el inferior izquierdo). De esta manera, la
corriente fluye en sentido opuesto al anterior, haciendo que el motor gire en la
dirección contraria.
• Detener el motor: Al desactivar los cuatro interruptores, se corta el flujo de corriente
hacia el motor, deteniéndolo.

Puente H – modulo L298N


Este puente H es un módulo integrado para microcontroladores, en la imagen se ven los
pines de conexiones.
Descripción:
El puente H doble L298N permite controlar la
dirección y velocidad de dos motores. Este
módulo trabaja desde 3V hasta 35V, y con
una intensidad de hasta 2A, consume 3v así
que los motores reciben 3 voltios menos de
el voltaje ingresado, incluye un regulador que
nos puede dar una salida de 5v, si lo
alimentamos entre 5 a 12v. Es un módulo que
se utiliza mucho en proyectos de robótica, por
su facilidad de uso y su reducido precio.
Funcionamiento de los jumpers
El voltaje de entrada puede ser desde 3v hasta 35v, a un lado de la entrada de voltaje
contamos con el GND. La tercera es la salida lógica de 5v la cual se utiliza de la siguiente
manera:
• Si el jumper se encuentra puesto se activará el regulador de tensión y tendremos una
salida de 5V, que podremos usar para darle potencia a otro componente.
• Si quitamos el jumper desactivaremos el regulador y necesitaríamos alimentar el
módulo, Tendríamos que ingresar 5v por la salida lógica para que el módulo funcione.
• ¡PRECAUCIÓN! Si ingresamos 5v por la parte lógica con el jumper puesto podríamos
causar daño a la tarjeta.
• El regulador solo nos funciona si ingresamos un voltaje desde 5v hasta 12v,
• Si queremos ingresar un voltaje mayor tendríamos que quitar el jumper y alimentar el
módulo con 5v con una fuente externa.
Las salidas de los motores 1 y 2 nos dan energía para mover los motores. Hay que tomar en
cuenta las polaridades de los motores para que queden girando hacia adelante. En caso de
que un motor esté girando al lado contrario solo es necesario invertir los cables.
Los dos pines IN1 e IN2 sirven para controlar el sentido de giro en el motor 1, y los dos pines
IN3 e IN4 el sentido de giro del motor 2.
Funcionan de la siguiente manera:
Si IN1 está en HIGH y el IN2 en LOW, el motor 1 gira en un sentido, y si IN1 está en LOW e
IN2 está en HIGH lo hace en el sentido contrario.
Sería lo mismo con los pines IN3 e IN4 para el motor 2.
Para controlar la velocidad a la que van a girar los motores tenemos que retirar los jumpers
en ENA y ENB. Los tenemos que conectar a dos salidas PWM de nuestro Arduino con el
cual enviaremos una señal con un valor entre 0 y 255 para que controle la velocidad de giro.
Si no quitamos los jumpers, los motores estarán girando a la misma velocidad siempre.
MÓDULO BLUETOOTH HC-05
El módulo Bluetooth HC-05 viene configurado de fábrica como
"Esclavo" (slave), pero se puede cambiar para que trabaje como
"maestro" (master), además al igual que el HC-06, se puede
cambiar el nombre, código de vinculación, velocidad y otros
parámetros más.
Modulo bluetooth hc-05 como esclavo:
Cuando está configurado de esta forma, espera que un dispositivo
bluetooth maestro se conecte a este, generalmente se utiliza
cuando se necesita comunicarse con una PC o Celular, pues estos se comportan como
dispositivos maestros.
Modulo bluetooth hc-05 como Maestro:
En este modo, EL HC-05 es el que inicia la conexión. Un dispositivo maestro solo se puede
conectarse con un dispositivo esclavo. Generalmente se utiliza este modo para comunicarse
entre módulos bluetooth. Pero es necesario antes especificar con que dispositivo se tiene
que comunicar.
El módulo HC-05 viene por defecto configurado de la siguiente forma:
• Modo o role: Esclavo
• Nombre por defeco: HC-05
• Código de emparejamiento por defecto: 1234
• La velocidad por defecto (baud rate): 9600
EL Módulo HC-05 tiene 4 estados los cuales es importante conocer:

Estado Desconectado:
• Entra a este estado tan pronto alimentas el módulo, y cuando no se ha establecido
una conexión bluetooth con ningún otro dispositivo.
• EL LED del módulo en este estado parpadea rápidamente.
• En este estado no puede interpretar los comandos AT.
Estado Conectado o de comunicación:
• Entra a este estado cuando se establece una conexión con otro dispositivo bluetooth.
• El LED hace un doble parpadeo.
• Todos los datos que se ingresen al HC-05 por el Pin RX se trasmiten por bluetooth al
dispositivo conectado, y los datos recibidos se devuelven por el pin TX. La
comunicación es transparente.
Modo AT 1:
• Para entrar a este estado después de conectar y alimentar el módulo es necesario
presionar el botón del HC-05.
• En este estado, podemos enviar comandos AT, pero a la misma velocidad con el que
está configurado.
• EL LED del módulo en este estado parpadea rápidamente igual que en el estado
desconectado.
Modo AT 2:
• Para entrar a este estado es necesario tener presionado el botón al momento de
alimentar el módulo, es decir el módulo debe encender con el botón presionado,
después de haber encendido se puede soltar y permanecerá en este estado.
• En este estado, para enviar comandos AT es necesario hacerlo a la velocidad de
38400 baudios, esto es muy útil cuando nos olvidamos la velocidad con la que hemos
dejado configurado nuestro modulo.
• EL LED del módulo en este estado parpadea lentamente.
Conexión entre la PC con el Módulo HC-05T
Es necesario compilar y cargar el código preparado,
que pueda leer los datos enviados de la PC a través
del IDE y se lo envíe serialmente hacia los pines
RXD y TXD del módulo HC-05.

Las conexiones serían las siguientes


#include <SoftwareSerial.h> // Incluimos la librería SoftwareSerial
SoftwareSerial BT(10,11); // Definimos los pines RX y TX del Arduino
conectados al Bluetooth
void setup(){
BT.begin(9600); // Inicializamos el puerto serie BT (Para Modo AT 2)
Serial.begin(9600); // Inicializamos el puerto serie
}
void loop(){
if(BT.available()){//Si llega un dato por el puerto BT se envía al
monitor serial
Serial.write(BT.read());
}
if(Serial.available()){//Si llega un dato por el monitor serial se
envía al puerto BT
BT.write(Serial.read());
}
}

Configuración del Módulo HC-05


Para entrar al modo AT, antes de alimentar o encender el módulo es necesario presionar su
botón, mantener presionado y alimentar el módulo, después que enciende recién podemos
soltar el botón. Si el LED Parpadea lentamente es porque ya está en Modo AT.
• Abrir el Monitor serial del IDE de Arduino.
• En la parte inferior debemos escoger “Ambos NL & CR” y la velocidad (la velocidad
para comunicarse en el MODO AT)
Test de comunicación
Lo primero es comprobar si el bluetooth responde a los comandos AT
• Enviar: AT
• Recibe: OK
Si recibimos como respuesta un OK entonces podemos continuar.
• Cambiar nombre:
Enviar: AT+NAME=<Nombre>
Ej: AT+NAME=Robot
Respuesta: OK
• Cambiar Código de Vinculación:
Enviar: AT+PSWD=<"Pin">
Ej: AT+PSWD="2560"
Respuesta: OK
• Configurar la velocidad de comunicación:
Enviar: AT+UART=<Baud> ,< StopBit>,< Parity>
Respuesta: OK
Donde:
• < Baud > equivale a una velocidad, los valores pueden ser: 4800, 9600, 19200, 38400,
57600, 115200, 23400, 460800, 921600 o 1382400.
• < StopBit> es el Bit de parada, puede ser 0 o 1, para 1 bit o 2 bits de parada
respectivamente, Para aplicaciones comunes se trabaja con 1 bit por lo que este
parámetro normalmente se lo deja en 0.
• < Parity> Es la paridad, puede ser 0 (Sin Paridad), 1 (Paridad impar) o 2 (Paridad par).
Para aplicaciones comunes no se usa paridad, por lo que se recomienda dejar este
parámetro en 0.
Ejemplo:
• Enviar: AT+UART=9600,0,0
• Respuesta: OK
Se puede saber cuál es la configuración actual, para eso hay que enviar el siguiente
comando: AT+UART?

EL DISPLAY DE 7 SEGMENTOS
El display de 7 segmentos es un dispositivo electrónico que se utiliza para representar
visualmente números y algunos caracteres. Este display es muy popular debido a su gran
efectividad y simplicidad al momento de utilizarlo.

Partes de un display de 7 segmentos


Se le conoce como 7 segmentos porque cuenta con siete
diodos led principales y uno extra para representar un
punto. También cuenta con una carcasa para cubrirlos y
10 terminales: 2 son de alimentación (2 de Vcd o 2 de
Gnd), 1 es para visualizar un punto y 7 son para
representar cada uno de los números según la
combinación que se le ponga, estos están
representados por una letra del abecedario desde la
“A” hasta la letra “G”.

¿Cómo funciona un display?


Para poder representar los números o
caracteres con este dispositivo solo basta con
saber la configuración de cada una de sus leds
y combinarlos.
Ejemplos:
Para representar el número 3 debemos encender los leds A, B, G, C y D, para representar
el número 6 tenemos que combinar los leds A, F, E, D, C y G.

Tipos de display de 7 segmentos


Al ser un dispositivo muy simple no existe
mucha variedad, solo podemos encontrar de:
• ánodo común
• cátodo común
• Doble display

Ánodo común

Se llama así porque todos los leds están


unidos en su terminal positiva (ánodo), para
encenderlos tenemos que poner tierra en la
terminal de la letra que se desee.

Cátodo común
Este display es el opuesto del ánodo común ya
que los leds están unidos en la terminal negativa
(cátodo). Para encender los leds tenemos que
poner voltaje en las terminales de las letras.

Display múltiple
Dentro de este tipo podemos encontrar de
ánodo o cátodo común, la única diferencia
es que son 2, 4 y hasta 6 displays unidos.
Estos son ideales para cuando se
necesitan representar cifras de más de un
dígito.
DRIVERS ÚTILES PARA TRABAJAR CON DISPLAY 7 SEGMENTOS:

Display 7 segmentos + Driver MAX7219

El MAX7219 Es un circuito integrado (CI) capaz de controlar hasta 8 displays cátodo común
de 7 segmentos o hasta 64 leds de manera individual.
Un diagrama simplificado de su conexión lo podemos encontrar en su hoja de datos:

Podemos ver como utilizando solamente 3 puertos de nuestro microcontrolador (MOSI, I/O,
SCK), en nuestro caso Arduino podemos controlar de manera independiente hasta 8 dígitos.

Así como vimos en UART, estamos frente al uso de un protocolo de comunicación serie
denominado SPI.

El estándar SPI (Synchronous Peripheral Interface) es utilizado para la comunicación serial


entre dispositivos.
Fue inicialmente creado por Motorola y adoptado posteriormente por diferentes fabricantes,
como Microchip y Atmel. Se trata de un enlace de datos en serie, síncrono, y que opera en
modo full dúplex, es decir, las señales de datos viajan en ambas direcciones en forma
simultánea.
MOSI significa “Master Output Slave Input”, quiere decir que nuestro Arduino será el maestro
que mandará las indicaciones al resto de los dispositivos, en este caso el MAX7219, por otro
lado, SCK hace referencia a “Signal Clock” o señal de reloj, se trata de una señal que actúa
como director de orquesta el cual dirige e indica los tiempos para que nuestros dispositivos
estén sincronizados.
Ejercicio de aplicación:
Realizar el conexionado en protoboard y cargar el siguiente programa (previamente se
deberá instalar la librería Ledcontrol):

#include "LedControl.h"
LedControl lc = LedControl(11, 13, 10, 1); // Indicamos : 11=MOSI /
13=SCK / 10 (I/O) /Cantidad de Uc MAX719

void setup() {
lc.shutdown(0, false); // Inicializamos el MAX7219
lc.setIntensity(0, 4); // Nivel de brillo
lc.clearDisplay(0);
}

void loop() {
lc.setDigit(0, 0, 8, false); // Mostramos un 8 en el
primer digito lc.setDigit(0, 1, 9, false); // Mostramos un 9 en el
segundo digito
ACTIVIDAD DIAGNOSTICA

1) Indicar en la placa Arduino UNO donde se encuentran las siguientes partes:

• Pines digitales
• Conector USB
• Pin 5V
• Microcontrolador
• Pines analógicos
• Pines GND
• Pines digitales PWM

2) Escribir las instrucciones necesarias para imprimir por pantalla la lectura del pin
digital 2.

3) Indicar que hacen las siguientes instrucciones:

void setup(){
pinMode(4,OUTPUT);
pinMode(3,INPUT_PULLUP);
Serial.begin(9600);
}
void loop(){
if(digitalRead(3)==0){
digitalWrite(4,HIGH);
}else{
digitalWrite(4,LOW);
}
}

4) ¿Qué función cumplen las funciones void setup y void loop?

5) Escribir las instrucciones necesarias para imprimir por pantalla la lectura del pin
analógico A0.

6) ¿En qué función del tipo void se escribe toda la configuración de la placa Arduino
UNO? Explicar como lo hace
FUNCIONES
Qué es y para qué sirve una función
Una función es un conjunto de instrucciones que realizan una tarea específica. Además,
puede ser diseñada e implementada de forma independiente al resto del código.
Las funciones sirven principalmente para ordenar tu código y hacer que unas partes del
programa sean independientes de otras. Esto te facilita mucho el trabajo cuando tienes que
buscar y solucionar errores. Además, evitan repetir las mismas instrucciones de código una
y otra vez.
Sintaxis y ejemplos
En la imagen de abajo puedes ver cómo es la sintaxis de una función en Arduino y dos
ejemplos reales. Al crear una función, lo primero que tienes que escribir es el tipo de dato
que te va a devolver.
Si por ejemplo quieres crear una función que mida la distancia, podrías utilizar tanto «float»
como «double», para que te devuelva la distancia medida con decimales. En caso de que
los decimales no te interesen, podrías utilizar «int». Si no necesitas que la función te
devuelva algún dato, simplemente escribe «void». Ésto significa que no devuelve nada.
Tipo de dato nombre_funcion (parametros)
{
Instrucciones;
}
Ejemplos:

float medirDistancia (){


//instrucciones
}
void parpadearLED (int led){
//instrucciones
}

El nombre de la función puede ser cualquiera. Sin embargo, es recomendable que utilizar un
nombre que describa rápidamente lo que hace la función. Esto es una buena práctica de
programación.
Dentro de los paréntesis van los parámetros. Éstos son opcionales. Básicamente son
variables que le pasas a la función para que las utilice. Por último, dentro de los corchetes
estarán las instrucciones, es decir, lo que debe hacer la función.
Ejemplos de funciones en Arduino
En el código que tienes más abajo hay dos funciones totalmente diferentes. Una se llama
medirDistancia() y como su propio nombre indica, sirve para medir la distancia con un
sensor de ultrasonidos. La otra se llama alerta() y básicamente hace parpadear un LED tres
veces.
const int EchoPin = 5;
const int TriggerPin = 6;
const int LED = 13;
double distance = 0;
//Prototipos de las funciones
void alerta(int led);
double medirDistancia();
void setup() {
Serial.begin(9600);
pinMode(TriggerPin, OUTPUT);
pinMode(EchoPin, INPUT);
pinMode(LED, OUTPUT);
}
void loop() {
//Enviamos onda de ultrasonidos
distance = medirDistancia(); //Llama a medirDistancia
if(distance <= 15){
alerta(LED); //Llama a alerta
}
//Mostramos la distancia por el puerto serie
Serial.print("Distancia: ");
Serial.println(distance);
delay(500);
}
//Alerta: hace parpadear un led 3 veces
void alerta(int led){
digitalWrite(led, HIGH);
delay(200);
digitalWrite(led, LOW);
delay(200);
digitalWrite(led, HIGH);
delay(200);
digitalWrite(led, LOW);
delay(200);
digitalWrite(led, HIGH);
delay(200);
digitalWrite(led, LOW);
delay(200);
}
//medirDistancia: mide la distancia con un sensor de ultrasonidos
double medirDistancia(){
double distancia = 0;
double duracion = 0;
digitalWrite(TriggerPin, LOW);
delayMicroseconds(4);
digitalWrite(TriggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(TriggerPin, LOW);
//Mide el tiempo entre pulsos (microsegundos)
duracion = pulseIn(EchoPin, HIGH)/2;
//Pasamos de tiempo a distancia (cm)
distancia = duracion /29.2;
return distancia;
}

Prototipos
Antes de implementar las funciones, hay que escribir sus prototipos. Esto sirve para decirle
al programa que en algún lugar del código se encuentran las funciones y que las tenga en
cuenta.
El prototipo de una función está formado por el tipo de dato que va a devolver, el nombre y
los parámetros. Estos prototipos suelen escribirse justo debajo de donde se crean las
variables, como se puede ver en el código de ejemplo de más arriba.
Implementación
El lugar para desarrollar una función en Arduino es justo debajo de la función void loop. En
este caso, se debe escribir el tipo de dato, el nombre y los parámetros de la función. Sin
embargo, en vez de terminar con un punto y coma, se deberá abrir unos corchetes. Dentro
de dichos corchetes van las instrucciones del código que debe ejecutar la función.
Return
Si la función no es de tipo void, significa que devuelve algún dato. Para devolverlo
simplemente se debe utilizar la palabra return al final de la implementación de la función y
al lado escribir el nombre de la variable que guarda el dato que se quiere devolver.
medirDistancia() es un ejemplo de esto mismo.
Cómo llamar funciones en Arduino
Para llamar a una función se hace exactamente igual que al llamar una función ya
incorporada en el propio lenguaje de programación, como por ejemplo digitalWrite() o
delay().
En caso de que sea una función que devuelve un dato, como medirDistancia(), se debe
igualarla a una variable del mismo tipo para que almacene el dato devuelto. Si es una función
de tipo void no hace falta igualarla a nada, como es el caso de alerta().
Con el programa de ejemplo, lo que se hace es medir la distancia con la función que creada.
Comprobando si la distancia medida es menor que 15 centímetros con una sentencia If. En
caso de ser así, se llama a la función alerta() para que de aviso.
RESOLVER UTILIZANDO FUNCIONES

1) Escribir un programa y crear un circuito con un led donde:

a. Habrá una función del tipo void que encienda el led.


b. Habrá una función del void que apagará el led.
c. El llamado entre función y función será de un segundo.

2) Escribir un programa para un circuito con 10 leds donde:

a. Se ingrese un numero entre 1 y 3 el cual deberá ser validado.


b. Si el numero ingresado es 1 se encenderán los leds de forma ascendente cada
200ms y se apagarán al final.
c. Si el numero ingresado es 2 se encenderán los leds de forma descendente
cada 200ms y se apagarán al final.
d. Si el numero ingresado es 3 el cual hará que los leds se enciendan y apaguen
de forma intermitente 10 veces con un delay de 500ms.
e. Crear una función tipo void para cada una de las secuencias de los puntos b,
c y d.

3) Crear una función para el circuito del punto anterior donde la función reciba el numero
entero ingresado por el usuario y devuelva un mensaje que muestre por monitor serie
si el número es válido o no.

4) Crear un circuito con un sensor ultrasónico y un zumbador. Para que el zumbador


suene el sensor ultrasónico deberá detectar un objeto a una distancia de 30cm.

a. Crear una función que reciba la lectura del sensor y devuelva la distancia.
b. La función loop recibirá la distancia y determinará si el zumbador se enciende
o no.
LECTURA Y ESCRITURA DE DATOS EN EL MONITOR SERIE
PUNTO 1:
Circuito: conectar 10 leds desde el pin 2 hasta el 11. Los mismo deberán estar conectados
en una protoboard y deberán tener su correspondiente resistencia para protegerlos.
Programa: Se le pide al usuario que ingrese un numero entero >0 y <100, al ingresar el
número se le informara al usuario por monitor serie lo siguiente:
• Si el número es par y el comportamiento de los leds será: encienden leds de pines
pares.
• Si el número es impar y el comportamiento de los leds será: encienden leds de
pines impares.
• Si el número es primo y el comportamiento de los leds será: enciende todos los leds
por 3 segundos.
• El digito que corresponde a la decena y el digito de la unidad por separado
indicando cual es cual y el comportamiento de los leds será: parpadear 5 veces con
delay de 500ms.

PUNTO 2:
Circuito: conectar 4 leds a los pines 4,5,6 y 7. Los mismo deberán estar conectados en una
protoboard y deberán tener su correspondiente resistencia para protegerlos.
Programa: Crear un programa que le pida al usuario que ingrese el número uno o cero
teniendo en cuenta las siguientes instrucciones:

• Si se ingresa el numero uno se dará inicio a la secuencia de encendido de los leds de


forma consecutiva y ascendente. El primero se encenderá después de un segundo,
el segundo después de 750 milisegundos, el tercero después de 500 milisegundos y
por último el cuarto se encenderá después de 250 milisegundos. Se hará una pausa
de 3 segundos en los cuales los 4 leds se mantendrán encendidos y pasado el tiempo
se apagarán todos los leds al mismo tiempo.
• Si se ingresa el numero cero los leds se mantendrán apagados y mostrara por monitor
serie un mensaje que informe que los leds se mantendrán apagados.
• Tanto al inicio como mientras se espera un nuevo ingreso los leds se deben mantener
apagados.

PUNTO 3:
Circuito: conectar tres leds a los pines 4,5 y 6. Los mismo deberán estar conectados en una
protoboard y deberán tener su correspondiente resistencia para protegerlos.
Programa: Crear un programa que le pida al usuario que ingrese un primer número entre 1
y 30.
• Si ese primer número cumple con la condición, se le va a pedir al usuario que ingrese
un segundo número entre 100 y 1000.
• Si el segundo número cumple la condición entonces:
o Si el primer número que se ingresó esta entre 1 y 10 se encenderá el led del
pin 4.
o Si el primer número esta entre 11 y 20 se encenderán los leds de los pines 4 y
5.
o Si el primer número esta entre 21 y 30 se encenderán los leds de los pines 4,
5y6
o El tiempo que estarán encendidos lo indicará el segundo número ingresado por
el usuario, luego deberán ser apagados.
En el caso que el segundo número no cumpla con la condición que se pide, los leds se
encenderán de forma ascendente con un delay de 100 ms y se apagaran de forma
descendente con un delay de 100ms. Este comportamiento se repetirá tres veces.
Tanto al inicio como mientras se espera un nuevo ingreso los leds se deben mantener
apagados.
Responder: ¿Qué pasa si se ingresa un número menor a 1 o mayor a 30? ¿Por qué?

UTILIZAR EL SIGUIENTE ESQUEMA PARA LOS SIGUIENTES PUNTOS:

PUNTO 4:
Teniendo como referencia el circuito más arriba, se desea hacer un programa que permita
al usuario ingresar un numero entero:
• si el número es par se encenderán los números de pines pares
• si es impar, se encenderán los números de pines impares
• en los dos casos por 1 segundo.
• El ejercicio deberá contener un ciclo for para declarar los pines que son utilizados en
el circuito.
PUNTO 5:
Teniendo como referencia el circuito más arriba, se desea hacer un programa en el que el
usuario ingrese un numero entero y si este número esta entre:
• 0 y 24 encienda los primeros 5 leds.
• 25 y 49 encienda los últimos 5 leds.
• Si el número es mayor a 49 o menor a cero los leds se apagarán.El ejercicio deberá
contener un ciclo for para declarar los pines que son utilizados en el circuito.
PUNTO 6:
Teniendo como referencia el circuito más arriba, se desea hacer un programa que permita
al usuario ingresar un numero de pin y el tiempo en milisegundos para encender el led que
se encuentra conectado al pin indicado por el numero ingresado por el usuario.
• El led se mantendrá encendido el tiempo que fue ingresado por el usuario y luego se
volverá a apagar.
• Se deberá verificar que el número ingresado por el usuario sea un número valido.
• Si no es número valido se le mostrara por monitor serie que el número de pin que
ingreso es incorrecto y deberá volver a ingresar un nuevo número de pin.
• El ejercicio deberá contener un ciclo for para declarar los pines que son utilizados en
el circuito.
PUNTO 7:
Teniendo como referencia el circuito más arriba, se desea hacer un programa que cree una
secuencia en la que se enciendan todos los leds que se encuentran conectados en el circuito
teniendo en cuenta las siguientes pautas:
• Debe empezar por el pin de valor menor y finalizar por el pin de valor mayor, con una
demora de 500 ms entre led y led.
• Al encenderse el ultimo led se hará una pausa de 500ms y se apagaran todos los leds
durante 3 segundos.
• El programa deberá pedirle al usuario ingresar un número entero que represente la
cantidad de veces que se repetirá la secuencia de leds.
• Se deberá validar el número de veces que se va a repetir la secuencia el cual será al
menos 1 vez y máximo 10 veces.
• Si el número ingresado por el usuario no cumple con la validación se deberá volver a
pedir el número de veces a repetir la secuencia de leds.
• Para programar la secuencia de encendido de leds se deberá utilizar la estructura for.
TRABAJO PRÁCTICO N°1 – DIAGNOSTICO

Actividad N°1: Semáforo de LEDS con Arduino

Elementos a utilizar:
• Placa Arduino UNO
• Interfaz Arduino UNO
• Tester
• Protoboard
• 2 LEDs. 5mm rojo
• 2 LEDs. 5mm amarillo
• 2 LEDs. 5mm verde
• 6 resistencias de 330Ω x 1/4 W
• Cables dupont
Descripción del trabajo a desarrollar:
Se trata de un cruce de semáforos controlado por Arduino, para ello utilizaremos: En el
primer semáforo los pines 2 (led verde), 3 (led amarillo), 4 (led rojo). En el segundo semáforo
utilizaremos los pines 5 (led rojo), 6 (led amarillo) y 7 (led verde).
La secuencia de funcionamiento debe ser:
1. rojo 1 – verde 2: Encienden durante 3 segundos,
2. rojo 1 – amarillo 2: Encienden durante 500 milisegundos,
3. verde 1 – rojo 2: Encienden durante 3 segundos,
4. amarillo 1 - rojo 2: Encienden durante 500 milisegundos.
5. Se repite desde la orden 1.

Actividad N°2: Ruleta de la fortuna con Arduino


Elementos a utilizar:
• PC con el soft de Arduino
precargado.
• Tester.
• Protoboard.
• 5 LEDs. 5mm
• 1 pulsador
• 1 zumbador
• Cables dupont
Descripción del trabajo a desarrollar:
Se trata de cinco leds que se van encendiendo y apagando formando una secuencia, el
jugador debe dar al pulsador cuando el led intermedio se enciende, si acierta funciona un
zumbador y la velocidad de la secuencia aumenta. Los leds deben estar conectados de los
pines 5 a 9 (inclusive), el zumbador al pin 10, el pulsador al pin 11. El tiempo inicial entre
encendido y encendido de leds debe ser 200 ms, si se acierta se decrementa el tiempo en
20 ms, si el tiempo entre encendidos llegase a 10 ms, se devuelve el tiempo a 200 ms.
Código fuente en Arduino:
TRABAJO PRÁCTICO N°2 – DIAGNOSTICO
Guía completa de ejercicios. Se pide realizar las consignas creando un archivo diferente
para cada una de ellas y nombrándolos de la siguiente manera: Punto # - Apellido Nombre,
reemplazando el “ # ” por el número de ejercicio correspondiente y “Apellido” y “Nombre” por
el apellido y nombre del alumno respectivamente.
Parte N°1: Pines digitales - Monitor Serie
1. Realizar un programa que encienda y apague un led con una demora de dos
segundos entre cambios de estado.
2. Realizar un programa que encienda y apague secuencialmente cuatro leds con una
demora de un segundo entre cambios de estado.
3. Realizar un programa que imprima por el monitor serie el mensaje “Hola Mundo”.

Parte N°2: Estructura if...else


1. Realizar un programa que encienda un led solo si hay un pulsador presionado.
Además, debe imprimirse por monitor serie el estado del led.
2. Realizar un programa que apague un led solo si hay un pulsador presionado.
3. Realizar un programa que encienda y apague un led mientras mantengo presionado
un pulsador.
4. Realizar un programa con el cual: si presiono S1 encienda el LED1 y se apaga el
LED2, si presiono S2 hace lo contrario.
5. Realizar un programa con el cual: si presiono S1 encienda el LED1 y LED3 y se
apagan LED2 y LED4, si presiono S2 hace lo contrario.
6. Realizar un programa con el cual:

Si presiono se encienden se apagan


S1 LED1 y LED2 LED3 y LED4
S2 LED2 y LED3 LED1 y LED4
S3 LED3 y LED4 LED1 y LED2
S4 LED4 y LED1 LED2 y LED3
Nada Ninguno Todos

7. Realizar un programa que encienda un led al recibir un caracter específico y que el


mismo se imprima por monitor serie.
8. Realizar un programa que encienda un led al recibir la letra “A” y que se apague con
la letra “B”. Además, se debe imprimir por monitor serie la letra ingresada y el
estado del led.
9. Realizar un programa con el cual: si ingreso el caracter “A” se encienda el LED1 y
LED3 y se apagan LED2 y LED4, si ingreso el caracter “B” que haga lo contrario.
10. Realizar un programa con el cual:

Si presiono se encienden se apagan


W LED1 y LED3 LED2 y LED4
S LED2 y LED3 LED1 y LED4
D LED2 y LED4 LED1 y LED3
P LED4 y LED1 LED2 y LED3
Nada Ninguno Todos

Parte N°3: Pines analógicos


1. Controlar el brillo de un led usando la lectura de un potenciómetro.
2. Controlar el brillo de dos leds simultáneamente usando la lectura de un
potenciómetro y salidas independientes. Además, debe imprimirse por monitor serie
el valor actual de la lectura del potenciómetro.
3. Controlar el brillo de dos leds usando la lectura de un potenciómetro para cada uno.
Además, debe imprimirse el valor actual de cada potenciómetro de forma separada.
4. Controlar el brillo de tres leds usando la lectura de un potenciómetro para cada uno.
Además, debe imprimirse el valor actual de cada potenciómetro de forma separada.
5. Usar el programa anterior junto a un led RGB para hacer un mezclador de colores.
6. Realizar un programa que encienda un led solo si un potenciómetro supera la mitad
de su recorrido.
7. Realizar un programa que controle el encendido y apagado de dos leds mediante la
rotación de un potenciómetro respetando el siguiente comportamiento, además
debe imprimirse el valor actual de cada potenciómetro de forma separada:

Recorrido LED1 LED2


0/3 a 1/3 Apagado Apagado
1/3 a 2/3 Encendido Apagado
2/3 a 3/3 Encendido Encendido

8. Realizar un programa que controle el encendido y apagado de cinco leds mediante


la rotación de un potenciómetro respetando el siguiente comportamiento:

Recorrido LED1 LED2 LED3 LED4 LED5


0/6 a 1/6 Apagado Apagado Apagado Apagado Apagado
1/6 a 2/6 Encendido Apagado Apagado Apagado Apagado
2/6 a 3/6 Apagado Encendido Apagado Apagado Apagado
3/6 a 4/6 Apagado Apagado Encendido Apagado Apagado
4/6 a 5/6 Apagado Apagado Apagado Encendido Apagado
5/6 a 6/6 Apagado Apagado Apagado Apagado Encendido

9. Realizar un programa que controle el encendido y apagado de cinco leds mediante


la rotación de un potenciómetro respetando el siguiente comportamiento:

Recorrido LED1 LED2 LED3 LED4 LED5


0/6 a 1/6 Apagado Apagado Apagado Apagado Apagado
1/6 a 2/6 Encendido Apagado Apagado Apagado Apagado
2/6 a 3/6 Encendido Encendido Apagado Apagado Apagado
3/6 a 4/6 Encendido Encendido Encendido Apagado Apagado
4/6 a 5/6 Encendido Encendido Encendido Encendido Apagado
5/6 a 6/6 Encendido Encendido Encendido Encendido Encendido
10. Realizar un programa que controle el encendido y apagado de cuatro leds mediante
la rotación de un potenciómetro de forma tal que reflejen el comportamiento de un
contador binario de 4 bits. Además, debe imprimirse por monitor serie el número
decimal con el cual se asocia la representación de los leds.
11. Realizar un programa que controle el incremento y decremento de luz emitida por un
led haciendo uso de dos pulsadores.

Parte N°4: Estructuras de repetición


1. Realizar un programa que defina a los pines del 2 al 13 como salidas usando la
función for.
2. Realizar un programa que defina: a los pines del 2 al 7 como entradas y a los del 8
al 13 como salidas usando la función for.
3. Realizar un programa que realice el encendido de 5 leds en forma secuencial
usando la función for.
4. Realizar un programa que realice el encendido y apagado de 5 leds en forma
secuencial usando la función for.
5. Realizar un programa que realice el encendido de 5 leds en forma secuencial al
accionar un pulsador S1, y realice su apagado secuencial al accionar un pulsador
S2.
6. Realizar un programa que realice el encendido de 10 leds en forma secuencial
creciente al accionar un pulsador S1, y realice su apagado secuencial decreciente al
accionar un pulsador S2.
7. Realizar un programa que realice el encendido gradual de un led al accionar un
pulsador S1, y realice su apagado gradual al accionar otro pulsador S2.

Parte N°5: Display LCD 16x2


1. Realizar un programa que imprima por un LCD 16x2 el mensaje “Hola mundo”.
2. Realizar un programa que imprima por un LCD 16x2 las palabras “Hola” y “mundo”
en forma intermitente
3. Realizar un programa que imprima por un LCD 16x2 las palabras “Hola” y “Mundo”
en filas distintas.
4. Realizar un programa que imprima por un LCD 16x2 el mensaje “Hola mundo” solo
si tengo presionado un pulsador.
5. Realizar un programa que imprima por un LCD 16x2 las palabras: “Hola”; solo si
tengo presionado un pulsador S1, y “mundo”, solo si tengo presionado un pulsador
S2. Las palabras deben imprimirse en filas diferentes.
6. Realizar un programa que imprima por un LCD 16x2 el mensaje “Hola nuevo
mundo”. El mismo debe mostrarse en desplazamiento de derecha a izquierda de
forma repetitiva.
TRABAJO PRÁCTICO Nº 3
Auto-robot controlado por bluetooth con Arduino UNO

Actividad N°1: Control de motores usando el Puente H L293D


Lista de componentes:
• 1 placa Arduino uno
• 1 puente h L293D
• cables dupont o de red
• 2 motores de 6v
• 1 batería de 9v
Descripción del funcionamiento: Se pide realizar el prototipo de un vehículo
eléctricamente controlado con un programa precargado en una placa Arduino UNO o
semejante. El comportamiento del vehículo deberá respetar el siguiente esquema:
• Avanzar durante 3 segundos
• Girar 360° hacia su izquierda
• Retroceder hasta el punto inicial
• Dar dos giros completos hacia su derecha
• Repetir desde la primera acción
• Entre cada acción deberá haber una demora de 1 segundo.
Actividad N°2: Control de motores usando el Puente H y monitor serie.
Lista de componentes:
• 1 placa Arduino uno
• 1 puente h L293D
• cables dupont o de red
• 2 motores de 6v
• 1 batería de 9v
Descripción del funcionamiento: Se pide realizar el prototipo de un vehículo
eléctricamente controlado con un programa precargado en una placa Arduino UNO o
semejante. El comportamiento del vehículo deberá respetar el siguiente esquema:
• Los motores iniciarán detenidos.
• El vehículo deberá:
o avanzar si recibe el caracter ‘W’.
o rotar a la izquierda si recibe el caracter ‘A’.
o retroceder si recibe el caracter ‘S’.
o rotar a la derecha si recibe el caracter ‘D’.
o frenar si recibe el caracter ‘P’.

Actividad N°3: Control de motores usando el Puente H y módulo bluetooth.


Lista de componentes:
• 1 placa Arduino uno
• 1 puente h L293D
• 1 módulo bluetooth hc-05 o hc-06
• cables dupont o de red
• 2 motores de 6v
• 1 batería de 9v
Descripción del funcionamiento: Se pide realizar el prototipo de un vehículo
eléctricamente controlado con un programa precargado en una placa Arduino UNO o
semejante. El comportamiento del vehículo deberá respetar el siguiente esquema:
• Los motores iniciarán detenidos.
• El vehículo deberá:
o avanzar si recibe el caracter ‘W’.
o rotar a la izquierda si recibe el caracter ‘A’.
o retroceder si recibe el caracter ‘S’.
o rotar a la derecha si recibe el caracter ‘D’.
o frenar si recibe el caracter ‘P’.
TRABAJO PRÁCTICO Nº 4
Control de display de 7 segmentos
Lista de materiales:
• 1 placa Arduino uno
• 1 display de 7 segmentos
• 7 resistencias de 330ω
• cables dupont o de red
• 1 pulsador na chico
• 1 sensor a elección
Descripción del funcionamiento:
Se pide realizar un programa que realice el conteo de veces que se ingresó una señal de
entrada. El mismo luego deberá modificarse para que funcione con algún sensor a elección.
Circuito eléctrico:
TRABAJO PRÁCTICO Nº 5
Control automático de Dinosaur Game
Lista de materiales:
• 1 placa Arduino uno
• 1 ldr
• 1 resistencia de 1kω
• cables dupont o de red
• 1 servomotor sg90

Descripción del funcionamiento:


Se pide realizar un programa que automatice la evasión de obstáculos en el juego de Google:
Dinosaur game. Haciendo uso de un LDR debe poder detectar la variación de luz emitida en
cierta región del monitor, lo cual dará pie a que un actuador golpee la tecla correspondiente
para que el dinosaurio ejecute un salto.

Circuito eléctrico:

También podría gustarte