quarta-feira, 5 de setembro de 2012

Elaboração do desafio 1.0

     Essa nova postagem é para relatar o desenvolvimento do primeiro desafio proposto pelos professores.
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