segunda-feira, 3 de dezembro de 2012

Desafio 2.0 Maquina de lavar

Neste desafio fizemos um programa completo de uma maquina de lavar roupas.

   

CRIAMOS O PROGRAMA NO KEIL.

#include <lpc213x.h>
#include "E:\Douglas\TEC. ELETRONICA\SISTEMAS MICROCONTROLADOS\KEIL\lcd.h"

#define botao_liga_desliga (1<<15)
#define valvula_admissao (1<<16)
#define sensor_porta (1<<16)
#define bomba_expurgo (1<<17)
#define motor_1 (1<<18)
#define motor_2 (1<<19)
#define sensor_nivel (1<<20)


int tempo (void)
{
int d;
for (d=0;d<100000;d++);
}
int main (void)

{

IODIR0 = 0XFFFEFFFF;
IODIR1 = 0XFFEFFFFF;
init_lcd();

if (IOPIN0&(botao_liga_desliga)) // liga a maquina
{
IOCLR1 = valvula_admissao; // desliga bomba de agua
lcd_clr(); //limpa tela do lcd
lcd_puts("maquina desligada"); //mensagem do lcd
}

if (!(IOPIN0&(sensor_porta))) // porta fechada a maquina liga
{
IOSET1 = valvula_admissao; // liga bomba de agua
lcd_clr (); // limpa a tela do lcd
 lcd_puts("admitindo agua"); // mensagem da tela
}
else
{
IOCLR1 = valvula_admissao; // desliga bomba de agua
lcd_clr(); //limpa tela do lcd
lcd_puts("porta aberta"); //mensagem do lcd
while (1);
}
if(!(IOPIN0&(sensor_porta)))
{
IOSET1 = valvula_admissao;
lcd_clr();
lcd_puts("Admitindo Agua");
IOCLR1 = valvula_admissao;
IOSET1 = motor_1;
lcd_clr();
lcd_puts("lavando para direita");
tempo();
IOCLR1 = motor_1;
IOSET1 = motor_2;
lcd_clr();
lcd_puts("lavando para esquerda");
tempo();
IOCLR1 = motor_2;
tempo();
IOCLR1 = motor_2;
IOSET1 = bomba_expurgo;
lcd_clr();
lcd_puts("esvaziando agua");
IOCLR1 = bomba_expurgo;
IOSET1 = valvula_admissao;
lcd_clr();
lcd_puts("enxaguando");
IOCLR1 = valvula_admissao;
IOSET1 = bomba_expurgo;
tempo();
IOCLR1 = bomba_expurgo;
IOSET1 = motor_1;
IOSET1 = motor_2;
lcd_clr();
lcd_puts("centrifugando");
IOCLR1 = motor_1;
IOCLR1 = motor_2;
lcd_clr();
lcd_puts("FIM DO CICLO");
while (1);
}
}

Após criar o programa no keil montamos o circuito no Proteus e verificamos o funcionamento conforme o vídeo.


imagem do circuito.



Nenhum comentário:

Postar um comentário