Za mjerenje i vremensko fiksiranje na flash memoriji dugih procesa izraženih u struji i naponu, kao što su punjenje - pražnjenje baterija i baterija. Moguće je istovremeno popraviti temperaturu.
Parametri ulaznog signala:
struja I = 25mka - 2a
napon U = 0 - 5V
temperatura t = -30 - + 120gS
vrijeme postavlja interni ugrađeni kvarčni sat
Napajanje:
od izvora 12v / 0,3a
Potrošim <70ma
izgradnja:
Brojilo je sastavljeno na dva modula Težak Nano spojen preko protokola ModBus, vidi dijagram. Jedan Arduino montiran je na usponu s terminalnim blokovima. Moduli su spojeni putem konektora. Žice i moduli sami su izolirani od grešaka toplinske komore.
Ulazni signali se napajaju putem vijaka
Na prednjoj ploči nalazi se tekućinsko-kristalni indikator izmjerenih parametara i LED indikatora koji pokazuju prebacivanje raspona ili izvan dosega.
Brojilo je sastavljeno u kućištu 145x85x40.
Senzor temperature provodi se putem priključka. Prijenos signala organiziran je na dvožičnoj liniji. Otpornik napona u priključku.
Radi lakšeg programiranja, Arduino USB priključci su vanjski.
shema
Shema se može preuzeti iz datoteke Izmeritel.rar
Dva Arduina izabrana su iz dva razloga: Arduino Nano su bili dostupni i nedovoljno u jednoj memoriji, a planira se dodavanje senzora dalje. Pored toga, želio sam ovladati udrugom Arduino, za to je odabran protokol ModBus mreže. ModBus definira jedan glavni procesor - Glavni i nekoliko robova - Slave. U ovom radu postoji jedan Slave, na njemu je mjerenje temperature, napona i struje. U Masteru - sat i zapis u datoteku. Mesna memorija mora biti manja od 4 GB i formatirana je u FAT-u.
Budući da je bilo planirano mjeriti struje od μA do A, struje se mjere u 4 raspona (vidi tablicu raspona), Arduino Slave prati prijelaz iz jednog raspona u drugi, tvoreći odgovarajući kôd za shunt za trenutno izmjerenu struju od M1-2. Kad se približite granici raspona, uključuje se sljedeći raspon, odnosno trenutni je ključ onemogućen sa T1-1 --- T2-2, a sljedeći je uključen. U tom je slučaju stalno uključen maksimalni shunt = 100ohm. Ako postoji višak vrijednosti u rasponu, svijetliju LED-ovi D8, D9.
Podjela mjerenja struje na raspone
Uout_max = 5v KusOU = 20 Δ = Ish / 1024
Pojačanje operativnog pojačala M1-2 je postavljeno = 20 i tada se ne mijenja. (Na prednjoj ploči je pogrešno montirana).
Napon se mjeri pomoću sljedbenika na OU M1-1.Ulazni krugovi op-pojačala i Arduinoa zaštićeni su diodama (zener diode su u Arduinu, ali ne znam parametre, zato je bolje pretjerivati).
LCD indikator je odabran kao indikator. Povezan je s majstorom Arduina. Štoviše, indikator se može povezati s oba Arduino jednostavnim prebacivanjem Arduino konektora. (Kad je isključeno napajanje.) Veza s Arduino Slaveom prikazana je isprekidanom linijom (koja se koristila pri pisanju programa). S glavnom vezom (s glavnim upravljačem) na LCD1602 mogu se prikazati 4 zaslona prebacivanjem klizača klizne sklopke p1-p2.
Zaslon 1: odozgo su podaci o usluzi razmjene između Arduinoa: C je broj razmjena između Arduinoa, E je broj pogrešaka tijekom razmjene Sh- Broj shunt-a;
dan dna - vrijeme mjeseca.
Zaslon 2: U1, I1, br.šunner, (0,00 donja desna rezerva)
Zaslon 3: U2, temperatura, (ui-stanje pripravnosti)
Zaslon 4: Omogućeno je snimanje na SD, vrijeme snimanja u satima, broj retka u datoteci,
00- stanje raspona struje1 0-normalno 1-izvan raspona, stanje raspona napona1, fiksna snaga vanjskog izvora
Kad je spojen na Slave - 2 ekrana. Prekidač p3 omogućuje snimanje u memoriju mikro mesa.
Napajanje se bira 12 V radi dobivanja linearnih karakteristika pojačala (kako bi se izbjegle blokade na rubovima raspona). Iz istog razloga upotrijebljen je negativni napon iz oblika iz KR1006VI1. Korištenje Arduino generatora proizvodi manje stabilan napon. Za generiranje snage 5 V korišten je padajući pretvarač, ali bez njega možete učiniti isporučivanjem + 12V na VIN Arduino Nano ulaze.
Zajedničko programiranje Arduino ima značajke jer je komunikacija s računalom zauzeta ModBus protokolom. Da biste učitali skicu u jedan od Arduino-a, na drugom trebate omogućiti RST signal resetiranja. Da biste to učinili, upotrijebite kratkospojnike Block S, Block M. Ili pritisnite i zadržite gumbe za resetiranje na Arduino modulima dok preuzimanje ne završi, što je manje zgodno i postoji mogućnost da oštećenje preuzmete. Budući da planiram proširiti svoj USB Arduino uređaj, izvukao sam futrolu.
Tranzistor T5 (FR024N) trebao bi se koristiti za uključivanje / isključivanje procesa, na primjer, pražnjenje akumulatora. Dok to nije uključeno.
Softver.
Maksimalno se žvaka kako početnici (a i ja osobno) neće nauditi i mogu poslužiti kao referentni materijal, ali ne tvrde da su optimalni.
Biblioteke i programski kodovi nalaze se u Izmeritel PRO.rar datoteci.
Skica za majstora ModBus_Master10_SD_T_10_2. Skica za podređeni modBus-Slave10_T_UI_10_2. Ostatak knjižnice.
Programirano u okruženju Arduino1.6.0. Sadrži knjižnice SD, LiquidCrystal, Wire koje ne trebate preuzeti.
Vrijeme u satima postavlja se u programu Setup kako slijedi. Postavite stvarno vrijeme i učitajte skicu. Zatim komentirajte linije za postavljanje datuma i vremena i ponovno učitajte skicu.
Rezultat programa bit će prikaz vremena i datuma (sati), struje, napona, temperature na LCD-u 1602 i snimanje ovih parametara u datoteci IZMER1.TXT u Micro Flesh memoriji. Datoteka će sadržavati tablicu ove vrste:
0; 2019/4/13; 0:11:10; Zap (h) = 0,05; tc = 29,31; U1 = 1,71; Il = 0,00; Pl = 0,00; U2 = 0,14; DiaI norma; DiaU norma; C = 762
1; 2019/4/13; 0:11:16; Zap (h) = 0,05; tc = 29,38; U1 = 1,79; Il = 0,00; Pl = 0,00; U2 = 0,19; DiaI norma; DiaU norma; C = 788
2; 2019/4/13; 0:11:22; Zap (h) = 0,05; tc = 29,38; U1 = 1,54; Il = 0,00; Pl = 0,00; U2 = 0,16; DiaI norma; DiaU norma; C = 813
3; 2019/4/13; 0:11:28; Zap (h) = 0,05; tc = 29,31; U1 = 1,30; Il = 0,00; Pl = 0,00; U2 = 0,17; DiaI norma; DiaU norma; C = 839
4; 2019/4/13; 0:11:34; Zap (h) = 0,05; tc = 29,31; U1 = 1,90; Il = 0,00; Pl = 0,00; U2 = 0,17; DiaI norma; DiaU norma; C = 864
5; 2019/4/13; 0:11:40; Zap (h) = 0,05; tc = 29,25; U1 = 1,53; Il = 0,00; Pl = 0,00; U2 = 0,16; DiaI norma; DiaU norma; C = 890
6; 2019/4/13; 0:11:46; Zap (h) = 0,05; tc = 29,19; Ul = 2,03; Il = 0,00; Pl = 0,00; U2 = 0,18; DiaI norma; DiaU norma; C = 915
7; 2019/4/13; 0:11:52; Zap (h) = 0,05; tc = 29,13; U1 = 1,81; Il = 0,00; Pl = 0,00; U2 = 0,18; DiaI norma; DiaU norma; C = 941
8; 2019/4/13; 0:11:58; Zap (h) = 0,05; tc = 29,00; U1 = 1,30; Il = 0,00; Pl = 0,00; U2 = 0,16; DiaI norma; DiaU norma; C = 966
9; 2019/4/13; 0:12:04; Zap (h) = 0,07; tc = 28,94; U1 = 1,25; Il = 0,00; Pl = 0,00; U2 = 0,17; DiaI norma; DiaU norma; C = 992
10; 2019/4/13; 0:12:10; Zap (h) = 0,07; tc = 29,00; U1 = 1,85; Il = 0,00; Pl = 0,00; U2 = 0,16; DiaI norma; DiaU norma; C = 1017
11; 2019/4/13; 0:12:16; Zap (h) = 0,07; tc = 29,00; Ul = 1,21; Il = 0,00; Pl = 0,00; U2 = 0,18; DiaI norma; DiaU norma; C = 1043
12; 2019/4/13; 0:12:23; Zap (h) = 0,07; tc = 28,94; U1 = 1,55; Il = 0,00; Pl = 0,00; U2 = 0,18; DiaI norma; DiaU norma; C = 1068
13; 2019/4/13; 0:12:29; Zap (h) = 0,07; tc = 28,88; U1 = 1,82; Il = 0,00; Pl = 0,00; U2 = 0,16; DiaI norma; DiaU norma; C = 1094
14; 2019/4/13; 0:12:35; Zap (h) = 0,07; tc = 28,88; U1 = 1,30; Il = 0,00; Pl = 0,00; U2 = 0,18; DiaI norma; DiaU norma; C = 1119
gdje su stupci n / a; datum; vrijeme; vrijeme snimanja u satima; temperatura; izmjereni napon U1; izmjerena struja I1; drugi izmjereni napon U2; informacije o izlazu / odsutnosti raspona mjerenja; informacije o usluzi o broju razmjena između Arduina.
Interval snimanja mjerenja odabran je za 6 sekundi, lako ga je promijeniti zamjenom vrijednosti konstante #define CYCLE_TIME_F 3000 drugom s drugom formulom Tsec = Constant (ms) * 2/1000 u Masteru.
Nadalje ova tablica može biti predstavljena u obliku lijepih grafova.
Pri pisanju programa koristio sam materijale. Izražavam zahvalnost autoru.