[Solved] Probleem met tijdelijk lagere reference voltage

Hallo,

Ik heb een probleempje. Ik wil graag de temperatuur (TMP36) om de twee seconden uitlezen en samen met tijdstip (en output van een photoresistor) opslaan op een SD kaart. Het loggen (dus elke twee seconden data opslaan) kan gestart en gestopt worden met een knop. Zie hieronder de sketch:

Alles werkt in principe naar behoren. Het enige probleem is dat na het drukken op de knop waardoor data.txt dus geopend wordt en het meten+loggen begint de reference voltage (aref t.ov. gnd) van 4.99 daalt naar 4.91 volt (waardoor de temperatuur dus te hoog is).

Dit duurt even (meerdere foute meetwaarden) en daarna stijgt de reference voltage weer naar 4.99 volt waarnaa deze gewoon stabiel blijft. Lijkt me niet dat het dus met het schrijven naar de SD kaart te maken heeft. Als je op de knop drukt waardoor data.txt gesloten wordt en het meten+loggen stopt blijft de multimeter ook gewoon 4.99 volt aangeven. Druk je daarna weer op de knop (waardoor data.txt dus weer geopend en het meten+loggen hervat wordt) dan daalt de reference voltage weer naar 4.91 volt, waarna hij na een paar metingen weer stijgt naar 4.99, etc.

4.99 > 4.91 > 4.99 geldt wanneer ik de arduino van stroom voorzie via een 5 volt/2 ampere telefoon oplader. Maar ook bij een 9 volt batterij of usb-poort vanuit mijn PC is het probleem aanwezig. In die gevallen is de reference voltage sowieso een stukje lager.

Weet iemand wat ik hier aan kan doen?

Ik zou het toch in de voeding zoeken... Heb je ook de voeding van de Arduino gemeten op de momenten dat de referentiespanning lager is? En, test het eens met aparte voedingen voor de Arduino en de kaartlezer?

PS.: Uit de tekst op analogReference() - Arduino Reference begrijp ik dat de AREF-pin een input is voor een externe ref.-spanning. Ook staat er “After changing the analog reference, the first few readings from analogRead() may not be accurate.”. Het zit dus net iets anders dan ik meende te weten…

Hoe kom je trouwens aan 4.99 volt? Gebruikelijke waarden zijn 1.1 en 2.56 V (voor de Uno), met 4.99 it je zo dicht tegen de 5V van de voeding aan dat er ahw. niets meer te regelen valt…

Nog iets: bij mijn Uno-kloon meet ik bijna niets op AREF; heb jij er soms een weerstandsnetwerkje op aangesloten?

Het gaat ook om een uno-kloon inderdaad. De standaard reference is volgens mij 5 volt. Tijdens het uitlezen van de analogRead() geeft de multimeter 4.91/4.99 volt aan (+ op de aref, - op de gnd).

Arduino Reference: DEFAULT: the default analog reference of 5 volts (on 5V Arduino boards) or 3.3 volts (on 3.3V Arduino boards)

Dit is dus de standaard waarde. Door de pin anders te gebruiken, kun je interessante dingen doen met je A/D converter, maar dat is hier dus niet van toepassing. De voeding op je Arduino board, is alleen bedoeld voor dat Arduino board. Je kunt er ook een LEDje mee voeden, maar als je dat soort dingen teveel doet, zal de voeding instorten. Aangezien je daar nu schijnbaar last van hebt, is het eerder gegeven advies goed: Gebruik een aparte voeding voor de andere zaken (en zorg er uiteraard voor dat alle GNDs (de minnen) aan elkaar liggen). Zou je dan nog dezelfde problemen hebben, dan zou je eens kunnen uitzoeken of er wellicht condensatoren zijn weggelaten op dat alternatieve boardje van je. Die kun je dan zelf toevoegen, of ervoor kiezen een iets duurder boardje te gaan gebruiken. Je kunt hier (klik !) het officiële Uno R3 schema als PDF bestand downloaden van deze site. Wanneer je daar mee uit de voeten kunt, kun je bekijken wat de verschillen met jouw board zijn.

Het probleem is al verholpen, zie: https://forum.arduino.cc/index.php?topic=704913.msg4737011

Bedankt allemaal!

Blijkbaar ben je uitstekend in staat de engelse tekst te begrijpen. Ik heb daar veel meer moeite mee. Zou je voor mij in nederlands jip en janneke taal kunnen uitleggen wat de engelstallige oplossing van het probleem is?

Vast bedankt.

Nou Frits, daar kan google translate je best mee helpen hoor.

Dit is de tekst vertaald door google translate:

wawa: Als je een Uno hebt en je wilt temperaturen hoger dan ~ 55C lezen, dan kun je een geschikte weerstand aansluiten tussen de Aref-pin en de 3,3 volt-pin, en Aref instellen op EXTERN. De weerstand moet Aref laten zakken tot ~ 1,75 volt, dus je kunt meten tot 125C. Het zou nu de hogere stabiliteit moeten hebben van de (ongebruikte) 3.3 volt voeding.

De reactie was welke weerstand dan de juiste zou zijn, en daar had wawa ook een antwoord op:

wawa: Probeer 27k of 33k en meet de Aref-pin-spanning met een digitale voltmeter. Of kijk wat de A / D oplevert bij verschillende temps (smeltend ijs, kamertemperatuur, kokend water). Leo ..

Mijn Uno meet 1,64 volt met een weerstand van 33 k.

Ik zou niet weten hoe dit duidelijker uit te leggen dan dat.

Met dank aan wawa (Leo).