O enunciado da atividade é a seguinte:
Link para um vídeo de demonstração do funcionamento de uma caixa d'água: http://youtu.be/E8P3mii57t8
Enunciado:
Os bits P0.2 e P0.3 irão monitorar os níveis máximo e
mínimo e irão comandar a bomba de água, da seguinte
maneira:
A bomba liga somente se a água estiver abaixo no nível
mínimo.
A bomba desliga somente quando o sensor de nível máximo
for atingido.
Cria-se portanto uma faixa de histerese para comando do
motor da bomba d'água.
Não há controle sobre o consumo.
Então, primeiramente foi feito todo aquele processo de criação de novo projeto descrito na primeira postagem, depois então definimos as variáveis, ou seja, P0.2 e P0.3, serão as entradas que controlarão a bomba, se ela ligara ou não, então definimos P0.2 como nível Máximo, e P0.3 nível Médio e por fim, o P0.7 será a nossa bomba, os comando que utilizamos para definir isso foram os seguintes:
#define max (1<<2)
#define min (1<<3)
#define bomba (1<<7)
Para fazer com que funcionasse como o esperado utilizamos a função se, ou melhor, a função if da seguinte maneira:
int main (void)
{
IODIR0= 0xFFFFFFF3;
if (IOPIN0&(max))
{
IOCLR0 = bomba;
}
else
{
if (!(IOPIN0&(min)))
{
IOSET0 = bomba;
}
}
}
Como vemos no else do if da variável Max foi aberto outro if para a variável min com "!" invertendo a função.
Foi esses os comandos utilizados para desenvolver esse desafio. A partir de agora tentarei colocar ilustrações para que talvez aja melhor esclarecimento:
A imagem a seguir mostra a área de simulação do Keil...
...Na caixa de texto pequena, circulado de vermelho se encontra as caixas representando os pinos P0.2 e P0.3, os dois estão ativos, ou seja, marcados o que indica que a caixa d'água esta cheia, estando assim a bomba desligada.
O quadrinho da direita representa o P0.2(max) e o da esquerda P0.3(min).
Ao desligarmos o P0.2, a bomba continuara desligada pois só ligara quando o P0.3 for Zero, ou seja, quando ele estiver desmarcado. Próxima figura ilustrara isso.
Como dito acima, a bomba continuou desligada, pois o "nível da água" não baixo do min.
Agora no momento em que o P0.3 é desativado, ou seja, o nível de água baixo...
.. e também o max esta da mesma forma, a bomba ligou, pode se notar a ativação do Bit 07 que representa a nossa Bomba.
-Na medida em que a água vai subindo, e atingi o min a bomba continuara ligada, pois só desligara ao atingir o nivel máximo, ou seja o bit 02. Próxima figura ilustra esse fato.
Agora, que a água atingiu o nivel máximo a bomba desliga. Próxima figura.
Com todas essas características descritas e ilustradas corretas, o desafio 1.0 foi realizado, pelo menos a parte de criação no Keil.
Espero ter sido claro, e ter conseguido explicar um pouco a realização desse trabalho.
Até a próxima..





Nenhum comentário:
Postar um comentário