collapse

* Links de Robótica

* Posts Recentes

Medir Agua que está no Poço por jm_araujo
[Hoje às 00:36]


URGENTE - display de 7 segmentos com backpack por helderjsd
[Ontem às 12:30]


Preços e fabricantes de pcb por Sérgio_Sena
[19 de Setembro de 2017, 10:20]


Palavras Cruzadas por Njay
[19 de Setembro de 2017, 02:24]


Isaac Asimov - I, Robot por senso
[18 de Setembro de 2017, 03:41]


Apresentação por TigPT
[17 de Setembro de 2017, 07:31]


ic SL440 da Plessey? por senso
[16 de Setembro de 2017, 13:11]


Compra Colectiva RS-Amidata por brunus
[15 de Setembro de 2017, 22:31]


Ideias para construir um quadrúpede simples por zordlyon
[15 de Setembro de 2017, 10:18]


Preparar bancada de testes por jm_araujo
[14 de Setembro de 2017, 10:24]

Autor Tópico: programa de arduino  (Lida 2137 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.086
    • 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