LusoRobótica - Robótica em Português
Sistemas específicos => Arduino / AVR => Tópico iniciado por: andlig em 03 de Setembro de 2012, 19:36
-
bom tarde , venho por este meio perguntar se este codigo de programacao?
porque estou com algum problemas em relacao a temperatura medida pelo lm35DZ
muito obrigado, tenho aqui outro atmega mas tenho medo de trocar-lo e de os estragar lo tb
#include <LiquidCrystal.h>
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
int R1=470.00; //resistencia de 470 do divisor de tensao do painel solar
int R2=100.00; //resistencia de 100 do divisor de tensao do painel solar
int R3=10000.00; //resistencia de 1000 do divisor de tensao do lm338k
int R4=100.00; //resistencia de 100 do divisor de tensao do lm338k
void setup()
{
pinMode(5,OUTPUT); //pin de saida para a activacao da bobina do rele
pinMode(4,OUTPUT); // pin de saida de identificacao de excesso de temperatura no lm338k
lcd.begin(16,2);
Serial.begin(9600);
}
void loop()
{
int sensorValue1 = analogRead(A0);
int sensorValue2 = analogRead(A3);
int sensorValue3 = analogRead(A5);
Serial.print((sensorValue1*5.00/1023.00*(R1+R2)/R2));
Serial.print(" ");
Serial.print((sensorValue2*5.00/1023.00*(R3+R4)/R4));
Serial.print(" ");
Serial.print((sensorValue3*5.00/1023.00)*100);
Serial.print(" ");
Serial.println(sensorValue3);
lcd.setCursor(0,0);
lcd.print((sensorValue1*5.00/1023.00*(R1+R2)/R2));
lcd.setCursor(6,0);
lcd.print("VPS");
lcd.setCursor(0,1);
lcd.print(sensorValue2*5.00/1023.00*((R3+R4)/R4));
lcd.setCursor(6,1);
lcd.print("VLM");
lcd.setCursor(9,0);
lcd.print((sensorValue3*5.00/1023.00)*100);
lcd.setCursor(15,0);
lcd.print("C");
//activacao do rele coforme a tensao de entrada do painel solar
if (sensorValue1*5.00/1023.00*(R1+R2)/R2>15) // mais tarde é para defenir com uma tensao de cerca de 15V para o painel solar
{
digitalWrite(5,HIGH);
}
else
{
digitalWrite(5,LOW);
}
// controlo de excesso de temperatura no dissipador do lm335k
if(sensorValue3*5.00/1023.00*100>27) // mais tarde e para defenir com uma temperatura de cerca de 60ºC
{
digitalWrite(4,HIGH);
}
else
{
digitalWrite(4,LOW);
}
delay(1000);
}
muito obrigado
-
qual é o problema exatamente? não consegues ler a temperatura com o sensor? ou não cosnegues o ler no lcd?
-
o problema é quando eu subo a tensao na entrada analogica A3 e quando chega a ai por volta 210v lendo no lcd a temperatura comeca a dar erros de leitura, sera do atmega ou de programacao, o programa esta bom?
muito obrigado
-
int sensorValue1 = analogRead(A0);
int sensorValue2 = analogRead(A3);
int sensorValue3 = analogRead(A5);
Serial.print((sensorValue1*5.00/1023.00*(R1+R2)/R2));
Serial.print(" ");
Serial.print((sensorValue2*5.00/1023.00*(R3+R4)/R4));
Serial.print(" ");
Serial.print((sensorValue3*5.00/1023.00)*100);
Serial.print(" ");
Serial.println(sensorValue3);
lcd.setCursor(0,0);
lcd.print((sensorValue1*5.00/1023.00*(R1+R2)/R2));
lcd.setCursor(6,0);
lcd.print("VPS");
lcd.setCursor(0,1);
lcd.print(sensorValue2*5.00/1023.00*((R3+R4)/R4)); ------------------> aki parece ter um parêntese a mais antes do R3
lcd.setCursor(6,1);
lcd.print("VLM");
lcd.setCursor(9,0);
lcd.print((sensorValue3*5.00/1023.00)*100);
lcd.setCursor(15,0);
lcd.print("C");
ps: se viste akilo do INPUT antes de eu o apagar acho que podes esquecer. no meu codigo tambem não o tenho e funciona
estas a dar 210V no pin A3?
o sensor 1 é para saber a voltagem que o painel produz?
e o sensor 2?
o erro de leitura é em que valor?
-
estas a dar 210V no pin A3?
o sensor 1 é para saber a voltagem que o painel produz?
e o sensor 2?
o erro de leitura é em que valor?
em relacao as tuas perguntas nao estou a por 210v, este valor é por causa da R2 e da R3 que é umm divisor de tensao, so estou a por 5v que acho que é a entrada maxima dele,
o sensor 1 é a leitura da tensao de entrada do painel solar~
o sensor 2 e a leitura da tensao de saida da fonte de alimentacao
o erro de leitura so se da so sensor A5 que esta a ser influenciado pelo sensor 2, sera que o atmega esta estragado?
muito obrigado
-
não sei bem mas é possivel que estejas a dar mais de 40mA ao A3? se estiveres isso vai estragar esse pin e pode influenciar o processador.
tenta ler o sensor A5 com o serial monitor a ver se não é lcd mas o programa parece não ter erros pelo menos nesse sensor
-
Sem ver o esquema eléctrico daquilo que tens, tudo o que se pode fazer é adivinhar...
-
Sem ver o esquema eléctrico daquilo que tens, tudo o que se pode fazer é adivinhar...
em relacao ao esquema sei como fazer mas é simples a saida do lm35 esta ligado ao A5;
e no A0 e no A3 e somente uns simples potenciometros mais nada sera que uma foto da para ver alguma coisa?
muito obrigado
-
aki fica em anexo o esquema que me pediu, espero que esta bom ?
muito obrigado