Go Down

Topic: Voltimetro (Read 1 time) previous topic - next topic

lucas-appr2

Boa Noite!

Montei um Voltimetro com Arduino Nano + LCD Shield. Mas mesmo sem voltagem na entrada de leitura aparece voltagem no LCD variando entre 0.0 / 0.35 e após colocar voltagem ela não fica fixa, continua variando.

Reduzimos a entrada de 12v para 4v no A1 com resistores conforme um esquema que encontrei na net (http://www.clarenceho.net:8123/blog/articles/2009/05/17/arduino-test-voltmeter). Para leitura mais precisa mudei os valores das resistencias.

Codigo:

Code: [Select]

#include <LiquidCrystal.h>
#include <LCDKeypad.h>
#define MINVAL 1
#define MAXVAL 1000
LCDKeypad lcd;

// variables for input pin and control LED
  int analogInput = A1;
  int refresh = 200;
  float vout = 0.0;
  float vin = 0;
  float R1 = 12100.0;    // !! resistance of R1 !!
  float R2 = 6800.0;     // !! resistance of R2 !!
  int value = 0;

void setup(){
  pinMode(analogInput, INPUT);
  Serial.begin(9600);
}
void loop (){
  value  = analogRead(analogInput);
  vout = (value * 5.0) / 1024.0;
  vin = vout / (R2/(R1+R2));
   
  //Voltagem
        Serial.print("Voltagem: ");
        Serial.print(vin);
        Serial.println(" volts");
  lcd.clear();
  lcd.print(vin);
  lcd.print("v ");
 
delay(refresh);
}



Caso não tenha como melhorar alguem poderia me ajudar a tirar uma media de 10 medições?

bubulindo

Code: [Select]


unsigned char vezes = 0;
double soma = 0;
void loop (){

while (vezes++ < 10){
  soma  += analogRead(analogInput);
}
value = (unsigned int) soma/10;


  vout = (value * 5.0) / 1024.0;
  vin = vout / (R2/(R1+R2));
   
  //Voltagem
        Serial.print("Voltagem: ");
        Serial.print(vin);
        Serial.println(" volts");
  lcd.clear();
  lcd.print(vin);
  lcd.print("v ");
 
delay(refresh);
}
This... is a hobby.

lucas-appr2

Obrigado! Irei fazer testes o mais rapido possivel!

Go Up