quinta-feira, 27 de setembro de 2012

Elaboração do Desafio 1.1

    O desafio 1.1, é nada mais que a incrementação do 1.0.
Então, como foi descrito todo o processo de desenvolvimento do desafio 1.0 na postagem anterior, essa postagens sera descrito apenas o que foi adicionado a mais.
    O pinos P0.2 P0.3 são os que controlam a bomba, um é o nível máximo e o outro o minimo, então incluímos  um pino a mais o P0.14, que vai ser o pino que controlara se há presença de água ou não para encher a caixa d'água como se fosse a concessionária que distribui água encanada, ou seja, se este pino estiver em nível logico 1, quer dizer que há água.. assim se o nível de água na caixa for baixo a bomba se ligara, se o nível logico for 0, representando assim a falta d'água, a bomba não liga, evitando o desperdício de energia, e também a possibilidade de danificação da bomba.
     Dei ao pino P0.14 o nome de Corsan.

Comandos:

#include (lpc213x.h>

#define max (1<<2)
#define min (1<<3)
#define bomba (1<<7)
#define corsan (1<<14)

int main (void)

iodir0 = 0xFFFFbFF3;
if(!(iopin0 & (corsan)))
{
IOCLR0 = bomba;
}
else
{
if(IOPIN0 & (max))
{
IOCLR0 = bomba;
}
else
{
if(!(IOPIN0 & (min)))
{
IOSET0 = bomba;
}
}
}
}


Ilustração do funcionamento.


Como podemos ver, o pino 14 esta acionado, representando assim a presença de água, mas a bomba não esta ligada porque o nivel máximo já foi atingido.





-Nesse, os controladores de nível max e min não estão ativos, ou seja, caixa fazia, a bomba esta ligada pois como podemos ver o pino 14 que representando a presença d'água, esta ativo.





- Nesse ultimo então, mesmo que os pinos max e min estejam representando que não há água na caixa, a bomba não ligará, pois o pino 14 acusa a falta d'água.

quarta-feira, 5 de setembro de 2012

Criação em Hexa.

  Essa nova postagem sera para mostrar como salvar o seu projeto desenvolvido no keil em Arquivo Hex.

Depois de todo aquele processo de criação de um novo projeto, de salvar em .C, de inserir na pasta de projetos e o próprio desenvolvimento do mesmo, ou seja, depois do seu projeto estar pronto. Devera ser seguindo os seguintes passos para que Crie esse Arquivo HEX.

1. Clicar inverso em Target e em seguida clicar na primeiro opção.


2. Quando clicado na opção mencionada anteriormente abrira uma nova janela, onde devera localizar a guia Output, e ativar a opção Create HEX file, e dar Ok.



    -Feito isso esta criado seu Arquivo em Hex!!

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..