pH meterschaal

Software die niet past in bovenstaande onderwerpen
Berichten: 233
Geregistreerd: 23 Okt 2016, 20:29

Re: pH meterschaal

Berichtdoor benvo » 17 Apr 2017, 19:56

Dat had ik natuurlijk begrepen koepel! Dat ga ik dus ook doen!

Nog een vraag koepel.

Op dit moment flash ik mijn bestanden vanuit de computer naar m'n Arduino. Ook mijn software gaat vanuit de Arduino naar de Nextion, als je begrijpt wat ik bedoel. Dit lijkt me ook het meest plezierig, mogelijke wijzigingen kan ik dan doen in de software die ik meer en meer ga begrijpen.

Toch wil ik graag mijn instellingen kunnen wijzigen met het Nextionscherm zodat ik, zonodig, de belichting, temperatuur of pH kan wijzigen vanaf het touchscreen. Een menu is eenvoudig te maken in de Nextion heb ik gemerkt. De klokinstellen werkt al. Maar hoe moet dan mijn denkwijze worden? Ik moet dan denken vanuit de Nextion of kan ik dit vanuit de Arduino beredeneren.

Een voorbeeld:
Mijn verlichting heeft 3 kanalen en elk kanaal telt wel zo'n 10 verschillende helderheidsinstellingen die dan aldus vastliggen:
uur, minuten, lichtsterkte. 9, 30, 127. 9:30 uur staat het licht op zo'n 50% (0=uit, 255 is vol aan.) Soms is het nodig om dit te wijzigen/aan te passen. Maar ja, deze getallen liggen vast in de software (tenzij ik ze daar wijzig en vervolgens weer naar de Arduino flash) dus zou ik graag begrijpen alvorens met de software te beginnen hoe dit zou kunnen werken. Hopelijk maak ik mezelf begrijpelijk?

Groet,
Ben.

Advertisement

Gebruikers-avatar
Berichten: 1134
Geregistreerd: 06 Aug 2016, 01:03

Re: pH meterschaal

Berichtdoor Koepel » 17 Apr 2017, 21:03

Mijn eerste pagina scherm heb ik heel netjes. Ik kan naar een tweede pagina gaan, en daar staan alle instellingen.
Om een waarde te wijzigen heb ik die waarde op het scherm met een pijlje er boven en er beneden, waar ik op kan drukken.
Ik kijk in de Arduino welke knop wordt ingedrukt en dan pas ik die waarde aan en update die naar het scherm. Dat gaat snel genoeg.

Gebruikers-avatar
Berichten: 4381
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: pH meterschaal

Berichtdoor nicoverduin » 17 Apr 2017, 21:07

en als je ze in eeprom stopt kun je ze gewoon weer inlezen als je moet rebooten.
Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 233
Geregistreerd: 23 Okt 2016, 20:29

Re: pH meterschaal

Berichtdoor benvo » 18 Apr 2017, 11:51

Koepel schreef:Mijn eerste pagina scherm heb ik heel netjes. Ik kan naar een tweede pagina gaan, en daar staan alle instellingen.
Om een waarde te wijzigen heb ik die waarde op het scherm met een pijlje er boven en er beneden, waar ik op kan drukken.
Ik kijk in de Arduino welke knop wordt ingedrukt en dan pas ik die waarde aan en update die naar het scherm. Dat gaat snel genoeg.



Dit principe gebruik ik ook nu om mijn klok in te stellen. Een Enhanced Nextion scherm heeft weliswaar een ingebouwde klok maar dit is natuurlijk niet handig als in je sketch gebruik wordt gemaakt van een andere klok. (Mogelijke tijdverschillen.) Dus nu kan ik vanaf de Nextion de DS 3231 die aan mijn Arduino hangt instellen.

Dit filmpje maakt dit wel duidelijk. (Hier staat nog de niet nauwkeurige pH meter op die inmiddels is verwisseld met de schaal zoals die in dit Topic staat.)
https://www.youtube.com/watch?v=S5mZhO5PYt8

