Hi, folks.
I have a problem.
First what is working:
I have a DHT11 sensor working on an Arduino Uno v3. Via serial I can
read out the correct values of humidity and temperature. So far no
problem.
What is not working:
Instead of an Arduino Uno I wanna use an Attiny44 or Attiny84. So I
connected everything in the correct manner and programmed the Attiny
with the Arduino Uno, which worked out fine.
However The humidity readings always give out the value "1". I dont use
serial or software serial but only a green LED to give the value. Thus,
I know that the readings are not correct.
I use the Attiny with 8MHz clock, so the DHT library should work. I use
the standard DHT library from the arduino.cc page.
Can anyone think of what's the problem?
Thanks in advance guys!
The crystal ball says, there is an error in line 42.
"I did everything right. But it doesn't work. And I'll not tell you
exactly what I did".
Did you really expect a different kind of help?
I did at least expect a non-sarcastic answer, or a more polite way of
requesting more information.
Anyway,
here is the kind of code that I use. The humidity check does not work,
since the value humidity read out is "1" and not the correct value:
I am using that code on the Attiny setup:
Do you really expect someone to spend at least 30min on someone elses
code for nothing?
Debug it yourself. And ask specific questions.
Start from scratch, if necessary.
Eine ganz andere, dumme Frage: Aus den deutschen Kommentaren schließe
ich, dass Deutsch deine Muttersprache ist. Warum schreibst du dann in
einem deutschen Forum deine Fragen in Englisch?
Im Arduino funktioniert alles (sagst du). Wenn du einen anderen CPU Typ
nimmst, funktioniert nur die Temperatur und nicht die Feuchte (so
interpretiere ich deine Fehlermeldung).
Daraus würde ich schließen, dass der Fehler in der DHT11-Lib liegt, dass
dort etwas sehr CPU spezifisch geschrieben ist.
Andererseits ist diese Zeile
val4=DHT11.humidity;
verdächtig. Denn in der Arduino Version liest sie sich als
val4=DHT11.humidity();
Und dein Compiler gibt dir keine Warnung? Du machst aus einer
Funktionsadresse offenbar einen Float Wert. Seltsam. Aber Arduino ist
nicht so ganz meine Welt.
@Georg:
Wenn man "Neuer Beitrag" anklickt, erscheint ein Hinweis, dass, wenn man
den Beitrag auf Englisch schriebe, eine größere Zielgruppe angesprochen
würde. Habe aber verpeilt, dass ich dafür das andere Forum bzw. den Link
hätte anklicken müssen ;). Daher war der Beitrag auf Englisch.
Ich vermute auch, dass die Funktionsweise CPU-spezifisch ist. Ich kriege
stets den Wert "1" bei den Attiny44, 84 und 85 raus. Einen Atmel habe
ich nicht zur Hand, vermute aber, dass es, wie beim Arduino,
funktionieren würde.
Danke für den Hinweis. Der Unterschied im Befehl "()" liegt daran, dass
ich im Code beim Arduino setup eine andere DHT lib verwende als für das
Attiny setup. Ich habe aber beide libs bei beiden setups ausprobiert.
Immer das gleiche Problem.
Ich vermute, dass es was mit der seriellen Kommunikation zu tun hat. Das
kann ich aber gerade nicht testen, da ich kein Kabel dafür zur Hand habe
(also vom Steckbrett von den Pins zum USB Port am PC). Ich schätze, man
kann die Signale über das Arduino zum PC weiterleiten. Ich muss mich da
aber erst mal rein lesen. Hätte ja sein können, dass bereits jemand auf
dieses Problem gestoßen ist.
Der DHT11 ist sehr kritisch im Timing. Warum stoppst du nicht die
serielle Kommunikation, redest mit dem DHT11 und schaltest dann die
Kommunikation wieder ein?