Pages: [1]   Go Down
Author Topic: Voltimetro  (Read 857 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 28
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
#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?
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3289
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:

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);
}
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Offline Offline
Newbie
*
Karma: 0
Posts: 28
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Obrigado! Irei fazer testes o mais rapido possivel!
Logged

Pages: [1]   Go Up
Jump to: