Spanningsmeter aanpassen.

Arduino specifieke Software
Berichten: 10
Geregistreerd: 01 Mrt 2018, 00:34

Spanningsmeter aanpassen.

Berichtdoor Martin V » 03 Mrt 2018, 01:47

Ik wil de bestaande sketch op een analoge ingang aanpassen, zodat een 5,0V spanning op de analoge ingang een spanning op het lcd display aangeeft van 250Veff.


ReadAnalogVoltage

Reads an analog input on pin 0, converts it to voltage, and prints the result to the Serial Monitor.
Graphical representation is available using Serial Plotter (Tools > Serial Plotter menu).
Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.

This example code is in the public domain.

http://www.arduino.cc/en/Tutorial/ReadAnalogVoltage
*/

// the setup routine runs once when you press reset:
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
}

// the loop routine runs over and over again forever:
void loop() {
// read the input on analog pin 0:
int sensorValue = analogRead(A0);
// Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
float voltage = sensorValue * (5.0 / 1023.0);
// print out the value you read:
Serial.println(voltage);

Hierbij wil ik de laatste regel aanpassen in:

Serial.println(voltage*1,766*0707*40)

Doe ik dit goed zo? Want 5V op de ingang correspondeert nu met een uitgelezen waarde van 250Veff op het display?
Het liefste wil ik dit uitlezen in Veff.
En hoe kan ik deze waarde nu verder gebruiken om er meer berekeningen aan te doen?

Advertisement

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

Re: Spanningsmeter aanpassen.

Berichtdoor Koepel » 03 Mrt 2018, 16:38

In grote lijnen klopt het wel.
Zie je dit: "0707", daar moet ergens een decimale punt tussen.
En dit: "1,766", in het Engels gebruiken ze een punt en geen komma.

Om er verder mee te rekenen, kun je een nieuwe 'float' variabele maken.
Code: Alles selecteren
float Veff = voltage * 1.766 * 0.707 * 40;


Wist je dat het eigenlijk "(5.0 / 1024.0)" is ? Daar zijn hele lange discussies over :lol: Er zijn 1024 stappen, dus moet het gedeeld worden door 1024. De maximale waarde van 1023 die analogRead() terug geeft is namelijk nét geen 5.0V, dat zou de 1024-ste stap zijn. Om het helemaal compleet te maken hoort er ook nog een correctie van een halve bit bij :geek:

Berichten: 10
Geregistreerd: 01 Mrt 2018, 00:34

Re: Spanningsmeter aanpassen.

Berichtdoor Martin V » 03 Mrt 2018, 17:22

Hartelijk dank voor uw reactie koepel.
Nu kan ik weer een stapje verder gaan met mijn plan.

Wanneer ik exacte getallen gebruik om Veff te berekenen, is dat eigenlijk wat overbodig.
Ik kan ook de regel instellen dat wanneer er op de ingang van de Arduino een spanning gemeten wordt van 5,00Volt, dit precies overeenkomt met 250Veff. Dat is simpel een vermenigvuldiging met 50 en dat scheelt een hoop gereken.
Wat deed ik eigenlijk moeilijk hé?

Maar hoe moet ik die meetfout aanpassen in het verschil; 5/1024 en de maximale gemeten waarde is (5/1024)*1023?

Nu wil ik graag de volgende bewerkingen uitvoeren, maar ik weet niet hoe ik dat moet aanpakken:

float Veff = voltage*50

float Veff = Veff vermenigvuldigen in kwadraad en daarna delen door 50, dit is een nieuwe waarde en is het vermogen in Watts.

het vermogen in Watts moet door het scherm worden weergegeven.

float Veff = Veff delen door 50, dit is een nieuwe waarde en dit is de stroom in Ampere.

De berekende waarde moet door het scherm worden weergegeven.

Ik heb het vermoeden dat ik voor iedere nieuwe berekende waarde zoiets moet invullen als 'float Power' of 'float Current'.
Kijk ik leer al bij, als ik het goed heb!

Alvast mijn hartelijke dank.

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

Re: Spanningsmeter aanpassen.

Berichtdoor nicoverduin » 03 Mrt 2018, 17:40

En om het nog ff complexer te maken :) de voeding is meestal niet exact 5.00 volt. Wil je het exact maken dan moet je met een referentie spanning werken, 0.1% weerstanden met een zo laag mogelijke ppm (verloop bij temperatuur wijzigingen) en als je echt 250v gaat meten dat de weerstanden voldoende vermogen kunnen hebben
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Gebruikers-avatar
Berichten: 631
Geregistreerd: 15 Nov 2015, 11:54

Re: Spanningsmeter aanpassen.

Berichtdoor Gij Kieken » 03 Mrt 2018, 20:42

Als het een beetje juist moet zijn zou ik toch een externe referentie spanning gebruiken.
In veel gevallen komt er niet exact 5volt (waar je mee rekent)uit de usb of regelaar.

Berichten: 10
Geregistreerd: 01 Mrt 2018, 00:34

Re: Spanningsmeter aanpassen.

Berichtdoor Martin V » 03 Mrt 2018, 21:26

Het is goed dat jullie zeggen dat die interne referentie spanning helemaal niet niet zo precies is.
Daar heb ik al wat over gelezen hoe je dat kunt instellen met de software.
Maar het is nog beter om hiervoor een aparte referentie spanning te gebruiken uit een ic'tje (LT1004-1.2 of een LM385-1.2) wat dat regelt.

Een latere uitbreiding is om te meten in een veel hogere resolutie met een ADS1115 A/D convertor welke 16bits is.
Daarvoor moet ik de Arduino even uitbreiden met een I2C shield.
Maar dat is voor later, voorlopig ben ik eventjes geholpen.

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

Re: Spanningsmeter aanpassen.

Berichtdoor nicoverduin » 03 Mrt 2018, 22:01

Je kan het niet instellen. Zet maar eens een scope op de spanning.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Google [Bot], uejilego en 17 gasten