Dom

Arduino voltmetar s izlazom podataka na računalo. Digitalni voltmetar na Arduinu sa spajanjem na PC preko serijskog porta. Kalibracija razdjelnika napona

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, uz pomoć jednostavne komponente možete ga sami napraviti.

Korak 1: Pripremite komponente

  • 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. Naponski signal ć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 uključiti ili ćete dobiti kratki spoj na bateriji. 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.

Pozdrav, Habr! Danas želim nastaviti s temom "ukrštanja" arduina i androida. U prethodnoj publikaciji 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. Na kraju članka bit će glasovanje o ovoj temi, ali predlažem da počnete s demonstracijom rada uređaja kako biste razumjeli o čemu će članak biti.


Disclaimer: članak je namijenjen prosječnom arduino entuzijastu koji obično nije upoznat s Android programiranjem, stoga ćemo, kao i u prethodnom članku, kreirati aplikaciju za pametni telefon koristeći App Inventor 2 vizualno razvojno okruženje za Android aplikacije.
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 dovodi 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 jednostavnim povlačenjem i ispuštanjem elemenata stvorit ćemo 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

Predstavili koristan dijagram za one koji vole eksperimentirati s Arduinom. Jednostavno je digitalni voltmetar, koji može pouzdano mjeriti istosmjerni napon u rasponu 0 – 30V. Arduino ploču, kao i obično, može napajati baterija od 9V.

Kao što vjerojatno znate, Arduino analogni ulazi mogu se koristiti za mjerenje Istosmjerni napon u rasponu 0 – 5V i ovaj raspon se može povećati,
koristeći dva otpornika kao razdjelnik napona. Razdjelnik će smanjiti izmjereni napon na razinu Arduino analognih ulaza. Zatim će program izračunati stvarnu vrijednost napona.

Analogni senzor na Arduino ploči detektira prisutnost napona na analognom ulazu i pretvara ga u digitalni oblik za daljnju obradu od strane mikrokontrolera. Na slici, napon se dovodi na analogni ulaz (A0) preko jednostavnog razdjelnika napona koji se sastoji od otpornika R1 (100 kOhm) i R2 (10 kOhm).

S ovim vrijednostima razdjelnika, Arduino ploča se može napajati naponom od 0 do
55V. Na ulazu A0 imamo izmjereni napon podijeljen s 11, tj. 55V / 11=5V. Drugim riječima, kada mjerimo 55V na Arduino ulazu, imamo maksimalnu dopuštenu vrijednost od 5V. U praksi je bolje napisati raspon "0 - ​​30V" na ovom voltmetru tako da ostane
Sigurnosna granica!

Bilješke

Ako se očitanja na zaslonu ne podudaraju s očitanjima industrijskog (laboratorijskog) voltmetra, tada je potrebno precizni instrument izmjerite vrijednosti otpora R1 i R2 i unesite te vrijednosti umjesto R1=100000.0 i R2=10000.0 u programski kod. Tada biste trebali mjeriti laboratorijski voltmetar stvarni napon između pinova od 5V i "zemlje" Arduino ploče. Rezultat će biti vrijednost manja od 5V, na primjer, bit će 4,95V. Ovaj prava vrijednost treba umetnuti u liniju koda
vout = (vrijednost * 5,0) / 1024,0 umjesto 5,0.
Također pokušajte koristiti precizne otpornike s tolerancijom od 1%.

Otpornici R1 i R2 pružaju određenu zaštitu od povećanih ulaznih napona. Međutim, upamtite da svaki napon iznad 55 V može oštetiti Arduino ploču. Osim toga, ovaj dizajn ne pruža druge vrste zaštite (od prenapona, promjene polariteta ili prenapona).

Program za digitalni voltmetar

/*
DC voltmetar
Arduino DVM temeljen na konceptu razdjelnika napona
T.K.Hareendran
*/
#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; // otpornost R1 (100K) - vidi tekst!
plovak R2 = 10000,0; // otpor R2 (10K) – vidi tekst!
int vrijednost = 0;
void setup())(
pinMode(analogni ulaz, ULAZ);
lcd.begin(16, 2);
lcd.print(“DC VOLTMETAR”);
}
void petlja()
// čitanje vrijednosti na analognom ulazu
vrijednost = analogRead(analogInput);
vout = (vrijednost * 5,0) / 1024,0; // vidi tekst
vin = vout / (R2/(R1+R2));
ako (vin<0.09) {
vin=0.0;//izjava za poništavanje neželjenog čitanja !
}
lcd.setCursor(0, 1);
lcd.print(“ULAZ V= “);
lcd.ispis(vin);
kašnjenje (500);
}

Shematski dijagram Arduino-voltmetra

Popis komponenti

Arduino Uno ploča
Otpornik od 100 kOhm
Otpornik od 10 kOhm
Otpornik od 100 ohma
10kOhm trimer otpornik
LCD zaslon 16×2 (Hitachi HD44780)



Što još čitati