Zoiets moet er dus ook komen met temperatuur instellingen, licht en vooral pH.
De laatste is belangrijk want naast ijking, pH 7 en pH 4 ijkvloeistof heb ik, moet hier de al of niet benodigde CO2 mee aangevoerd worden.

Groet,
Ben.

Berichten: 233
Geregistreerd: 23 Okt 2016, 20:29

Re: pH meterschaal

Berichtdoor benvo » 18 Apr 2017, 12:07

Verder zijn er nog een paar vragen. Kun je in een sketch meerdere vertragingen inbouwen zonder delay dus volgens het "Blinck without Delay principe"? Het gaat hierom, in mijn sketch maak ik al een keer gebruik van dit idee doordat ik een "waarschuwings lampje" gebruik op mijn Nextion scherm. Dat werkt alleen bij noodzaak, zal dus niet zo vaak zijn als het goed is. Dus de vraag is kan ik deze techniek in één sketch vaker gebruiken? Nu heb ik het probleem dat de wijzer op mijn pH meter behoorlijk trilt. Ook hier zou ik dus de zelfde vertraging willen toepassen. Maar deze vertraging zal dus constant gebruikt worden! Dus de millis schakelen niet terug naar nul zoals wel gebeurd bij het voorgaande voorbeeld omdat daar de vertraging opnieuw wordt ingeschakeld telkens als er een probleem is? Krijg ik bij het laatste voorbeeld dan wel last van het 49 dagen probleem?

Dank je wel,
Groet,
Ben.

Gebruikers-avatar
Berichten: 4381
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: pH meterschaal

Berichtdoor nicoverduin » 18 Apr 2017, 14:24

Je kan er wel 1000 maken..

ff voorbeeld:

in de setup"

cpp code
//
// deze variabelen moet je nog wel benoemen buiten de functies als globals
// timerx_loopt is een boolean. De andere is een uint32_t
uint32_t nu = millis();
timer1 = nu;
timer1_loopt = true;
timer2 = nu;
timer2_loopt = true;


en dan in de loop:
cpp code
uint32_t nu = millis();
//
// kijk of timer 1 loopt
//
if (timer1_loopt){
if (nu - timer1 > 1000) {
//
// deze timer loopt een keer per seconde
//
timer1 = nu; // restart timer 1
timer1_loopt = true; // timer1 loopt
}
}
//
// kijk of timer2 loopt
if (timer2_loopt) {
if (nu - timer2 > 2000) {
//
// timer2 is verlopen dus doe je ding
//
timer2_loopt = false; // de timer stopt na de eerste keer verlopen.
}
}
Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 233
Geregistreerd: 23 Okt 2016, 20:29

Re: pH meterschaal

Berichtdoor benvo » 18 Apr 2017, 18:15

Duidelijk, dank je wel Nico!

Kun je misschien nog iets zeggen over dat 49 dagen verhaal? Moet ik daar rekening mee houden als ik een vertraging maak in mijn pH meting die immers constant door zal lopen?

Groet,
Ben.

Gebruikers-avatar
Berichten: 1134
Geregistreerd: 06 Aug 2016, 01:03

Re: pH meterschaal

Berichtdoor Koepel » 18 Apr 2017, 20:12

Wanneer je unsigned long gebruikt en altijd "huidige millis min vorige millis" doet, dan gaat het rekenkundig goed. Zelfs tijdens de rollover van millis().

Daar is een test-sketch voor: http://playground.arduino.cc/Code/TimingRollover#arithmetic.
Een byte kan maar tot 255 tellen, en als dat byte een rollover heeft (na 255 doordraait naar 0), dan geldt: 4 - 250 = 10
Om dat te begrijpen kun je die test-sketch eens proberen.

Die "vorige millis" noem ik vaak een "timestamp". Het is een stempel van de tijd die onthouden moet worden. Die wordt onthouden om later die "huidige millis min vorige millis" te kunnen doen.

Om de ruis uit je pH metingen te halen, heb je een filter nodig, geen vertraging. Natuurlijk geen filter in het water rondom de pH sensor ;) maar een software filter om het gemiddelde van een aantal metingen te berekenen.

Vorige

Terug naar Overige Software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 1 gast