Vin messen, nur wie?


hallo, ich möchte die spannung eines 6v blei-vlies akkus messen, welcher das zum messen verwendete arduino pro mini 5v versorgt.

habe nun mehrfach etwas von der 1.1v referenzspannung gelesen, doch die beispielsketche funktionieren bei mir nicht, die ausgegebenen werte sind bei 5v (~5400mv laut readvcc funktion) versorgung jedoch höher als bei versorgung mit dem 6v blei vlies akku (~5400mv).. mache ich falsch?

hier das verwendete sketch:

code: [select]


long readvcc() {
  // read 1.1v reference against avcc
  // set reference vcc , measurement internal 1.1v reference
  #if defined(__avr_atmega32u4__) || defined(__avr_atmega1280__) || defined(__avr_atmega2560__)
    admux = _bv(refs0) | _bv(mux4) | _bv(mux3) | _bv(mux2) | _bv(mux1);
  #elif defined (__avr_attiny24__) || defined(__avr_attiny44__) || defined(__avr_attiny84__)
    admux = _bv(mux5) | _bv(mux0);
  #elif defined (__avr_attiny25__) || defined(__avr_attiny45__) || defined(__avr_attiny85__)
    admux = _bv(mux3) | _bv(mux2);
  #else
    admux = _bv(refs0) | _bv(mux3) | _bv(mux2) | _bv(mux1);
  #endif  

  delay(2); // wait vref settle
  adcsra |= _bv(adsc); // start conversion
  while (bit_is_set(adcsra,adsc)); // measuring

  uint8_t low  = adcl; // must read adcl first - locks adch  
  uint8_t high = adch; // unlocks both

  long result = (high<<8) | low;

  result = 1125300l / result; // calculate vcc (in mv); 1125300 = 1.1*1023*1000
  return result; // vcc in millivolts
}



vielen dank für jegliche hilfe.

hallo,

wenn du eine spannung messen willst, die höher ist als die versorgungsspannung des arduino brauchst du immer einen spannungsteiler aus zwei widerständen, um die spannung zu reduzieren. der ad-wandler hat mehrere betriebsarten, einmal kannst du die versorgungsspannung (also 5v) als referenz (=100%) nehmen oder die eingebaute referenzspannungsquelle mit 1,1v. das ist das, ich machen würde, weil sonst deine messung beeinflusst wird von schwankungen der versorgungsspannung. 6v akkuspannung (max. wohl 7v wenn du ihn vollädst) runterteilen auf 1v, dann messen und den wert ausrechnen.

viele grüße

elektrix


Arduino Forum > International > Deutsch (Moderator: uwefed) > Vin messen, nur wie?


arduino

Comments

Popular posts from this blog

Error compiling for board Arduino/Genuino Uno.

Installation database is corrupt

esp8266 (nodemcu 0.9) client.write très lent ???