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:
vielen dank für jegliche hilfe.
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
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
Post a Comment