Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Programi
  • Digitalni voltmetar na Arduinu sa spajanjem na PC preko serijskog porta. Tajni voltmetar u Arduinu - mjerenje napona baterije pomoću mikrokontrolera

Digitalni voltmetar na Arduinu sa spajanjem na PC preko serijskog porta. Tajni voltmetar u Arduinu - mjerenje napona baterije pomoću mikrokontrolera

Pozdrav, Habr! Danas želim nastaviti s temom "ukrštanja" arduina i androida. U prethodna objava Govorio sam o bluetooth stroju, a danas ćemo govoriti o DIY bluetooth voltmetru. Drugi takav uređaj može se nazvati pametni voltmetar, "pametni" voltmetar ili samo pametni voltmetar, bez navodnika. Prezime je netočno s gledišta ruske gramatike, međutim, često se nalazi u medijima. Glasovanje o ovoj temi bit će na kraju članka, ali predlažem da počnete s demonstracijom rada uređaja kako biste razumjeli o čemu se radi pričati ćemo u članku.


Disclaimer: članak je namijenjen prosječnom arduino entuzijastu koji obično nije upoznat s programiranjem za Android, stoga ćemo, kao i u prethodnom članku, izraditi aplikaciju za pametni telefon koristeći vizualno razvojno okruženje android aplikacije App Izumitelj 2.
Da bismo napravili DIY bluetooth voltmetar, moramo napisati dva relativno neovisna programa: skicu za Arduino i aplikaciju za Android. Počnimo sa skicom.
Prvo, trebali biste znati da postoje tri glavne opcije za mjerenje napona pomoću Arduina, bez obzira na to gdje trebate ispisati informacije: na com port, na zaslon spojen na Arduino ili na pametni telefon.
Prvi slučaj: mjerenje napona do 5 volti. Ovdje su dovoljne jedna ili dvije linije koda, a napon se primjenjuje izravno na pin A0:
int vrijednost = analogRead(0); // čitanje očitanja iz A0
napon = (vrijednost / 1023,0) * 5; // istinito samo ako je Vcc = 5,0 volta
Drugi slučaj: za mjerenje napona većih od 5 volti koristi se razdjelnik napona. Strujni krug je vrlo jednostavan, kao i kod.

Skica

int analogni ulaz = A0;
float val = 0,0;
napon plovka = 0,0;
float R1 = 100000,0; //Baterija Vin-> 100K -> A0
plovak R2 = 10000,0; //Baterija Gnd -> Arduino Gnd i Arduino Gnd -> 10K -> A0
int vrijednost = 0;

Void setup() (
Serial.begin(9600);
pinMode(analogni ulaz, ULAZ);
}

Void petlja() (
vrijednost = analogRead(analogInput);
val = (vrijednost * 4,7) / 1024,0;
napon = val / (R2/(R1+R2));
Serial.println(napon);
kašnjenje (500);
}


Arduino Uno
Bluetooth modul
Treći slučaj. Kada trebate dobiti preciznije informacije o naponu, trebali biste koristiti kao referentni napon ne napon napajanja, koji može malo varirati kada se napaja iz baterije, na primjer, već napon unutarnjeg Arduino stabilizatora od 1,1 volta. krug je ovdje isti, ali kod je malo duži. Neću detaljno analizirati ovu opciju, jer je već dobro opisana u tematskim člancima, ali druga metoda mi je sasvim dovoljna, jer je moje napajanje stabilno, iz USB priključka prijenosnog računala.
Dakle, riješili smo mjerenje napona, a sada prijeđimo na drugu polovicu projekta: stvaranje Android aplikacije. Aplikaciju ćemo izraditi izravno iz preglednika u vizualnom razvojnom okruženju za Android aplikacije App Inventor 2. Idite na web stranicu appinventor.mit.edu/explore, prijavite se pomoću svog Google računa, kliknite gumb za izradu, novi projekt i jednostavno povuci i ispusti elemenata stvaramo nešto poput ovog dizajna:

Napravio sam grafiku vrlo jednostavnom, ako netko želi zanimljiviju grafiku, podsjetit ću vas da za to trebate koristiti .png datoteke s prozirnom pozadinom umjesto .jpeg datoteka.
Sada idite na karticu Blocks i tamo stvorite logiku aplikacije nešto poput ovoga:


Ako sve funkcionira, možete kliknuti gumb Build i spremiti .apk na moje računalo, a zatim preuzeti i instalirati aplikaciju na svoj pametni telefon, iako postoje i drugi načini za upload aplikacije. ovdje je prikladnije za svakoga. Kao rezultat toga, završio sam s ovom aplikacijom:


Razumijem da malo ljudi koristi okruženje za vizualni razvoj aplikacija App Inventor 2 za Android aplikacije u svojim projektima, pa se mogu pojaviti mnoga pitanja o radu u njemu. Uklonio sam neka od ovih pitanja detaljan video, o tome kako napraviti takvu aplikaciju "od nule" (za pregled morate otići na YouTube):

p.s. Zbirka s više od 100 edukativnih materijala o Arduinu za početnike i profesionalce

Ovaj članak pokazuje kako spojiti Arduino i PC i prenijeti podatke s ADC-a na PC. Windows program je napisan sa koristeći Visual C++ 2008 Express. Program voltmetra je vrlo jednostavan i ima puno prostora za poboljšanje. Glavna mu je svrha bila pokazati kako raditi s COM portom i razmjenjivati ​​podatke između računala i Arduina.

Komunikacija između Arduina i računala:

  • ADC očitanja počinju kada računalo pošalje Arduino naredbe s 0xAC i 0x1y. na– broj ADC kanala (0-2);
  • Čitanje se zaustavlja nakon što Arduino primi naredbe 0xAC i 0x00;
  • Prilikom očitavanja, Arduino svakih 50 ms šalje računalu naredbe 0xAB 0xaa 0xbb, gdje su aa i bb maksimalni i minimalni rezultati mjerenja.

Program za Arduino

Više o serijskoj komunikaciji možete pročitati na arduino.cc. Program je prilično jednostavan, većina se provodi u radu s njim paralelni priključak. Nakon završetka čitanja podataka iz ADC-a, dobivamo 10-bitnu vrijednost napona (0x0000 – 0x0400) u obliku 16-bitne varijable (INT). Serijski priključak (RS-232) omogućuje prijenos podataka u 8-bitnim paketima. Potrebno je podijeliti 16-bitne varijable na 2 dijela po 8 bita.

Serial.print(napon>>8,BYTE);

Serial.print(napon%256,BYTE);

Bajtove varijable pomaknemo za 8 bitova udesno, a zatim podijelimo s 256 i rezultat pošaljemo računalu.

Možete preuzeti puni izvorni kod za Arduino softver

Visual C++

Pretpostavljam da već jeste osnovno znanje u C++ programiranju za Windows, ako ne onda koristite Google. Internet je pun tutorijala za početnike.

Prva stvar koju trebate učiniti je dodati serijski priključak s alatne trake na donji obrazac. Ovo će neke promijeniti važni parametri serijski port: naziv porta, brzina prijenosa podataka, dubina bita. Ovo je korisno za dodavanje kontrola prozoru aplikacije, mijenjanje ovih postavki u bilo kojem trenutku, bez ponovnog prevođenja programa. Koristio sam samo opciju odabira porta.

Nakon traženja dostupnih serijskih priključaka, prema zadanim postavkama odabran je prvi priključak. Kako se to radi:

niz< String ^>^ serijski portovi = nullptr;

serijski portovi = serijski port1->GetPortNames();

ovo->comboBox1->Items->AddRange(serialPorts);

ovo->comboBox1->SelectedIndex=0;

Serijski priključak na računalu može koristiti samo jedna aplikacija u isto vrijeme, tako da priključak mora biti otvoren prije upotrebe, a ne zatvoren. Jednostavne naredbe za ovo:

serijskiPort1->Otvori();

serijskiPort1->Zatvori();

Za ispravno čitanje podataka sa serijskog porta, morate koristiti događaje (u našem slučaju, prekid). Odaberite vrstu događaja:

Padajući popis kada dvostruki klik"Podaci primljeni".

Šifra događaja generira se automatski:

Ako je prvi bajt stigao na serijski port 0xAB, to znači da preostali bajtovi nose podatke o naponu.

