Hallo zusammen,
Ich baue gerade eine Teezubereiteanlage mit Tsic 206 mit digitalem
Zacwire-Ausgang, und ATmega8. Klappt bis jetzt alles super, nur wenn ich
das Ding in kochendes Wasser halte, zeigt mein LCD-Display maximal
54°C...
Hab den Sensor "sowieerist" ins Wasser gehalten, und auch mit
Mini-Reagenzglas wassergeschützt, da kommt er dann nur auf 45°C.
- Hab auch die Fahrenheit-Celsius umrechnung ausgeschaltet, gleiche
Werte
- Hab mich peinlich genau an das Zacwire-Prot gehalten, nur das Parity
Bit ignoriert
- wichtiger Codeschnipsel ist die Startbitlängenmessung, hab ich so
realisiert:
1 | ISR(INT0_vect)
|
2 | {
|
3 | switch (extintstatus) //Status "wo bin ich gerade im Protokoll"
|
4 | {
|
5 | case 0: //wenn Startbit-Längenmessung aktiv sein soll
|
6 | {
|
7 | TCNT1H = 0; //Zähler löschen
|
8 | TCNT1L = 0;
|
9 | TCCR1B |= (1 << CS11); //starte Timer
|
10 | TIMSK &= ~(1 << OCIE1A); //Interrupt bei Compare Match deaktivieren
|
11 | MCUCR |= ( 1 << ISC00 ); //External Interrupt auf steigende Flanke
|
12 | extintstatus=1;
|
13 | break;
|
14 | }
|
15 | case 1: // wenn Startbit-Längenmessung fertig
|
16 | {
|
17 | TCCR1B &= ~(1 << CS11); //stoppe Timer
|
18 | OCR1AH = TCNT1H; //Referenzlänge in Compare Register kopieren
|
19 | OCR1AL = TCNT1L;
|
...usw.
Warum zeigt dieser Sensor nicht mal höhere Temperaturen an? In
nicht-mehr-kochendem Wasser sollten doch zumindest so 80°C mal drin
sein...
Könnte denn ein Codefehler sein, der bei ~20°C supper geht, aber dann ab
40°C oder so nicht mehr? Ich hab in anderen Threads gelesen, dass das
passieren kann, wenn man das Startbit nicht jedesmal ausliest, aber das
tue ich bei jeder Auslesung von Bytes....?????????????????????????
?????????
so was komisches....
Viele Grüße