Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
• 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.
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.
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.
Ánodo común
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:
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.
#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
• 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.
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);
}
}
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:
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
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.
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:
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é?
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
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.
Circuito eléctrico: