terça-feira, 11 de dezembro de 2012

Desafio 2.0 " A Maquina de Lavar"

Bom pessoal... aí vai minha tarefa 2.0, que consistia em realizar as funções de uma maquina de lavar roupas, Admitindo água, lavando, enxaguando e enfim centrifugando.


Meu programa é o seguinte:



#include <lpc213x.h>
#include <C:\Keil\ARM\lcd.h>
#define chave (1<<22)
#define sensorn (1<<20)
#define sensorp (1<<21)
#define valvula (1<<16)
#define expurgo (1<<17)
#define motor1 (1<<18)
#define motor2 (1<<19)
void tempo (int limite)
{
int t=0;
for (t=0;t<limite;t++);//Função para chamar Tempo//
}
void main (void)
{
IODIR1=0xff8fffff;
init_lcd();
while(1)
{
if(!(IOPIN1&(chave))) // Se chave for 0//
{
IOCLR1=(valvula);//Não liga água//
lcd_clr();
lcd_gotoxy(1,1);
lcd_puts("Ligue a Maquina");
}
else
{
if(!(IOPIN1&(sensorp)))//Se a cahve for 1 ele verifica a porta//
{
IOCLR1=(valvula);//Não liga a admissão se a porta for 0//
lcd_clr();
lcd_gotoxy(1,1);
lcd_puts("Feche a Porta");
}
else
{
IOSET1=(valvula);//Se a for 1 liga a admissao de água//
lcd_clr();
lcd_gotoxy(1,1);
lcd_puts("Admitindo Agua");
if(!(IOPIN1&(sensorn)))//Se o sensor for 0 continua ligado a valvula//
{
IOSET1=(valvula);
lcd_clr();
lcd_gotoxy(1,1);
lcd_puts("Admitindo Agua");
}
else
{
IOCLR1=(valvula);
lcd_clr();
lcd_gotoxy(1,1);
lcd_puts("Lavando");
IOSET1=(motor1);
tempo(10000000);
IOCLR1=(motor1);
IOSET1=(motor2);
tempo(10000000);
IOCLR1=(motor2);
IOSET1=(motor1);
tempo(10000000);
IOCLR1=(motor1);
IOSET1=(motor2);
tempo(10000000);
IOCLR1=(motor2);
      IOSET1=(motor1);
tempo(10000000);
IOCLR1=(motor1);
IOSET1=(motor2);
tempo(10000000);
IOCLR1=(motor2);
IOSET1=(expurgo);//Liga o expurgo e a agua desce do nivel//
lcd_clr();
lcd_gotoxy(1,1);
lcd_puts("Enxaguando");
tempo(10000000);
IOCLR1=(expurgo);
IOSET1=(valvula);
lcd_clr();
lcd_gotoxy(1,1);
lcd_puts("Agua Novamente");
while(IOPIN1&(valvula))
{
if(!(IOPIN1&(sensorn)))//Se sensor de nivel 0 continua ligada a valvula//
{
IOSET1=(valvula);
lcd_clr();
lcd_gotoxy(1,1);
lcd_puts("Agua Novamente");
while(!(IOPIN1&(sensorn)))
{
IOSET1=(valvula);
}
IOCLR1=(valvula);
IOSET1=(expurgo);
lcd_clr();
lcd_gotoxy(1,1);
lcd_puts("Centrifugando");
tempo(10000000);
IOSET1=(motor1);
IOSET1=(motor2);
tempo(10000000);
IOCLR1=(motor1);
IOCLR1=(motor2);
lcd_clr();
lcd_gotoxy(1,1);
IOCLR1=(expurgo);
lcd_puts("Fim de Ciclo");
}
while(1)
{
lcd_clr();
lcd_gotoxy(1,1);
lcd_puts("Fim de Ciclo");
}
}
}
}
}
}
}

Depois de programar este ciclo testei no Proteus. Funcionouu Perfeitamente.

O circuito ficou assim:



Isso é tudo Pessoal!!!!!!

Nenhum comentário:

Postar um comentário