Olá, 

Estou com um pequeno problema para completar meu código, ele funciona assim:

Ao receber um caractere pela serial ele executa determinada função, mas estou com um problema na segunda função que seria de colocar luzes para fazer um acendimento automático com a falta de luz medida por um ldr, mas do modo que está no código apenas quando eu coloco para ele realizar a função ele a realiza, ou seja, mesmo escuro ele só acende se eu mandar ele ficar automático e não como deveria ser.

É só um probleminha na logica, mas probleminha que eu não consigo resolver

E se souberem poderiam me dar uma dica de como selecionar o tanto de casas após a virgula em uma variável flutuante (float).

Obrigado

 

#include<dht11.h>
dht11 sensor;
int ldr = 0;
int tcl;


void setup() {
Serial.begin(9600);
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
Serial.println("Digite o que vc deseja: ");
Serial.println("a - Ligar ou desligar a luz");
Serial.println("b - Luzes automaticas");
Serial.println("c - Exibir informacoes");
Serial.println("d - Ligar ou desligar o ventilador");
}

void loop() {
ldr = analogRead(A0);
ldr = map(ldr, 0, 1024, 0, 100);
if(Serial.available()>0){
tcl = Serial.read();
if (tcl == 'a'){
if (digitalRead(13) == 0){
digitalWrite(13, HIGH);
}
else if(digitalRead(13) == 1){
digitalWrite(13, LOW);
}
}

if (tcl == 'b'){
if (ldr <= 40){
digitalWrite(13, HIGH);
}
else if(ldr > 70) {
digitalWrite(13, LOW);
}
}
if(tcl == 'c'){
Serial.print("Luminosidade: ");
Serial.print(ldr);
Serial.println(" %");

int chk = sensor.read(3);

Serial.print("Umidade (%): ");
Serial.println((float)sensor.humidity, 3);
Serial.print("Temperatura (Celcius): ");
Serial.println((float)sensor.temperature, 3);
tcl = '-';
}
if(tcl == 'd'){
if (digitalRead(12) == 0){
digitalWrite(12, HIGH);
}
else if(digitalRead(13) == 1){
digitalWrite(12, LOW);
}
}
}
}

Exibições: 669

Anexos

Responder esta

Respostas a este tópico

ou melhor:

faça

if (tlc!='a') {...

Continuou a mesma coisa só que agora está escrito um pouco diferente

Manda o código completo novamente... manda um anexo que é mais fácil de visualizar, pois abro na IDE do arduino. Dá pra fazer isso?

ta ai em anexos, é só baixar

Testa esse programa, vê se funciona... tá em anexo

Anexos

Valeu cara, funcionou, agradeço muito

Por nada, cara. Bom trabalho pra vc!

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço