Eigenartiges Verhalten Arduino

Dec 15, 2013 17 Replies

Liebe Gemeinschaft.



Aus meinen anderen Fragen kan man sich herleiten was mein Problem ist, wer nicht mitgelesen hat volgendes:



Ich habe auf einem Arduino Mega basierend einen Wärmetauscher entwickelt. Der Arduino misst und regelt.



Unter anderem misst er mit diversen VOC Sensoren (TGS2600 TGS2602) die Luftqualität.



Was nun passiert ist, dass der VOC sensor, mit dem Testprogramm ausgelesen, Spannungen um die 3,5V (ca. 850 bit) liefert. Sobald ich das Wärmetauscherprogramm hoch lade, gibt der Arduino plötzlich 1024 bit aus, was jedoch unmöglich sein sollte.



Was das Testprogtamm tut, A8 und A11 auslesen, A8 tut alles wieer es soll, A11 gibt plötzlich falsche Messwerte.



A0 und A1 sind mit Potentiometern belegt, werden alle 300ms ausgelesen. A2 - A5 sind NTC Temperatursensoren, Messungen stimmen. A6 und A7 ehemals Hallsensoren * A9 und A10, FLW-122 - zur Zeit nicht aktiv A12 - Referenzspannung für die Winkelberechnung der Hallsensoren A13 und A14 Hallsensoren


  • Hallsensoren - die Verkabelung ist sauber - der Sensorausgang des Hallsensors1 geht direkt auf A6, der des Hallsensors2 auf A7 - keine Kopplung zwischen beiden. Sobald ich den Arduino gestartet habe, wat ein Kurzschluss zwischen A6 und A7 - ich dachte an einen Defekt im Arduino und habe die Hallsensoren auf A13 und A14 gelegt - dort funktionieren sie gut.




Nun, was kann das verhalten des Arduino erklären, dass er mit dem einen Programm A11 gut und richtig ausliest, und mit dem anderen nicht?


Micha


Und so sprach MichaF:

Hatte ich auf einem MSP430 schon mal mit IRQ-gesteuertem auslesen. Ich hatte mehrere verschiedene Quellen, welche zu verschiedenen Zeitpunkten aus einem TImer heraus aktiviert wurden. Und dann aufgrund des entsprechenden Flags aus der IRQ-Routine die Werte ziehen.

Ich hatte schlicht die flaschen Kanäle zu den Flags gelesen. Da haben einige plausibel klingende Werte gebracht und etliche 0xffff.

Roland

Schaltest Du zwischen den Messungen die Referenzspannung um?

Wenn ja dauert das je nach Kondensator am AREF-Pin evtl. zu lange.

cu Michael

MichaF schrieb:

Ist der Pin auch wirklich als Eingang eingerichtet?

Am 16.12.2013 08:17, schrieb Edzard Egberts:> MichaF schrieb: >> Sobald ich das Wärmetauscherprogramm hoch lade, gibt der Arduino >> plötzlich 1024 bit aus, was jedoch unmöglich sein sollte. > > Ist der Pin auch wirklich als Eingang eingerichtet? >

Ihr wart beide sehr nah dran!

Ich war (wie schon so oft) selber doof! Ich hab ne schöne stabile externe Referenz dran gebaut, die mir (laut Datenblatt) 5,00V liefern sollte. Nur nachgemessen habe ich sie nicht ... letztendlich lieferte sie 3,7V (warum auch immer ...) . Das Testprogramm lief mit externalreference(DEFAULT); also mit der internen und gab daher vernünftige werte aus.

Alle anderen Spannungen an allen anderen Analogen Eingängen waren (weit) unter 3,7V, gab also plausible werte zurück, aussser dieser TGS2600, wer gab 3,8V.

Also Leute - ALLES nachprüfen, auch nen LM317 ...

Micha

Und so sprach MichaF:

LM317 != Referenz. Das Ding ist viel zu instabil. Da büßt du locker 2, wenn nicht gar 3 Bit deiner Auflösung ein..

Roland

Am 16.12.2013 22:00, schrieb Roland Ertelt:

Ich habe dadurch, dass ich eine externe Referenz aufgeschaltet ohne den Arduino AnalogReference(EXTERNAL) zu geben - das hat mir wohl innen was zerhauen. Jetxt - ohne externe Referenz und ohne USB angeschlossen kommt mein

