Paso 6 Grupo 309696 36
Paso 6 Grupo 309696 36
Paso 6 Grupo 309696 36
PRESENTADO POR:
GRUPO: 309696_36
MICROCONTROLADORES Y MICROPROCESADORES
SOGAMOSO BOYACA
2020
Paso 6 – Proyecto final 2
CONTENIDO
INTRODUCCIÓN......................................................................................................................3
OBJETIVOS...............................................................................................................................4
General:...................................................................................................................................4
Específicos:.............................................................................................................................4
VIDEO EXPLICATIVO.......................................................................................................12
VIDEO EXPLICATIVO:......................................................................................................18
VÍDEO EXPLICATIVO.......................................................................................................22
VIDEO EXPLICATIVO.......................................................................................................25
VIDEO EXPLICATIVO.......................................................................................................29
CONCLUSIONES....................................................................................................................30
BIBLIOGRAFIA......................................................................................................................31
Paso 6 – Proyecto final 3
INTRODUCCIÓN
En el presente trabajo se implementaran las distintas tarjetas de desarrollo de hardware libre bajo
La presente actividad tiene como propósito emplear una placa Arduino como microcontrolador
basada en actividades anteriores donde se hizo uso de motores DC, controlando su velocidad y
tiempo de uso.
Este informe final abarcara todos los temas y experiencias vistos a lo largo del semestre, por lo
que se aplicara el lenguaje de programación de Arduino, diseño de circuito más acorde para la
elaboración de una maquina centrifuga que como bien se debe aclarar es un equipo de
Laboratorio que genera movimientos de rotación, tiene el objetivo de separar los componentes
Por lo anterior se desarrolló el diseño en Proteus, usando placa de Arduino Uno y demás
necesarios para cumplir con los requerimientos indicados, el cual se incluye el funcionamiento
máquina centrífuga.
Cada integrante del grupo comparte aportes correspondientes al desarrollo del proyecto y al final
OBJETIVOS
General:
Desarrollar correctamente el proyecto del paso 6 apropiando los conceptos fundamentales de las
tarjetas de desarrollo de hardware, emplear una placa Arduino como microcontrolador para la
y uso de periféricos.
Específicos:
- Investigar el funcionamiento de una maquina centrifuga, y con ello evaluar cuáles son los
- Analizar, diseñar y simular un circuito que cumpla con los parámetros indicados para la
maquina centrifuga.
en un diseño de proteus.
METODOLOGIA
automatización de un laboratorio de Calidad para la empresa Bambo la cual tiene como función
Se debe diseñar un máquina “amasadora de pan” para el control de calidad del tiempo y
velocidad que debe llevar la masa para obtener el mejor producto que la empresa Bambo ofrece.
Para poder llevar a cabo esta actividad, es necesario realizar una investigación con los temas
relacionados y que contribuyen a la implementación del equipo solicitado. Por lo tanto primero
se debe investigar que es una Maquina Centrifuga, su operación y diseño que nos permite tener
abanicos de alternativas para realizar su diseño, teniendo en cuenta los parámetros de la guía.
Maquina Centrifuga.
En la actualidad podemos encontrar gran variedad de máquinas centrífugas, las cuales se han
creado para poder atender necesidades específicas de las industrias, en especial áreas de
investigación. La máquina de centrífuga ha sido diseñada con el fin de aplicar este tipo de fuerza,
con el fin de separar los residuos sólidos que se encuentran suspendidos en un medio líquido por
sedimentación o para separar líquidos de diversa densidad; esto es posible gracias a los
Paso 6 – Proyecto final 6
movimientos de tipo rotacional, los cuales permiten que se genere una fuerza aún mayor que la
Es una placa
de microcontrolador de código
abierto basado en
el microchip ATmega328P y
de un cable USB tipo B.3 Puede ser alimentado por el cable USB o por una batería externa de 9
Código en Arduino.
llama AVR-GCC.
desarrolladores.
Con el IDE de Arduino podemos escribir nuestro código de una forma muy fácil y sobre todo,
con muchas ayudas. Pero lo más importante del IDE de Arduino es que podemos cargar el
código a la placa. Podríamos escribir todo nuestro código en el Bloc de Notas o algún otro editor
Proteus.
electrónicos en todas sus etapas: diseño del esquema electrónico, programación del software,
documentación y construcción.
PROYECTO
- Para la maquina “amasadora de pan” se debe diseñar una perilla para ajustar el tiempo de
minuto, por lo que esta perilla se puede ajustar con un potenciómetro y el rotor será un motor DC
revoluciones por minuto (RPM), por lo que con esta perilla se ajusta la velocidad de rotación del
rotor, tengan en cuenta que se debe controlar desde 0x100rpm hasta 40x100rpm, (el ajuste de
#include <LiquidCrystal.h>
LiquidCrystal lcd(12,11,5,4,3,2);
const int pinBtn=13; //PULSADOR
const int pinVelocidad=A1; //potenciometros
const int pinTiempo=A0;
const int pinmotor7=10; // PWM
const int pinmotor2=9;
const int LedOn=7; // LED
const int LedW=6;
int estado=0; // Variables
int contador=0;
int tiempo_escogido=10; //10seg.
int velocidad_escogida=0;
int pwm;
int velocidad_nueva;
int fin = 0;
void setup() {
// Mensajes de Inicio
lcd.begin(16,2);
lcd.print("Fase 6 - Grupo 36");
lcd.setCursor(0,1);
lcd.print("Proyecto Final");
delay(1000);
lcd.clear();
lcd.print("Confi. perillas");
lcd.setCursor(0,1);
lcd.print("y pulse Encender");
delay(1000);
pinMode(pinBtn, INPUT); // Default
pinMode(pinmotor7, OUTPUT);
pinMode(pinmotor2, OUTPUT);
pinMode(LedOn, OUTPUT);
pinMode(LedW, OUTPUT);
}
void loop() {
estado=digitalRead(pinBtn); // pulsador
digitalWrite(LedOn, HIGH); //led Conectado
// DISPLAY visualizar las perillas
tiempo_escogido = (analogRead(pinTiempo)/20.2)+10; // formula de proporcion
velocidad_escogida = (analogRead(pinVelocidad)/25.57);
lcd.clear();
lcd.print("Tiempo: "+String(tiempo_escogido)+"seg.");
lcd.setCursor(0,1);
lcd.print("Velocidad:"+String(velocidad_escogida)+"x100 RPM");
delay(100);
Paso 6 – Proyecto final 11
//ENCENDIDO
if(estado == HIGH ){
digitalWrite(LedW, HIGH);//led funcionando
while (contador <= tiempo_escogido){
velocidad_escogida = (analogRead(pinVelocidad)/25.57);
velocidad_nueva = analogRead(pinVelocidad);
pwm = map(velocidad_nueva, 0, 1023, 0, 255); // invertir rango
analogWrite(pinmotor7, pwm); // envia la velocidad del motor
lcd.clear(); lcd.print("Tiempo:"+String(tiempo_escogido)+"S.->"+String(contador));
lcd.setCursor(0,1); lcd.print("Velocidad:"+String(velocidad_escogida)+"x100 RPM");
delay(200); // delay(1000);
contador++;
fin = 1;}}
// AL FINALIZAR
if(fin == 1){
digitalWrite(LedW, LOW);
analogWrite(pinmotor2, LOW);
analogWrite(pinmotor7, LOW);
lcd.clear();
lcd.print("Fin del Proceso");
lcd.setCursor(0,1);
lcd.print("Masa lista");
delay(2000);
fin = 0;
}}
VIDEO EXPLICATIVO
Paso 6 – Proyecto final 14
DEFINICIÓN:
La ALU requiere de dos entradas a las que comunmente se les denomina A y B, estas pueden
tomar valores de 1 o 0. Dependiendo de estos valores y de la señal de control ella da una salida
- R la salida.
- D estado de salida.
Paso 6 – Proyecto final 15
El principio funcional de esta, está basado en el funcionamiento de las compuertas lógicas que
definiremos a continuación:
COMPUERTA LÓGICA:
Las compuertas lógicas son circuitos electrónicos con la capacidad de realizar operaciones
lógicas básicas, mediante un circuito combinacional cuya salida está condicionada por sus
entradas.
COMPUERTA AND:
Su salida es un “1”, únicamente si sus dos entradas con “1”, esta compuerta representa la
COMPUERTA OR:
Su salida es un “0”, únicamente cuando sus dos entradas son “0”, representa la suma.
COMPUERTA NOT:
COMPUERTA NAND:
COMPUERTA NOR:
COMPUERTA XOR:
Su salida es “1”, cuando una de sus dos entradas es “1”, pero no las dos simultáneamente.
COMPUERTA XNOR:
Paso 6 – Proyecto final 18
La salida es “0”, cuando una de las entradas es “1”, pero no las dos al tiempo.
Análisis y diseño de una unidad aritmético lógica por medio de compuertas, flip-flops y uso
de VHDL
Paso 6 – Proyecto final 19
VIDEO EXPLICATIVO:
https://youtu.be/N0JnRw6_55A
Paso 6 – Proyecto final 20
CÓDIGO PYTHON
PROYECTO PROPUESTO:
Para el paso 2 del proyecto propuesto se desea realizar un sistema de seguridad de ingreso del
personal al laboratorio de calidad, teniendo en cuenta que son 15 funcionarios los que ingresan al
laboratorio cada uno recibe un número binario y con este se le da acceso, sin embargo, se debe
CÓDIGO:
return @with_goto
@with_goto def chart_Timer () :
def chart_LOOP () : var.cm=millis()
chart_BTN_ID () if var.cm>(var.T+var.P) :
chart_BTN_Show () var.T=millis()
chart_Timer () chart_Generador ()
return return
@with_goto @with_goto
def chart_BTN_ID () : def chart_Generador () :
var.ID_state = pio.cpu.digitalRead (5) for x in range (15) :
if var.ID_state : var.N[x]=(random.randrange(10, 110))
sleep((300)*0.001) pio.LCD1.clear ()
var.ID=(var.ID+1)%15 pio.LCD1.print ("N :", var.N[0])
pio.LCD1.clear () return
pio.LCD1.print ("IDENTI:", var.ID) # Main function
return def main () :
@with_goto # Setup
def chart_BTN_Show () : variables_setup ()
var.Show_state = pio.cpu.digitalRead (6) peripheral_setup ()
if var.Show_state : chart_SETUP ()
sleep((300)*0.001) # Infinite loop
if var.ID<1: while True :
var.ID = 0 peripheral_loop ()
pio.LCD1.clear () chart_LOOP ()
pio.LCD1.print ("IDENTI : ", var.ID, " ", # Command line execution
"COD: ", bin(var.N [ var.ID])) if __name__ == '__main__' :
return main()
SIMULACIÓN EN PROTEUS
Paso 6 – Proyecto final 22
Paso 6 – Proyecto final 23
Paso 6 – Proyecto final 24
VÍDEO EXPLICATIVO
LINK:
https://www.youtube.com/watch?v=75RxtzGm4vQ&feature=youtu.be
SOLUCIÓN:
CODIGO:
void loop ()
Paso 6 – Proyecto final 25
{ ///MOTOR 3 CERRANDO
/// A que velocidad se va amover hacia
la derecha digitalWrite(pin_pd6,HIGH);
moverderecha(pinMotorA, 180); lcd.begin(16, 2);
moverderecha(pinMotorB, 180); //Print a message to the LCD.
moverderecha(pinMotorC, 180); lcd.print("cerrando 3");
delay(waitTime);
digitalWrite(pin_pd7,LOW);
/// A que velocidad se va amover hacia lcd.begin(16, 2);
la izquierda //Print a message to the LCD.
moverizquierda(pinMotorA, 180); lcd.print("cerrando 3");
moverizquierda(pinMotorB, 180); }
moverizquierda(pinMotorC, 180); //Apertura de los motores
delay(waitTime); void moverizquierda(const int
pinMotor[3], int speed)
} {
//MOTOR 1 ABRIENDO
//Cerrado de los motores digitalWrite(pin_pb1,LOW);
void moverderecha(const int lcd.begin(16, 2);
pinMotor[3], int speed) // Print a message to the LCD.
{ lcd.print("ABRIENDO 1");
///MOTOR 1 CERRANDO
digitalWrite(pin_pb2,HIGH);
digitalWrite(pin_pb1,HIGH); lcd.begin(16, 2);
lcd.begin(16, 2); // Print a message to the LCD.
//Print a message to the LCD. lcd.print("ABRIENDO 1");
lcd.print("cerrando 1");
//MOTOR 2 ABRIENDO
digitalWrite(pin_pb2,LOW); digitalWrite(pin_pb3,LOW);
lcd.begin(16, 2); lcd.begin(16, 2);
//Print a message to the LCD. // Print a message to the LCD.
lcd.print("cerrando 1"); lcd.print("ABRIENDO 2");
SIMULACIÓN EN PROTEUS:
Paso 6 – Proyecto final 27
VIDEO EXPLICATIVO
https://youtu.be/MVkvPGNe1IQ
23 10111
24 11000
25 11001
26 11010
27 11011
28 11100
29 11101
30 11110
Simulación en Proteus:
Paso 6 – Proyecto final 28
//Nombres de pines:
int fotocel=A0; //PC0: analog input 0 señal analoga de la frecuencia
int datoluz0=2; //PD2: digital input 2 señal del dato digital de luz = bit 0
int datoluz1=3; //PD2: digital input 2 señal del dato digital de luz = bit 1
int datoluz2=4; //PD2: digital input 2 señal del dato digital de luz = bit 2
int datoluz3=5; //PD2: digital input 2 señal del dato digital de luz = bit 3
int datoluz4=6; //PD2: digital input 2 señal del dato digital de luz = bit 4
void setup() {
pinMode(fotocel, INPUT);
pinMode(datoluz0, OUTPUT);
pinMode(datoluz1, OUTPUT);
pinMode(datoluz2, OUTPUT);
pinMode(datoluz3, OUTPUT);
pinMode(datoluz4, OUTPUT);
Serial.begin(9600);
Paso 6 – Proyecto final 30
}
void loop() {
minutos=0;
Serial.println();
Serial.println();
Serial.println("Inicia examen de muestra de pan cada 45 minutos durante 24 horas");
Serial.println("Sensor de luz TSL251RD: irradiancia de 0 a 200, salda de 0a 3 voltios");
Serial.println("24 horas = 1440 min / 45 min = 32 ensayos.");
Serial.println();
delay (intervalo*2);
digitalWrite(datoluz4, vcode[4]);
minutos=minutos+45;
delay(intervalo);
vcode[0]=0;
vcode[1]=0;
vcode[2]=0;
vcode[3]=0;
vcode[4]=0;
}
Serial.println("...terminado examen de muestra.");
Serial.println();
delay(intervalo*2);
VIDEO EXPLICATIVO
https://www.youtube.com/watch?v=ZColCU8X-EA&feature=youtu.be
CONCLUSIONES
El diseño implementado fue basado en los ejercicios anteriores usando el Arduino UNO como
microcontrolador.
Paso 6 – Proyecto final 32
Entre las principales equivocaciones estuvieron las relacionadas con la programación del motor
DC pues la entrada analógica del Arduino es de 10 bits, el rango va de 0 a 1023 y la salidas del
Arduino son de 8 bits con rangos entre 0 a 255, y tuvimos que mapear el número de un rango a
otro.
perilla como deteniendo la simulación para variarla, también luego de accionar un pulsador y
A través del desarrollo de la actividad grupal, se efectuaron las siguientes acciones: recopilar
información para la resolución de problema, elaborar del plan de trabajo, decidir cuáles son las
variables o estrategias se van a seguir, llevar a cabo el desarrollo del proyecto en conjunto y
discutir entre las partes que intervienen en el proyecto cuál será el consolidado final.
BIBLIOGRAFIA
de: https://bibliotecavirtual.unad.edu.co/login?url=https://search-ebscohost-com.bibliotecavirtual
.unad.edu.co/login.aspx?direct=true&db=nlebk&AN=312518&lang=es&site=ehost-live&ebv=E
B&ppid=pp_177
Recuperado de: https://bibliotecavirtual.unad.edu.co/login?url=https://search-ebscohost-
com.bibliotecavirtual .unad.edu.co/login.aspx?
direct=true&db=nlebk&AN=1201955&lang=es&site=ehost-live&ebv= EK&ppid=Page-__-23
Recuperado de: https://bibliotecavirtual.unad.edu.co/login?url=https://search-ebscohost-com.bi
bliotecavirtual.unad.edu.co/login.aspx?
direct=true&db=nlebk&AN=984619&lang=es&site=ehost-live&ebv=EB&ppid=pp_1
://search-ebscohost-com.bibliotecavirtual.unad.edu.co/login.aspx?direct=true&db=nlebk&AN=1
89599&lang=es&site=ehost-live&ebv=EB&ppid=pp_117
- Pajankar, A., Kakkar, A., Poole, M., & Grimmett, R. (2016). Raspberry Pi: Amazing Projects
edu.co/login?url=https://search-ebscohost-com.bibliotecavirtual.unad.edu.co/login.aspx?direct=
true&db=nlebk&AN=1361385&lang=es&site=ehost-live&ebv=EB&ppid=pp_75
de: https://bibliotecavirtual.unad.edu.co/login?url=https://search-ebscohost-com.bibliotecavirtual
.unad.edu.co/login.aspx?direct=true&db=nlebk&AN=834836&lang=es&site=ehost-live&ebv=E
B&ppid=pp_7