Go Down

Topic: 1130 pH en ORP metingen conflict met Arduio VCC (Read 703 times) previous topic - next topic

JosRi

Jul 02, 2018, 02:24 pm Last Edit: Jul 02, 2018, 02:27 pm by JosRi
Hallo, ik ben een project aan het ontwikkelen waarbij ik waterkwaliteit van mijn aquarium wil bepalen aan de hand van de volgende parameters:
1e: Licht intensiteit
2e: Temperatuur
3e: pH
4e: ORP

voor de pH en ORP maak ik gebruik van de phidgets 1130 ph/orp controllers; een voor de pH en een voor de ORP, en voor de temperatuur maak ik gebruik van de digitale DS18b20 temperatuur sensor.
Het licht meet ik door middel van een LDR.
De twee 1130's zijn met een piggyback op de Arduino verbonden, de temperatuursensor en de lichtsensor heb ik op een printplaatje op de standaard Arduino wijze gesoldeerd.

En nu mijn probleem:
Zodra het licht van het aquarium aan of uitschakelt verschieten de pH en ORP metingen naar een hogere, respectievelijk lagere, waarde.
Nu heb ik al het een en ander proberen uit te zoeken, en ik kwam (o.a.) uit op "Ground Loop" dat voor problemen kan zorgen. Met testen van de opstelling waarbij ik de Arduino eerst op de voeding van de USB poort van mijn laptop liet draaien en de laptop op netvoeding blijkt dat de sprong in de metingen van de pH en de ORP 1130's voor te komen. Ook als ik de Adruino op een externe voeding laat werken doen zich de sprongen in de meetwaarden voor.

Als ik vervolgens de laptop op batterijvoeding laat draaien, en dus ook de Arduino met de sensoren, doet zich deze sprong in de metingen niet voor.

Het zou dus voor de hand liggen om de Arduino met de sensoren op de batterij te laten werken, maar helaas is dat geen optie omdat deze dan na ongeveer een uur de geest geeft. En ik wil de waterwaarde continue, minimaal een maand, meten om de correlatie tussen de waterwaarden te kunnen bepalen.
Dus ik heb een permanente voeding op de Arduino nodig, hetzij vanaf de USB aansluiting, hetzij de externe Arduino aansluiting.
Op het bijgevoegde plaatje kun je zien dat de meetwaarden plotseling naar beneden of naar boven springen...

Mijn vraag: Heeft iemand een idee hoe ik dit kan oplossen?


MAS3

Hoi.

Je beschrijving van de hardware is mij niet duidelijk.
Ik vermoed dat je alles uit de Arduino voedt.
Maar wat "de standaard Arduino wijze" is, daar heb ik geen idee van.

Als je alles uit de Arduino voedt, dan kan het zijn dat op een gegeven moment de Arduino te veel stroom moet leveren, en dat kan het ding dus niet.
Daarvan kunnen je sensoren dus een andere waarde gaan verzenden, maar de Arduino kan een eventueel wel correct signaal ook verkeerd beoordelen.
Dan is de oplossing dan dus simpel: zorg voor een aparte, externe en stabiele voeding voor alle onderdelen van je schakeling.

Laat zien hoe je schakeling nu is.
Have a look at "blink without delay".
Did you connect the grounds ?
Je kunt hier ook in het Nederlands terecht: http://arduino.cc/forum/index.php/board,77.0.html

JosRi

#2
Jul 04, 2018, 09:38 am Last Edit: Jul 04, 2018, 09:44 am by JosRi Reason: Sketch als bijlage toegevoegd.
Hallo MAS3,
dank voor jouw reactie.

Met "standaard Arduino wijze" bedoel ik dat ik simpelweg een LDR met een 10K weerstand een spanningsdeler heb gemaakt, en ik daarmee een meetwaarde voor de lichtintensiteit kan krijgen. Het gaat mij niet om een exacte lichtwaarde, maar of het licht "aan" of "uit" is.

En inderdaad, een van mijn uitvoeringen bestaat uit de voeding vanuit de USB van de laptop.
Maar omdat ik al een vermoeden had dat dit te weinig kon zijn, heb ik de Arduino ook getest met een externe DC voeding van 12 volt. Daarbij komt dat er nauwelijks vermogen van de Arduino wordt gevergd; de enige actieve componenten zijn een pH sensor, een ORP sensor, de temperatuur sensor en de LDR.

