1023 of 1024

Arduino specifieke Software
Gebruikers-avatar
Berichten: 256
Geregistreerd: 05 Apr 2018, 00:44
Woonplaats: ALKMAAR

1023 of 1024

Berichtdoor Gompy » 18 Nov 2019, 22:27

Ik kom deze twee verschillende waarden tegen voor de zelfde sketch, maar wat is waar ?
In mijn gedachten moet het 1023 zijn want 0 t/m 1023 - 1024 bit.
Op het Engelse forum werd iemand gecorrigeerd door het gebruik van 1024, dat moest 1023 zijn werd gezegd.

Het ging om deze sketch, maar ik ben ook elders 1023 tegen gekomen ipv 1024.
http://henrysbench.capnfatz.com/henrys- ... n-arduino/

Advertisement

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

Re: 1023 of 1024

Berichtdoor Koepel » 18 Nov 2019, 23:56

Ha ha ha, dat is een oude welles-nietes discussie :lol:
Het scheel maar 0.1%, dus ach, zoveel maakt het niet.

Maar stel dat je het voltage van iets wilt meten, en je wilt precies het voltage kunnen berekenen, en je neemt het gemiddelde van 100 samples om zo precies mogelijk te zijn. Hoe hoort het dan :?:

Antwoord: Het is 1024, en tel er ook nog een halve bit bij op :ugeek:

Er zijn 1024 stappen, dus het bereik (de 'range') is 1024. Daar reken je altijd mee als je iets wilt omzetten.
De ADC kan net geen 5V meten, dat zou de 1025-ste stap zijn. Dus een waarde van 1023 komt overeen met een voltage net onder 5.0V, of anders gezegd een voltage tot 5.0V.
Het bereik (de 'range') is echter wel 5V. Daar reken je altijd mee als je iets wilt omzetten.

De ADC (analoog naar digitaal converter) werkt zo, dat hij pas van 0 naar 1 springt als dat voltage bereikt is.
Bij een analog referentie van 5V is de resolutie (stapgrootte) 4.88mV.
Stel dat de ADC (via analogRead) een 0 terug geeft. Dan kan het voltage tussen de 0 en 4.88mV liggen. Dat is dus gemiddeld 2.44mV.
Pas bij het voltage van 4.88mV maakt de ADC een stap van 0 naar 1.
Geeft de analogRead() een 0 terug, dan staat er op de ingang gemiddeld 2.44mV, dat is een halve bit.

Het wordt dus:
cpp code
int rawADC = analogRead( A0);
float voltage = ( (float) rawADC + 0.5) / 1024.0 * 5.0; // voltage in Volt


Dat is een beetje raar, want een integer waarde van 0 tot en met 1023 met een halve bit verhogen is twijfelachtig.
Dus dit is normaal:

cpp code
int rawADC = analogRead( A0);
float voltage = float( rawADC) / 1024.0 * 5.0; // voltage in Volt


Als je echter het gemiddelde van 100 samples neemt, dan tellen de halve bits op tot een totaal van 50. Daar kun je wel rekening mee houden.

cpp code
int n = 100;   // aantal samples
long total = 0; // alles bij elkaar optellen
for( int i=0; i<n; i++)
{
total += (long) analogRead( A0);
}
total += n / 2; // de halve bits er bij optellen
float voltage = float( total) / 1024.0 * 5.0; // voltage in Volt


Dit hele lange verhaal is vast nog niet lang genoeg voor je :lol: Hier staat het nog eens: https://www.gammon.com.au/forum/?id=12779&reply=1#reply1.

Iemand die "1024" zegt, die begrijpt wiskunde en weet hoe de ADC werkt. Iemand die "1024 plus een halve bit" zegt is een nerd :lol:

De ADC in de Arduino Uno is maar 10 bit, maar is zeer lineair. Dat is behoorlijk goed voor een eenvoudig Arduino board. De ESP8266 en ESP32 komen daar nog niet eens bij in de buurt.

Gebruikers-avatar
Berichten: 256
Geregistreerd: 05 Apr 2018, 00:44
Woonplaats: ALKMAAR

Re: 1023 of 1024

Berichtdoor Gompy » 19 Nov 2019, 01:11

Duidelijke uitleg, zowel van jou als op die website.

