www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Merjenje napetosti z uporovnim delilnikom

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Arduino sekcija
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
Matko5
Član
Član



Pridružen-a: Tor 04 Mar 2014 22:53
Prispevkov: 107
Aktiv.: 1.06
Kraj: LJ

PrispevekObjavljeno: Ned Maj 22, 2022 9:43 pm    Naslov sporočila:  Merjenje napetosti z uporovnim delilnikom Odgovori s citatom

Pozdravljeni,

poskušam z Arduino UNO, kateri ima 10-bitni ADC izmeriti napetost na analognih pinih s pomočjo uporovnega delilnika.
Vrednost uporov je:
R1 = 2,9M
R2 = 190k

Nisem prepričan, ali je napaka v izračunih, ali je problem v čem drugem?
Hvala za vsako pomoč.

Koda:

int value = 0;
int value2 = 0;
float voltage;
float voltage2;
float R1 = 2900000.0;
float R2 = 180000.0;

  value = analogRead(A0);
  value2 = analogRead(A1);
  voltage = value * (5.0/1024)*((R1 + R2)/R2);
  voltage2 = value2 * (5.0/1024)*((R1 + R2)/R2);
  lcd.setCursor(0,0);
  lcd.print("Voltage = ");
  lcd.print(voltage);
  lcd.setCursor(0,1);
  lcd.print(voltage2);



1653247981903.jpg
 Opis:
 Velikost datoteke:  4.22 MB
 Pogledana:  0 krat

1653247981903.jpg



IMG_20220522_211511.jpg
 Opis:
 Velikost datoteke:  4.92 MB
 Pogledana:  0 krat

IMG_20220522_211511.jpg



IMG_20220522_211502222.jpg
 Opis:
 Velikost datoteke:  1.85 MB
 Pogledana:  1 krat

IMG_20220522_211502222.jpg


Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Silvo
Moderator
Moderator



Pridružen-a: Pon 24 Feb 2003 17:09
Prispevkov: 14194
Aktiv.: 70.70
Kraj: Koroška-okolica Dravograda

PrispevekObjavljeno: Ned Maj 22, 2022 10:35 pm    Naslov sporočila:   Odgovori s citatom

Z arduino kodo ti žal ne znam pomagat. Pri narisanim uporovnim delilniku je na delilniku točno 5V pri vhodni napetosti 85.56V

Za pravilni prikaz moraš to vrednost torej 85.56 deliti z 1024 ter jo pomnožiti z izmerjeno ad vrednostjo.

_________________
lp
Silvo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Brusli
Član
Član



Pridružen-a: Tor 24 Nov 2020 12:10
Prispevkov: 58
Aktiv.: 2.99
Kraj: Hrastnik

PrispevekObjavljeno: Pon Maj 23, 2022 6:44 am    Naslov sporočila:   Odgovori s citatom

Kje imaš zaščitno (zener) diodo na vhodu adruino?

Sicer pa poskusi ADC najprej usposobiti na 5V. Ko ti uspe, pa samo preračunaš na kakršno koli vhodno napetost uporabljaš. Vrednost, ki jo prebereš iz ADC deliš z 1024 in pomnožiš z maksimalno pričakovano napetostjo pred delilnikom. Jaz bi tule orda uporabil še opamp buffer na tvojem mestu, saj v atmega datasheet-u piše, da je ADC mišljen za merjenje nizkoimpedančnih izvorov (<10kOhm).
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mucek
Član
Član



Pridružen-a: Tor 01 Avg 2006 10:47
Prispevkov: 4917
Aktiv.: 25.39
Kraj: Ljubljana

PrispevekObjavljeno: Pon Maj 23, 2022 7:48 am    Naslov sporočila:   Odgovori s citatom

Zenerca pri takem uporovnem delilniku zaradi reverse currenta zna ze delati probleme pri meritvi, saj bo skozi njo tekel dolocen tok tudi, ko bo pod nominalno napetostjo. Buffer z opampom (za delilnikom) kot je predhodnik predlagal, bi bila boljsa resitev.

Lp, G

_________________
...lahko pa se tudi motim ...
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Sigi
Član
Član



Pridružen-a: Čet 31 Jul 2014 11:42
Prispevkov: 184
Aktiv.: 1.91
Kraj: Kamnik

PrispevekObjavljeno: Pon Maj 23, 2022 9:47 am    Naslov sporočila:   Odgovori s citatom

Za ADC poišči podatek za max impedanco vira za doseganje zahtevane točnosti meritve.
Predhodniki so ti že svetovali opamp, če vzorčiš dovolj poredko in želiš prihranit je lahko rešitev tudi primeren kondenzator na vhodu ADC.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
bbrane
Član
Član



Pridružen-a: Čet 14 Jun 2007 15:02
Prispevkov: 561
Aktiv.: 3.06
Kraj: Cerkno

PrispevekObjavljeno: Pon Maj 23, 2022 10:00 am    Naslov sporočila:   Odgovori s citatom

Kakšna pa je vhodna upornost A0 vhoda. Če je leta majhna npr pod 10M potem moraš za izračun upoštevati paralelno kombinacijo R2 in Rvh od A0. Ali pa vzeti bistveno manjši R2 in seveda ustrezen R1- samo potem bo tudi merjeni vir bolj obremenjen.

LP Brane

_________________
En poizkus je vreden več kot tisoč strokovnih mnenj
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Sigi
Član
Član



Pridružen-a: Čet 31 Jul 2014 11:42
Prispevkov: 184
Aktiv.: 1.91
Kraj: Kamnik

PrispevekObjavljeno: Pon Maj 23, 2022 4:23 pm    Naslov sporočila:   Odgovori s citatom