privatno: System::Void serialPort1_DataReceived(System::Object^ pošiljatelj, System::IO::Ports::SerialDataReceivedEventArgs^ e) (

nepredpisani char podaci0, podaci1;

if (serialPort1->ReadByte()==0xAB) (

data0=serialPort1->ReadByte();

data1=serialPort1->ReadByte();

napon=Math::Round((float(podaci0*256+podaci1)/1024*5.00),2);

broj_podataka++;

serialPort1->ReadByte();

Pisanje i čitanje podataka serijskog porta

Mali problem za mene je bio slanje hex RAW podataka kroz serijski port. Korištena je naredba Write(); ali s tri argumenta: niz, početni broj bajta, broj bajtova za pisanje.

privatno: System::Void button2_Click_1(System::Object^ pošiljatelj, System::EventArgs^ e) (

unsigned char kanal=0;

kanal=ovo->listBox1->SelectedIndex;

niz^start =(0xAC,(0x10+kanal));

niz^stop =(0xAC,0x00);

serialPort1->Write(start,0,2);

this->button2->Text="Stop";

) inače (

serialPort1->Write(stop,0,2);

this->button2->Text="Start";

To je sve!

Izvorni članak o Engleski jezik(prijevod: Aleksandar Kasjanov za stranicu cxem.net)

Ovaj članak nudi zanimljiv dijagram za one koji vole eksperimentirati i Arduino. Sadrži jednostavan digitalni voltmetar koji može sigurno mjeriti stalni pritisak u rasponu od 0 do 30 V. Sama Arduino ploča može se napajati iz standardnog izvora od 9 V.



Kao što znate, pomoću Arduino analognog ulaza možete mjeriti napon od 0 do 5 V (sa standardnim referentnim naponom od 5 V). Ali ovaj se raspon može proširiti korištenjem razdjelnika napona.


Razdjelnik smanjuje izmjereni napon na razinu prihvatljivu za analogni ulaz. Zatim posebno napisani kod izračunava stvarni napon.



Analogni senzor u Arduinu detektira napon na analognom ulazu i pretvara ga u digitalni format, koju percipira mikrokontroler. DO analogni ulaz A0 spajamo razdjelnik napona koji čine otpori R1 (100K) i R2 (10K). S ovim vrijednostima otpora, do 55 V se može napajati Arduinu, budući da je koeficijent dijeljenja u ovom slučaju ispada 11, dakle 55V/11=5V. Kako bismo bili sigurni da su mjerenja sigurna za ploču, bolje je mjeriti napon u rasponu od 0 do 30 V.



Ako očitanja na zaslonu ne odgovaraju očitanjima provjerenog voltmetra, trebali biste koristiti precizni digitalni multimetar pronaći točne vrijednosti R1 i R2. U ovom slučaju, u kodu ćete morati zamijeniti R1=100000.0 i R2=10000.0 svojim vlastitim vrijednostima. Zatim biste trebali provjeriti napajanje mjerenjem napona na ploči između 5V i GND. Napon može biti 4,95 V. Tada u kodu vout = (vrijednost * 5,0) / 1024,0 trebate zamijeniti 5,0 s 4,95. Preporučljivo je koristiti precizne otpornike s pogreškom ne većom od 1%. Imajte na umu da naponi iznad 55 V mogu uzrokovati Arduino ploča izvan službe!



#uključi LiquidCrystal lcd (7, 8, 9, 10, 11, 12); int analogni ulaz = 0; float vout = 0,0; float vin = 0,0; float R1 = 100000,0; // otpor R1 (100K) float R2 = 10000.0; // otpor R2 (10K) int vrijednost = 0; void setup())( pinMode(analogInput, INPUT); lcd.begin(16, 2); lcd.print("DC VOLTMETAR"); ) void loop())( // čitanje analogne vrijednosti value = analogRead(analogInput ); vout = (vrijednost * 5,0) / 1024,0; vin = vout / (R2/(R1+R2)); if (vin<0.09) { vin=0.0;// обнуляем нежелательное значение } lcd.setCursor(0, 1); lcd.print("INPUT V= "); lcd.print(vin); delay(500); }


Korišteni elementi:


Arduino Uno ploča
Otpornik 100 KOhm
Otpornik 10 KOhm
Otpornik od 100 ohma
Potenciometar 10KOhm
LCD zaslon 16×2

Ponekad želite provjeriti napon ili neku točku u strujnom krugu, ali nemate voltmetar ili multimetar pri ruci? Trčati kupiti? Dugo je i skupo. Prije nego to učinite, kako bi bilo da sami napravite voltmetar? Zapravo, od jednostavnih sastojaka možete ga napraviti sami.

  • U lekciji smo koristili ploču kompatibilnu s Arduinom - SunFounder Uno / Mars (http://bit.ly/2tkaMba)
  • USB podatkovni kabel
  • 2 potenciometra (50k)
  • LCD1602 - http://bit.ly/2ubNEfi
  • Razvojna ploča - http://bit.ly/2slvfrB
  • Višestruki skakači

Prije povezivanja prvo pogledajmo kako radi.

Koristite SunFounder Uno ploču za glavni dio obrade podataka voltmetra, LCD1602 kao zaslon, potenciometar za podešavanje kontrasta LCD-a i drugi za dijeljenje napona.

Kada okrenete potenciometar spojen na Uno ploču, otpornik potenciometra se mijenja, čime se mijenja napon na njemu. Signal napona će biti poslan na Uno ploču preko pina A0, a Uno će primljeni analogni signal pretvoriti u digitalni oblik i snimati na LCD-u. Na taj način možete vidjeti vrijednost napona pri trenutnom otporu kapacitivnosti.

LCD1602 ima dva načina rada: 4-bitni i 8-bitni. Kada MCU IO nije dovoljan, možete odabrati 4-bitni način rada, koji koristi samo pinove D4~D7.

Slijedite tablicu kako biste ih povezali.

Korak 4: Spojite potenciometar na LCD1602

Spojite srednji pin potenciometra na Vo pin na LCD1602 i bilo koji drugi pin na GND.

Spojite srednji pin potenciometra na pin A0 SunFounder Uno, a jedan od ostalih na 5V, a drugi na GND.

Korak 6: Učitajte kod

Ovaj kod:

#uključi /************************************************ ******* *****/ const int analogIn = A0;//potenciometar priključite na A0 LiquidCrystal lcd(4, 6, 10, 11, 12, 13);//lcd(RS,E,D4 ,D5,D6.D7) float val = 0;// definirajte varijablu kao value=0 /**************************** ******* *****************/ void setup() ( Serial.begin(9600);//Inicijaliziraj serijski lcd.begin(16, 2) ;//postavite položaj znakova na LCD-u kao redak 2, stupac 16 lcd.print("Vrijednost napona:");//ispišite "Vrijednost napona:") /*********** ******* *************************************/ void loop() ( val = analogRead (A0);//Očitajte vrijednost potenciometra na val val = val/1024*5.0;// Pretvorite podatke u odgovarajuću vrijednost napona na matematički način Serial.print(val);//Ispišite broj val na serijskom monitoru Serial.print ("V"); // ispis jedinice kao V, skraćenica za napon na serijskom monitoru lcd.setCursor(6,1);//Postavite kursor na redak 1, stupac 6. Od ovdje se znakovi trebaju prikazati lcd.print(val);//Ispisati broj val na LCD-u lcd.print("V");//Zatim ispisati jedinicu kao V, skraćenicu za napon na LCD-u kašnjenje( 200); //Pričekajte 200ms )

Okrenite potenciometar da provjerite napon na LCD1602 u stvarnom vremenu.

Evo jedne zeznute stvari. Nakon što sam pokrenuo kod, LCD je pokazao znakove. Zatim sam podesio kontrast zaslona (postupna promjena od crne do bijele) okretanjem potenciometra u smjeru kazaljke na satu ili suprotno od njega dok zaslon nije jasno prikazao znakove.

Uzmite dvije baterije za mjerenje napona: 1,5 V i 3,7 V. Otkačite priključak drugog potenciometra na A0 i GND pin, što znači da potenciometar izvadite iz strujnog kruga. Pričvrstite kraj žice A0 na anodu baterije i krug GND na katodu. NEMOJTE ih ponovno spajati ili ćete kratko spojiti bateriju. Vrijednost 0V je obrnuti spoj.

Dakle, na LCD zaslonu se prikazuje napon baterije. Možda postoji pogreška između vrijednosti i nominalne vrijednosti jer baterija nije potpuno napunjena. I zato moram izmjeriti napon da bih shvatio mogu li koristiti bateriju ili ne.

P.S: Ako imate problema s prikazom na zaslonu - pogledajte ovaj FAQ za LCD zaslone - http://wiki.sunfounder.cc/index.php?title=LCD1602/I2C_LCD1602_FAQ.

Ideja

Ideja uređaji za mjerenje napona, struje, kapaciteta, pražnjenja, a možda i naboja su se pojavili davno i ne samo kod mene. Možete pronaći mnoge igračke pod nazivom USB Tester (Doctor) za testiranje raznih USB uređaja. Zanima me nešto univerzalniji uređaj, neovisan o sučelju, ali jednostavno dizajniran za određene napone i struje. Na primjer, 0 - 20,00 V, 0 - 5,00 A, 0 - 99,99 Ah. Što se tiče funkcija, ja to vidim ovako

  • Prikazuje trenutni napon i struju, odnosno volt-ampermetar. U principu, možete odmah odražavati snagu.
  • Brojanje i prikaz akumuliranog kapaciteta. U amper satima i najvjerojatnije u vat satima.
  • Prikaz vremena procesa
  • I, najvjerojatnije, podesive donje i gornje granice napona (ograničenja pražnjenja i punjenja)

Razvoj

Za provedbu izračuna i mjerenja potreban nam je kontroler. Sjetio sam se ove ideje u sklopu poznanstva s Arduinom, tako da će kontroler biti obični popularni Atmega328 i bit će programiran u okruženju Arduino. Inženjerski gledano, izbor vjerojatno nije najbolji - kontroler je malo debeo za tu zadaću, a njegov ADC se ne može nazvati mjernim, ali... pokušat ćemo.

  • Nećemo mnogo lemiti u ovom projektu. Kao osnovu, uzet ćemo gotov Arduino Pro Mini modul, budući da su ih Kinezi spremni isporučiti za 1,5 USD u maloprodaji.
  • Uređaj za prikaz bit će 1602 zaslon - još 1,5 USD. Imam opciju s I2C modulom sučelja, ali u ovom projektu to nije potrebno (0,7 USD).
  • Za razvoj nam je potrebna matična ploča. U mom slučaju, ovo je mali BreadBoard za 1 USD.
  • Naravno, trebat će vam žice i određeni broj otpornika različitih vrijednosti. Za 1602 zaslon bez I2C također morate odabrati kontrast - to se radi s promjenjivim otpornikom od 2 - 20 kOhm.
  • Za implementaciju ampermetra trebat će vam šant. Prema prvoj aproksimaciji, to bi mogao biti otpornik od 0,1 Ohma, 5 W.
  • Za implementaciju automatskog isključivanja trebat će vam relej s kontaktima dizajniranim za maksimalnu struju uređaja i napon jednak naponu napajanja. Za upravljanje relejem potreban vam je NPN tranzistor i zaštitna dioda.
  • Uređaj će se napajati iz vanjskog izvora napajanja, očito najmanje 5 V. Ako napajanje jako varira, bit će potreban i integrirani stabilizator tipa 7805 - on će odrediti napon releja.
  • Kada Arduino Pro Mini zahtijeva USB-TTL pretvarač za prijenos firmvera.
  • Za postavljanje trebat će vam multimetar.

Voltmetar

Implementiram jednostavan voltmetar s jednim rasponom od približno 0 - 20V. Ova napomena je važna jer ADC našeg kontrolera ima 10-bitni kapacitet (1024 diskretne vrijednosti), tako da će pogreška biti najmanje 0,02 V (20 / 1024). Za implementaciju hardvera potreban nam je analogni ulaz kontrolera, razdjelnik od para otpornika i neka vrsta izlaza (zaslon u gotovoj verziji, serijski port se može koristiti za otklanjanje pogrešaka).

Princip mjerenja ADC-a je usporedba napona na analognom ulazu s referentnim VRef. ADC izlaz je uvijek cijeli broj - 0 odgovara 0V, 1023 odgovara naponu VRef. Mjerenje se provodi nizom sekvencijalnih očitanja napona i usrednjavanjem tijekom razdoblja između ažuriranja vrijednosti na ekranu. Izbor referentnog napona je važan jer je zadani napon napajanja, koji možda nije stabilan. To nam uopće ne odgovara - uzet ćemo kao osnovu stabilan unutarnji referentni izvor s naponom od 1,1 V, inicijalizirajući ga pozivanjem analogReference (INTERNAL). Zatim ćemo kalibrirati njegovu vrijednost pomoću očitanja multimetra.

Dijagram lijevo prikazuje varijantu s izravnim upravljanjem zaslonom (jednostavno se upravlja - vidi standardnu ​​skicu LiquidCrystal\HelloWorld). S desne strane je I2C opcija koju ću dalje koristiti. I2C vam omogućuje uštedu na žicama (kojih u uobičajenoj verziji ima 10, ne računajući pozadinsko osvjetljenje). Ali to zahtijeva dodatni modul i složeniju inicijalizaciju. U svakom slučaju, prvo se mora provjeriti prikaz znakova na modulu i podesiti kontrast - da biste to učinili, jednostavno trebate prikazati bilo koji tekst nakon inicijalizacije. Kontrast se podešava pomoću otpornika R1 ili sličnog otpornika I2C modula.

Ulaz je djelitelj 1:19, što vam omogućuje da dobijete maksimalni napon od oko 20V na Vref = 1.1 (obično se kondenzator + zener dioda postavljaju paralelno s ulazom radi zaštite, ali to nam za sada nije važno ). Otpornici imaju raspon, kao i referentni Vref regulatora, tako da nakon sastavljanja trebamo mjeriti napon (barem opskrbni) paralelno s našim uređajem i referentnim multimetrom i odabrati Vref u kodu dok se očitanja ne poklope. Također je vrijedno napomenuti da bilo koji ADC ima nulti offset napon (što kvari očitanja na početku raspona), ali za sada nećemo ulaziti u to.

Također će biti važno odvojiti opskrbno i mjerno uzemljenje. Naš ADC ima razlučivost nešto lošiju od 1 mV, što može stvoriti probleme ako je ožičenje neispravno, osobito na matičnoj ploči. Budući da je raspored ploče modula već napravljen i ostaje nam samo odabrati pinove. Modul ima nekoliko pinova za uzemljenje, tako da moramo paziti da struja ulazi u modul preko jedne „mase“, a mjerenja kroz drugu. Zapravo, za izmjene uvijek koristim pin za uzemljenje koji je najbliži analognim ulazima.

Za kontrolu I2C koristi se verzija biblioteke LiquidCrystal_I2C - u mom slučaju je naznačen specifični pinout I2C modula (Kinezi proizvode module s različitim kontrolama). Također napominjem da I2C u Arduinu zahtijeva upotrebu pinova A4 i A5 - na Pro Mini ploči oni se ne nalaze na rubu, što je nezgodno za izradu prototipova na BreadBoardu.

Izvor

#uključi #uključi // Jednostavan voltmetar s i2c zaslonom 1602. V 16.11 // Postavke za i2c zaslon 1602 s nestandardnim pinoutom #define LCD_I2C_ADDR 0x27 #define BACKLIGHT 3 #define LCD_EN 2 #define LCD_RW 1 #define LCD_RS 0 #define LCD_D4 4 #define LCD_D5 5 #define LCD_D6 6 #define LCD_D7 7 LiquidCrystal_I2C lcd(LCD_I2C_ADDR,LCD_EN,LCD_RW,LCD_RS,LCD_D4,LCD_D5,LCD_D6,LCD_D7); // Vrijeme ažuriranja očitavanja, ms (200-2000) #define REFRESH_TIME 330 // Analogni ulaz #define PIN_VOLT A0 // Interni referentni napon (odaberi) const float VRef = 1.10; // Ulazni otporni koeficijent razdjelnika (Rh + Rl) / Rl. U<-[ Rh ]--(analogInPin)--[ Rl ]--|GND const float VoltMult = (180.0 + 10.0) / 10.0; float InVolt, Volt; void setup() { analogReference(INTERNAL); // Инициализация дисплея lcd.begin (16, 2); lcd.setBacklightPin(BACKLIGHT, POSITIVE); lcd.setBacklight(HIGH); // включить подсветку lcd.clear(); // очистить дисплей lcd.print("Voltage"); } void loop() { unsigned long CalcStart = millis(); int ReadCnt = 0; InVolt = 0; // Чтение из порта с усреднением while ((millis() - CalcStart) < REFRESH_TIME) { InVolt += analogRead(PIN_VOLT); ReadCnt++; } InVolt = InVolt / ReadCnt; // Смещение 0 для конкретного ADC (подобрать или отключить) if (InVolt >0,2) InVolt += 3; // Pretvori u volte (Vrijednost: 0..1023 -> (0..VRef) skalirano Multom) Volt = InVolt * VoltMult * VRef / 1023; // Izlazni podaci lcd.setCursor (0, 1); lcd.print(Volt); lcd.print("V "); )

Najbolji članci na temu