Ook daar gebeurde het dat de meetwaarden bij het omschakelen van de aquarium verlichting een sprong omhoog of omlaag maakt.

Ik zie maar een situatie waar dit niet gebeurd: als ik de Arduino op de USB van de laptop laat werken terwijl de laptop op accuvoeding draait.
Mijn conclusie is dus (maar graag correctie als dit niet juist is) dat er of iets van interferentie is, of dat er iets van een "ground loop" bestaat. En omdat ik deze metingen in een langdurig tijdbestek wil uitvoeren (minimaal een maand, maar liefst onbeperkt) is de accu voeding van de laptop ten ene male ontoereikend.

Ik wil mij sketch graag bijvoegen, maar die tamelijk groot. Ik moet even uitzoeken hoe ik deze als bijlage in deze post kan plaatsen....

Dank voor iedere suggestie om dit probleem op te lossen.

MAS3

Het verschil tussen voeden uit een 12 volt via de voedingsplug van de Arduino en voeden via de USB aansluiting, is de spanningsregelaar.

Die spanningsregelaar maakt de 5 volt die je Arduino nodig heeft.
Om van 12 volt naar 5 volt te gaan, zal er dus in ieder geval 7 volt moeten worden weggegooid.
Das dus zo'n 60 procent en veel werk voor die regelaar.
Zoals eerder gezegd, wanneer je die 5 volt gaat gebruiken voor je gehele set up, kan het wel eens zijn dat dat ietsje teveel van het goede gaat worden.

Aangezien je USB al 5 volt heeft, hoeft die spanning niet meer geregeld te worden en doet dat ding in dat geval niet mee.

Dus blijft het eerdere advies staan.
Voed het geheel uit een separate 5 volt voeding, en sluit die 5 volt voor je Uno aan op de VIN pin in plaats van op de ronde voedingsstekker.
Sluit iedere module apart aan op de 5 volt, en niet via het Arduino boardje.

Koop een multimeter als je die nog niet hebt, en oefen hoe je dat ding het best gebruikt.
Het zal je inzicht geven in wat ik hierboven beschreven heb.
Have a look at "blink without delay".
Did you connect the grounds ?
Je kunt hier ook in het Nederlands terecht: http://arduino.cc/forum/index.php/board,77.0.html

Pythia

Dank voor jouw uitleg MAS3.

Ik heb een multimeter (een hele beste trouwens) en ik had de externe voeding direct al uitgeschakeld omdat de Arduino gloeiend heet werd. Dat had ik dus al onderkend.

Jouw advies:
"
Dus blijft het eerdere advies staan.
Voed het geheel uit een separate 5 volt voeding, en sluit die 5 volt voor je Uno aan op de VIN pin in plaats van op de ronde voedingsstekker.
Sluit iedere module apart aan op de 5 volt, en niet via het Arduino boardje.
"

Ik moet uitzoeken hoe ik dit advies moet opvolgen; ik heb nooit eerder spanning via VIN op mijn arduino's gezet...
Jouw tweede opmerking "Sluit iedere module apart aan op de 5 volt, en niet via het Arduino boardje." begrijp ik niet helemaal, maar ik vermoed dat je bedoelt dat de voeding voor de sensoren middels een externe spanningsbron geleverd moet worden. Dat wordt dus printplaatjes en circuitjes solderen.... vrees ik.

Wordt vervolgd......
Dank je wel voor zover.

Groet,
Jos

MAS3

Je kunt 1 voeding gebruiken wanneer die voldoende stroom kan leveren.
Maar wat je beter niet gaat doen, is die bron aansluiten op je Arduino, en vervolgens je module van die aansluiting aan de Arduino aftakken.
Dus ook niet van een 2e VIN pin als die aanwezig zou zijn.
Leg dan een 2e draad van de voeding naar je module.
Ik denk niet dat je daarvoor hoeft te gaan solderen en printen maken.
Have a look at "blink without delay".
Did you connect the grounds ?
Je kunt hier ook in het Nederlands terecht: http://arduino.cc/forum/index.php/board,77.0.html

Go Up