Ai Pessoal vai meu desafio 1.2 resolvido...
Bom esse desafio nada mais era que adicionar um display de LCD ao programa do desafio1.1.
Programa realizado no Keil...
#include <lpc213x.h>
#include <C:\Keil\ARM\lcd.h>
#define monitor1 (1<<17)
#define monitor2 (1<<18)
#define bomba (1<<20)
#define DMAE (1<<19)
void main(void)
{
IODIR1 = 0xfff1ffff;
init_lcd();
while(1)
{
if(!(IOPIN1&(DMAE))) // Se não tiver água no DMAE, a bomba será desligada//
{
IOCLR1 = (bomba);
lcd_clr();
lcd_gotoxy(1,2);
lcd_puts("Falta de Agua");
}
else
{
if(!(IOPIN1&(monitor1))) // Se tiver água no DMAE, será verificado o monitor minimo//
{
IOSET1 = (bomba); // Se não tiver água no monitor minimo a bomba é ligada//
lcd_clr();
lcd_gotoxy(0,0);
lcd_puts("Caixa Enchendo");
}
else
{
if(IOPIN1&(monitor2)) // Se tiver água no monitor minimo, então é verificado o monitor máximo//
{
IOCLR1 = (bomba); // Se o monitor máximo também tiver água a bomba é desligada//
lcd_clr();
lcd_gotoxy(0,2);
lcd_puts("Caixa Cheia");
}
else
{
lcd_clr();
lcd_gotoxy(0,2);
lcd_puts("Caixa Metade");
}
}
}
}
}
Nota-se que eu utilizei novos comandos neste programa...
utilizei os comandos que iram definir as funções do display de LCD, as funções são as seguintes:
init_lcd(); - Este comando irá iniciar o LCD;
lcd_clr(); - Neste comando o LCD será apagado para iniciar sua mensagem;
lcd_gotoxy(x,y); - Aqui você seleciona onde vai começar seu texto, dentro do parenteses você seleciona a coluna e a linha que estará a primeira letra da mensagem;
lcd_puts("Falta de Agua"); - Agora você vai escrever a mensagem a ser apresentada no display, o texto deve ser escrito dentro das aspas.
Após escrever...
Utilizei uma ferramenta chamada Proteus(ISIS), para testar meu circuito.
O circuito ficou como a imagem de cima mostra.
Acima estão todos os componentes do circuito.
Aqui encontram-se as chaves que simulam os sensores de nível de água. Quando acionadas como na imagem acima o nível lógico é 0(zero).
Com todas as minhas entradas em 0(zero), o display apresenta "Falta de Agua" e podemos ver que o LED da bomba d'água não liga.
Quando apenas a minha entrada de falta de água está em 1 o LED da bomba liga, fazendo com que meu display apresente "Caixa Enchendo".
Quando a entrada do sensor minimo esta em 1 também a bomba continua ligada e a mensagem agora é "Caixa Metade".
Quando todas as entradas forem 1, o display indica "Caixa Cheia" e a bomba desliga.
Mesmo que o sensor de máximo for desligado a bomba não liga apenas ligando quando a água passar do nível minimo.