Ik was een beetje aan het meten met een multimeter wat mijn test zonnepaneeltje (5 V / 1 A) afgeeft aan mA welke op mijn bureau staat.
Aangezien het maximale maar 1000 mA is bij volle zonneschijn (wat eigenlijk nooit voor komt) moet ik wel in mA rekenen.
Daarnaast heb ik alleen positieve mA en geen negatieve want het paneeltje levert alleen maar en verbruikt niet.
Het voorbeeld van deze site is eigenlijk een beetje teveel van het goed aangezien het laden en ontladen meet.
https://microcontrollerslab.com/acs712- ... g-arduino/

Het test paneeltje draait op een powerbank welke met het paneeltje weer geladen wordt, soort selfsupport om mensen te laten zien wat zonnepanelen nu eigenlijk opleveren.....en dat is minder rooskleurig dan de foldertjes aangeven (vooral in de wintermaanden).
Mijn grote paneel van 100Wp dat buiten staat geeft op het ogenblik maar 10 a 15Wp en dat valt me een beetje tegen :shock:

Morgen komt de ACS712 5Amp binnen en kunnen we aan de slag, nu was het eerst even inlezen en dat gaf wat verwarring :D

Gebruikers-avatar
Berichten: 241
Geregistreerd: 22 Jan 2013, 16:40

Re: 1023 of 1024

Berichtdoor zuid » 19 Nov 2019, 09:40

Ik zou voor een oplossing gekozen hebben zonder discussie over 1023 of 1024 :D
https://hackerstore.nl/Artikel/1140
Welke nadelen zijn hieraan verbonden?

Mijn grote paneel van 100Wp dat buiten staat geeft op het ogenblik maar 10 a 15Wp en dat valt me een beetje tegen

Troost je met: mijn zonnepanelen op ons dak met totaal 3600Wp hadden gisteren een dagopbrengst van totaal 0,5kWh

Gebruikers-avatar
Berichten: 256
Geregistreerd: 05 Apr 2018, 00:44
Woonplaats: ALKMAAR

Re: 1023 of 1024

Berichtdoor Gompy » 19 Nov 2019, 10:40

Uhhhh....geen idee welke nadelen, kende dit moduul niet.
Als enige nadeel zie ik dat deze maar tot 2 Ampere aan kan.
Leuk voor mijn bureau setup, maar voor de grotere buiten toch iets te klein.
Buiten is 18 Volt bij 5,5 Ampere (12V / 8A) en dan verwacht ik toch rooksignalen.
https://zonnepanelen.nl/wp-content/uplo ... asheet.pdf

Wat ik wel merk is dat de (nieuwe) solarregulator voor het grote paneel een (hoog) kantelpunt hebben om te gaan laden.
De regulator gaat pas laden als de spanning van het paneel boven de 14 Volt uit komen en dat is bij dit weer een beetje lastig.
Zoals je kan zien geeft het paneel maar een schijt beetje stroom af, daar kan je geen accu mee laden.

En 20 minuten later slaat de regulator om.....

Over 1023 of 1024 kom ik wel heen, heb vannacht in ieder geval goed geslapen :)
Bijlagen
Solarpanel01.jpg
Solarpanel01.jpg (16.84 KiB) 6423 keer bekeken
Solarpanel.jpg
Solarpanel.jpg (13.88 KiB) 6423 keer bekeken

Gebruikers-avatar
Berichten: 241
Geregistreerd: 22 Jan 2013, 16:40

Re: 1023 of 1024

Berichtdoor zuid » 19 Nov 2019, 14:25

Zoals eerder schreef is elektronica voor mij wat lastig.
De module zoals ik die hierboven aangaf wilde ik gebruiken om de status van een accu te meten om deep ontladen te voorkomen.
Dus niet in het laadcircuit maar aan de kant richting esp.
Ik neem aan dat ik daarbij niet tegen die te hoge Ampères aanloop?

Ik dacht aan zoiets:
https://kleinezonnepanelen.nl/nl/zonnepanelen-sets-voor-camper-boot-of-tuinhuisje/monokristal-complete-zonnepaneelset/30-watt-zonnepaneel-set-monokristal-510x455-mm-stuks/a-123-10000070

Gebruikers-avatar
Berichten: 256
Geregistreerd: 05 Apr 2018, 00:44
Woonplaats: ALKMAAR

Re: 1023 of 1024

Berichtdoor Gompy » 19 Nov 2019, 14:51

Dat is ook de bedoeling van mij, het was onduidelijk waarom telkens de accu leeg was.
Nu blijkt dat de regulator (PWM ipv MTTP) een drempel heeft waardoor er pas geladen gaat worden als er genoeg laadstroom is en niet Volts zoals gebruikelijk.

