Para fins de demonstração coloquei um led como saída do pulso caso a percentagem abaixe ao limite pre-estabelecido,e também um delay para que de tempos e tempos o computador revise o programa(claro se a humidade subir não será mais necessário regá-lo)
E para ficar ainda mais diidático coloquei um display lcd que mostra em tempo real a humidade do solo na ocasiao, atualizado conforme o delay.
Antes de mais nada chupinhem a imagem
Uma coisa a atentar aqui e que o cara usou um resistor de 680 ohms para ajustar o contraste do display lcd, usei o referido resistor e pelo menos comigo não funcionou.Então adaptei um potenciometro pra regular o contraste de 10k linear.Pelo que voce ve no desenho não é necessario dar uma carga positiva no potenciometro, o terminal do meio voce liga o terra do arduino e numa ponta voce liga o display lcd no seu pino3. e o terminal da outra ponta voce finge que ele não existe ;)
Agora vamos ao código:
----------------------------
/*
# Autor: Fernando Krein Pinheiro,alterado por luciano cristiano
# Data: 17/09/2014
# Linguagem: C
# ========= IMPORTANTE ===========
# O codigo esta livre para usar,
# citar e compartilhar desde que
# mantida sua fonte e seu autor.
# Obrigado.
*/
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int umidade;
void setup()
{
lcd.begin(16, 2);
pinMode(13, OUTPUT);
}
void loop()
{
digitalWrite(13, LOW);
lcd.setCursor(0, 0);
umidade = analogRead(A0);
umidade = map(umidade, 1023, 0, 0, 100);
lcd.print("Umidade em:");
lcd.print(umidade);
lcd.print(" %");
if(umidade < 30)
{
lcd.setCursor(0, 1);
lcd.print("irrigando");
digitalWrite(13, HIGH);
}
delay(500);
lcd.clear();
}
---------------------------
Caso voce não queira nada muito complicado ou talvez não disponha de um display lcd, pode se fazer uso desse projeto também, que também funciona, porem não fiz um vídeo do mesmo, apenas testei.
E seu código fonte
---------------------------------------------------
/*********************************
***Autor: Leonardo Dalla Porta****
***********25/05/2014*************
*************Atenção**************
***O Codigo esta livre para uso,**
*desde que seja mantida sua fonte*
********e seu autor.**************
********Faça um bom uso***********
******Att. Equipe UsinaInfo*******
*********************************/
int
umidade;
void
setup()
{
Serial.begin(9600);
Serial.println(
"www.usinainfo.com.br"
);
pinMode(13, OUTPUT);
}
void
loop()
{
umidade = analogRead(A0);
int
Porcento = map(umidade, 1023, 0, 0, 100);
Serial.print(Porcento);
Serial.println(
"%"
);
if
(Porcento <=70)
{
Serial.println(
"Irrigando..."
);
digitalWrite(13, HIGH);
}
else
{
digitalWrite(13, LOW);
}
delay(1000);
}
Com ele voce monitora pelo monitor serial que também mostra a porcentagem em tempo real
E é isso ahe pessoal, em breve postarei um vídeo do bichao funcionando
Como prometido, eis o vídeo
Como prometido, eis o vídeo
Nenhum comentário:
Postar um comentário