Hallo zusammen,
ich verfolge aktuell das Thema analoge Bodenfeuchte Sensoren vom Typ
"Watermark 6440" an meinem AVR Net-IO in Betrieb zu nehmen. Ich setze
eine modifizierte Software von Urlich Radig ein (ETH_M32_EX) und
verwende einen 1284P uC.
Die Sensoren habe ich über einen Spannungsteiler zwischen 0 und 5V
mittels eines 20kOhm Widerstandes an den ADC4 und ADC5 angeschlossen.
Zunächst habe ich gedacht, dass das ganze funktioniert, allerdings habe
ich jetzt festgestellt, dass - wenn überhaupt - nach Umrechnung eine
Spannungsdifferenz zwischen nass und normal trocken von 0.2V herrscht.
Im "Leerlauf" habe ich eine Spannung von etwa 0,45V, in einem nassen Bad
etwa 0,63V. Teilweise sehe ich aber sogar gar keine Änderung, was mich
sehr stutzig stimmt.
Die Konfiguration des Ports sieht so aus:
1 | ADMUX = (1<<REFS0) + ADC_START;
|
2 |
|
3 | //Free Running Mode, Division Factor 128, Interrupt on
|
4 | ADCSRA=(1<<ADEN)|(1<<ADSC)|(1<<ADATE)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0)|(1<<ADIE);
|
Die Spannung berechne ich wie folgt:
1 | humSensor0.adc = (1024 - var_array[WATERMARK_SENS0]);
|
2 | humSensor1.adc = (1024 - var_array[WATERMARK_SENS1]);
|
3 |
|
4 | //get voltage from sensors (multiply with 100 to get float values .00)
|
5 | humSensor0.voltage = (humSensor0.adc * 100 * 5 / 1024);
|
6 | humSensor1.voltage = (humSensor1.adc * 100 * 5 / 1024);
|
Sehr ihr ggf. eine Fehler (HW oder SW) und habt eine Idee, wo ich
angeeckt sein könnte?
Vielen Dank euch.
Wobei 5V meine Referenzspannung des Controllers ist.