5V-Output auch nur auf 3,74V. Mit USB anschlossen ist alles in Ordnung - Werte gut, 5V-Out = ca. 5V.

Micha

Und so sprach MichaF:

Mit einem neuen Chip..?

schalten?

Ansonsten: 5V CMOS/TTL nachschalten. Dann sinds wieder 5V.

Roland

Am 17.12.2013 19:01, schrieb Roland Ertelt:

was meinst du mit CMOS/TTL nachschalten?

als erste Amtshandlung werde ich wohl die Berechnungen auf 3,74V

benutzen :) )

doof isses halt nur mit dem VOC-Sensor, der mir ca. 4V ausgibt - aber

Micha

Und so sprach MichaF:

Gegenfrage: Wo kommen jetzt nur noch die 3,74V raus. Aus deinem LM317?

Roland

Am 17.12.2013 21:15, schrieb Roland Ertelt:

LM317, sondern ein LM87-05 ... der hat einen 4,7k Ausgang auf GND als

Ich hab noch einen LM317-5 rumliegen, der bringt zwar mehr als 1A, aber mit dem kann ich testen ob ich die referenzspannung hoch kriege.

Laut Arduino ReferenzManual ist noch ein 32k am Eingang, und man soll 5k

... diesen Widerstand gabs nicht :( ) Naja, lange Rede kurzer Sinn, ich muss rund 7,3V drauf gemeb, damit ich mit dem Spannungsteiler 5k-32k auf 5V komme.

5V externe Referenz verwenden?

Und so sprach MichaF:

Wieviel V geht in den 7805 rein? Der Lastwiderstand ist bei modernen

Stromzufluss anhebt.

Dann ist dort irgendwas schon durch. Der Referenzeingang sollte im

Zentivolt zu "verlieren", weil einige Bauteile nicht bis an die Versorgungsspannung kommen.

Max.

Roland

Am 17.12.2013 21:59, schrieb Roland Ertelt:

der LM7805 kriegt 12V, genau wie der Arduino. Der Arduino liefert jedoch keine 5V, die Spannungsversorgung der

nicht angeschlossen ist. ich gehe mal davon aus dass der kaputt (gegangen?) ist.

Referenz), allerdings waren die Messwerte sehr instabil. Daher habe ich

Nun gut, version 0 Arbeitet, wenn auch nur schlecht - und ein neuer

Okay - am USB Stecker ist alles fluffig, also kann der als Experimentierplattform dienen.

Leerlauf? Ich weiss nicht, ob Du das beachtest hast: Der LM317 braucht je nach Version 5-10mA Mindeststrom, sonst funktioniert er nicht recht. Wenn das nicht anderweitig gewaehrleistet werden kann, macht man das meist durch entsprechend niederohmige Auslegung des Spanunngsteilers am ADJ Eingang.

[...]
Gruesse, Joerg http://www.analogconsultants.com/

Hallo Joerg,

ja, der LM8705 hat einen Lastwiderstand. Und Leerlauf auch nur weil er quasi deaktiviert ist ...

Und so sprach Joerg:

5..10mA sind schon lange vorbei.

den ADJ schon fast zusammen.

LED mit 1..3mA sitzen... Man will ja was sehen ;-)

Roland

MichaF schrieb:

Mittelwert nehmen. Ich habe hier z.B. eine Temperaturmessung mit dem

ist rein gar nichts instabil.

Referenz.

Am 18.12.2013 08:54, schrieb Edzard Egberts:

Du hast recht ... Nachdem ich herausgefunden habe, dass ich gepfuscht habe, und der

Referenzspannung wieder 5V. Kaputt ist da garnichts, alles in Butter.

Das aref-thema habe ich nur angepackt wegen (siehe Thema "ich habe angst vor opamps" ) dem FLW-122.

formatting link

) mit bis 0,5V Spreizung. das war gleichbedeutend mit 0 oder 25%

Ein Vorschlag war die Referenzspannung sehr konstant zu halten, das schien mir sowieso eine sehr gute Idee.

Jetzt habe ich mal nachgemessen - die Referenzspannung des Arduino ist konstant genug.

Nun werde ich (wahrscheinlich nach Neujahr) die o.g. Opampschltung mal versuchen zu verstehen, und ggf. an zu passen. Diesmal auf nem Steckboard ;)

Micha

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required