collapse

* Links de Robótica

* Posts Recentes

Recomendação de um opamp para um DAC r2r por jm_araujo
[Ontem às 10:48]


Feira de electricidade e eletrónica por beirao
[Ontem às 00:32]


RN42 e TP-Link MR3020 por doiga
[22 de Novembro de 2017, 19:22]


Ajuda Projecto IR / RF por senso
[22 de Novembro de 2017, 13:15]


Ideias para construir um quadrúpede simples por dropes
[21 de Novembro de 2017, 22:43]


Ajuda com TRIAC por senso
[17 de Novembro de 2017, 18:00]


TV LG White Screen por almamater
[15 de Novembro de 2017, 08:37]


Pergunta sobre prototipagem ( Pesquisa ) por luisjustin
[14 de Novembro de 2017, 23:22]


Medir Agua que está no Poço por Njay
[14 de Novembro de 2017, 13:28]


Amplificador audio por beirao
[12 de Novembro de 2017, 23:43]

Autor Tópico: programa de arduino  (Lida 2162 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline andlig

  • Mini Robot
  • *
  • Mensagens: 141
programa de arduino
« 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

Offline LuísR.A.

  • Mini Robot
  • *
  • Mensagens: 1.223
    • Clube de Robotica
Re: programa de arduino
« Responder #1 em: 03 de Setembro de 2012, 21:01 »
qual é o problema exatamente? não consegues ler a temperatura com o sensor? ou não cosnegues o ler no lcd?

« Última modificação: 03 de Setembro de 2012, 21:05 por LuísR.A. »
Tiva MCU é que é.

Tutoriais Tiva+codigos exemplo:
https://sites.google.com/site/luiselectronicprojects/

Offline andlig

  • Mini Robot
  • *
  • Mensagens: 141
Re: programa de arduino
« Responder #2 em: 03 de Setembro de 2012, 21:04 »
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

Offline LuísR.A.

  • Mini Robot
  • *
  • Mensagens: 1.223
    • Clube de Robotica
Re: programa de arduino
« Responder #3 em: 03 de Setembro de 2012, 21:10 »
  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?
« Última modificação: 03 de Setembro de 2012, 21:34 por LuísR.A. »
Tiva MCU é que é.

Tutoriais Tiva+codigos exemplo:
https://sites.google.com/site/luiselectronicprojects/

Offline andlig

  • Mini Robot
  • *
  • Mensagens: 141
Re: programa de arduino
« Responder #4 em: 03 de Setembro de 2012, 22:14 »


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

Offline LuísR.A.

  • Mini Robot
  • *
  • Mensagens: 1.223
    • Clube de Robotica
Re: programa de arduino
« Responder #5 em: 04 de Setembro de 2012, 12:37 »
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
« Última modificação: 04 de Setembro de 2012, 12:39 por LuísR.A. »
Tiva MCU é que é.

Tutoriais Tiva+codigos exemplo:
https://sites.google.com/site/luiselectronicprojects/

Offline Njay

  • Mini Robot
  • *
  • Mensagens: 3.141
    • Tróniquices
Re: programa de arduino
« Responder #6 em: 04 de Setembro de 2012, 14:06 »
Sem ver o esquema eléctrico daquilo que tens, tudo o que se pode fazer é adivinhar...

Offline andlig

  • Mini Robot
  • *
  • Mensagens: 141
Re: programa de arduino
« Responder #7 em: 04 de Setembro de 2012, 18:29 »
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

Offline andlig

  • Mini Robot
  • *
  • Mensagens: 141
Re: programa de arduino
« Responder #8 em: 08 de Setembro de 2012, 12:31 »
aki fica em anexo o esquema que me pediu, espero que esta bom ?

muito obrigado