O céu não é o limite

“De onde viemos? Aonde vamos? Viajemos e compreendamos nosso destino (…) Na era dos computadores, temos mais idéias e sonhos. Agora estamos diante do desafio do amanhã. Com o aumento do conhecimento e da tecnologia, nós mudamos nossas vidas e nossos mundos.
Dos confins do espaço às profundezas do mar, nós construímos numa vasta rede eletrônica (…)”

Pierre Badin, teórico

segunda-feira, 10 de janeiro de 2011

Sketch do Arduino para o Ecolux

E aí gente, tranquilos?

Foi trabalhosos fazer esse código, e no fim ainda tive um problema com o delay, mas agora está tudo resolvido:

Segue então a sketch do Arduino para o Ecolux: (com comentários)

long fotoPeriodo = 8; // tempo de iluminação diária das plantas dado em horas (ALTERAR SOMENTE ESSA VARIÁVEL!!)
long fotoPeriodoMs = 0; // declaração da variável que armazena o foto período em milissegundos
int vermelho1 = 9; // primeira coluna de 5 leds vermelhos deverá ser plugada no pino 9
int azul = 10; // coluna de 5 leds azuis deverá ser plugada no pino 10
int vermelho2 = 11; // segunda coluna de 5 leds vermelhos deverá ser plugada no pino 11
int intensidade = 0; /* Informar valores entre 0 e 255 para controlar intensidade dos LEDs.
SE FOR USAR INTENSIDADE, DESABILITAR
(COMO COMENTÁRIO) AS PARTES 1,3,5 E HABILITAR AS PARTES 2,4,6. */


void setup ()

{
pinMode(vermelho1, OUTPUT); // pino 9 declarado como saída
pinMode(azul, OUTPUT); // pino 10 declarado como saída
pinMode(vermelho2, OUTPUT); // pino 11 declarado como saída
fotoPeriodoMs = fotoPeriodo * 3600000; // cálculo do fotoPeriodo em milissegundos
}

void loop()
{
digitalWrite(vermelho1, HIGH); // acende a primeira coluna de leds vermelhos (PARTE 1)
//analogWrite(vermelho1, intensidade); // Para uso de intensidade (PARTE 2)
digitalWrite(azul, HIGH); // acende a coluna de leds azuis (PARTE 3)
//analogWrite(azul, intensidade); // Para uso de intensidade (PARTE 4)
digitalWrite(vermelho2, HIGH); // acende a segunda coluna de leds vermelhos (PARTE 5)
//analogWrite(vermelho2, intensidade); // Para uso de intensidade (PARTE 6)
delay(fotoPeriodo * 3600000); // espera o período de iluminação
digitalWrite(vermelho1, LOW); // apaga a primeira coluna de leds vermelhos
digitalWrite(azul, LOW); // apaga a primeira coluna de leds vermelhos
digitalWrite(vermelho2, LOW); // apaga a primeira coluna de leds vermelhos
delay(86400000 - fotoPeriodoMs); // espera o período sem iluminação

}


PS: Considerar comentários de uma linha mesmo no caso em que passarem para outra linha (isso aconteceu devido à formatação do blog)


É isso! No próximo post mostrarei fotos de um protótipo em funcionamento, e se funcionar, farei um vídeo e colocarei no youtube.

Até mais!

Nenhum comentário:

Postar um comentário