bbrane je napisal/a:
Kakšna pa je vhodna upornost A0 vhoda. Če je leta majhna npr pod 10M potem moraš za izračun upoštevati paralelno kombinacijo R2 in Rvh od A0. Ali pa vzeti bistveno manjši R2 in seveda ustrezen R1- samo potem bo tudi merjeni vir bolj obremenjen.

LP Brane


Brane to imaš povsem prav, vendar pa tu težko govorimo le o vhodni upornosti ADC-ja (čeprav ima ADC seveda tudi notranjo upornost). Vhodni del ADC z impedanco vira (v našem primeru delilnik) kreirata RC vezje. ADC mora v trenutku vzorčenja (sample time) napolniti svojo notranjo kapacitivnost, impedanca vira pa mora biti dovolj majhna, da se v času vzorčenja ta notranja kapacitivnost ADCja "napolni" na vhodno napetost (ali se vsaj dovolj približa, recimo na 1LSB). Da to dosežeš pa lahko čaraš na več načinov
-zmanjšaš impedanco vira (delilnik z nižjimi vrednostmi uporov, buffer)
-dodaš čez vhod ADC dovolj velik kondenzator in poskrbiš, da se ima med sampli čas dovolj napolnit (poceni rešitev, če je lahko frekvenca meritev dovolj nizka)
-podaljšaš sample-time ADC-ja (omejeno z možnostmi ADC-ja)
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
robert
Član
Član



Pridružen-a: Sob 29 Maj 2004 21:48
Prispevkov: 1817
Aktiv.: 9.05
Kraj: Tolmin

PrispevekObjavljeno: Pon Maj 23, 2022 5:15 pm    Naslov sporočila:   Odgovori s citatom

Koda:
float R2 = 180000.0;

upor pa 190k Shame on you

_________________
LP Robert
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Brusli
Član
Član



Pridružen-a: Tor 24 Nov 2020 12:10
Prispevkov: 58
Aktiv.: 2.99
Kraj: Hrastnik

PrispevekObjavljeno: Tor Maj 24, 2022 10:10 am    Naslov sporočila:   Odgovori s citatom

Eto, tole piše v podatkovni listi (datasheet) od mikrokrmilnika ATmega328p; Predvidevam, da je to tisti mikrokrmilnik, ki ga tvoj Arduino uporablja. Sicer pa poiščeš datasheet za ustrezni čip in prebereš kaj piše v poglavju ADC.


atmega328p-adc.jpg
 Opis:
Atmega328p ADC
 Velikost datoteke:  89.58 KB
 Pogledana:  27 krat

atmega328p-adc.jpg


Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
int47
Član
Član



Pridružen-a: Pon 15 Dec 2003 0:10
Prispevkov: 2033
Aktiv.: 10.13
Kraj: Ljubljana

PrispevekObjavljeno: Sre Maj 25, 2022 6:11 pm    Naslov sporočila:   Odgovori s citatom

1111111111b = 3FFhex = 1023dec

Verjetno boš rabil še kalibracijo, ker upori in napajanje niso z 0% toleranco.

_________________
Ko bom velik trol, bom moderator.
Kdor ni skregan, ni Slovenc !
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mosqito
Član
Član



Pridružen-a: Čet 07 Apr 2016 23:22
Prispevkov: 1667
Aktiv.: 22.00

PrispevekObjavljeno: Pet Maj 27, 2022 3:36 pm    Naslov sporočila:   Odgovori s citatom

Tule je nekaj koristnega branja:
http://lea.hamradio.si/~s53mv/voltmeter/voltmeter.html

Sicer je mikrokontroler iz predkambrijskega časa, ampak bistvo je v analognem delu pred ADC.

_________________
Always going the extra mile.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Matko5
Član
Član



Pridružen-a: Tor 04 Mar 2014 22:53
Prispevkov: 107
Aktiv.: 1.06
Kraj: LJ

PrispevekObjavljeno: Pet Jun 03, 2022 10:41 pm    Naslov sporočila:   Odgovori s citatom

Sicer ni ravno dosežek in ker pri višjih napetostih pada natančnost (pri 28 V je približno 0,5 V razlike) je nekako uspelo izmeriti napetost. Ker nisem mel pri sebi kakih uporov primernih vrednosti sem vzporedno s temi vezal upore kot je prikazano na shemi za 2 analogna vhoda. Dodal sem tudi kondenzator na vsak vhod, ki naj bi deloval kot še nekak dodatni filter.

Prejšnja konfiguracija je res imela prevelike vrednosti uporov in je tudi celo nekaj oscilirala, ko sem pogledal na osciloskop.

Tukaj je še koda s katero sem testiral:

Koda:

float R1 = 97500.0;
float R2 = 5320.0;
int value = 0;
float voltage = 0;
void setup() {
  Serial.begin(9600);
  analogReference(EXTERNAL); //3.3 V
}

void loop() {
  value = analogRead(A0);
  voltage = value * (3.3/1024)*((R1+R2)/R2);
  Serial.println(voltage);
  delay(1000);
}


Uporabil sem tudi zunanjo referenco katera je 3.3 V izhod regulatorja Arduina preko 1k upora na AREF pin.



COM_port.jpg
 Opis:
 Velikost datoteke:  45.9 KB
 Pogledana:  5 krat

COM_port.jpg



Shema.jpg
 Opis:
 Velikost datoteke:  175.28 KB
 Pogledana:  2 krat

Shema.jpg



SDS00002.jpg
 Opis:
 Velikost datoteke:  329.12 KB
 Pogledana:  1 krat

SDS00002.jpg


Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Arduino sekcija Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 319 dni


Powered by phpBB © 2001, 2005 phpBB Group