Als je alleen de stroom naar de ESP wilt meten zal dat geen probleem zijn als je maar niet boven de 2 Amp uit komt (mits je geen relais gebruikt met hoge aantrekstroom).

Zit dit moduul in het accu circuit loop je wel tegen (te) hoge stromen aan, want de stroom die je trekt gaat door die 0R1/1W weerstand en die is beperkt op 0,4A x 28V= ~1 Watt.
Stel dat je gaat ontladen met 5 Ampere bij 12 Volt, dan gaat er dus wel 5 Amp ipv 2 Amp door die weerstand en die fikt er gegarandeerd uit.
In dat opzicht kan je beter voor een ACS712 kiezen, die zijn er in 5, 20 en 30 Ampere.
Tevens heeft dit moduul het voordeel dat je zowel laden als ontladen kan meten, alle in vol bereik van moduul.
Dus je kan zowel bv -30 Amp als +30 Amp meten met het zelfde moduul zonder de aansluitingen te verwisselen.
De stroom wordt gemeten door een hallsensor (magnetisch veld) en heeft dus geen enkele invloed op de rest van de schakeling.
De hallsensor kan hooguit over zijn nek gaan bij te hoge stromen, maar daar is ook alles mee gezegd.....hij fikt niet uit zoals die 0R1 weerstand.

Gebruikers-avatar
Berichten: 256
Geregistreerd: 05 Apr 2018, 00:44
Woonplaats: ALKMAAR

Re: 1023 of 1024

Berichtdoor Gompy » 19 Nov 2019, 16:35

Sorry, weerstand is 2 Watt.
https://nl.aliexpress.com/item/33045378 ... 8bed3596e2

Deze kan volgens de beschrijving verandert worden van 0,1 Ohm naar 0,01 Ohm zodat hogere stromen gemeten kunnen worden, maar het blijft éénrichtingsverkeer.

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

Re: 1023 of 1024

Berichtdoor Koepel » 19 Nov 2019, 17:37

Bij de ACS712 is de Arduino gescheiden van de stroom die gemeten wordt. Dat is een heel groot voordeel, dat maakt het veilig en eenvoudig.
Verder heeft de ACS712 alleen maar nadelen: ruis, onnauwkeurig, gevoelig voor magnetische velden, als de draad iets anders gelegd wordt dan wordt er iets ander gemeten, enzovoorts.

De INA219 is nauwkeurig omdat het de spanningsval over een shunt-weerstand meet, maar er is een gezamenlijke GND met de te meten stroom.
Hij kan stroom meten die een spanning heeft van maximaal 26V.

Zijn de GND al met elkaar verbonden, en komt de spanning van de stroomdraad bijvoorbeeld niet boven 12V uit, dan is een INA219 nauwkeuriger.

Er zijn nog meer mogelijkheden: https://www.kiwi-electronics.nl/ada-4226.
Bij de INA260 kan de stroomdraad een spanning tot 40V hebben. De shunt-weerstand zit in de INA260 zelf en kan tot 15A.

Gebruikers-avatar
Berichten: 256
Geregistreerd: 05 Apr 2018, 00:44
Woonplaats: ALKMAAR

Re: 1023 of 1024

Berichtdoor Gompy » 19 Nov 2019, 22:50

Die ACS712 staat te fluctueren als een gek bij het meten van enkele mA.
Ik denk dat het probleem schuilt in de samenstelling van het solarpanel met 5 Volt stabalisator, dan omzetten om 3V7 om lipo te laden en weer een stepup naar 5 volt voor de USB waar de Arduino op zit.
De laadstroommeting wordt gedaan aan de 3V7 lipo, met een 20 Watt halogeenlamp geeft het paneel maar 1,5 a 2,5 mA (gemeten met een universeelmeter) op 1 meter afstand.

Ik ben bang dat de INA219 ook geen uitkomst gaat bieden met deze lage stromen.
Ik denk dat ik beter het Voltage direct aan het paneel kan gaan meten en bv de spanningsval over een paar weerstanden als referentie kan gebruiken.

Wat betreft de 1023.0 / 1024 * 5.0 om aan de 4.9951171 Volt te komen maakt geen verschil voor de stabiliteit van de ACS712, net zomin als de draden twisten enz.

Volgende

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 19 gasten