Hosszú, áramban és feszültségben kifejezett folyamatok, például az elemek és akkumulátorok töltöttségi szintjének mérésére és rögzítésére a flash memóriában. A hőmérséklet egyszerre rögzíthető.
Bemeneti jel paraméterei:
I áram = 25mka - 2a
U = 0 - 5 V feszültség
hőmérséklet t = -30 - + 120 gС
Az időt a belső beépített kvarcóra határozza meg
Tápegység:
a forrásból 12v / 0,3a
70 m <
építés:
A mérőkészülék két modulra van felszerelve Arduino Nano ModBus protokollon keresztül csatlakoztatva, lásd az ábrát. Az egyik Arduino csatlakozón egy sorkapocsra van felszerelve. A modulok csatlakozókkal vannak összekötve. A vezetékek és a modulok maguk is hőszigetelés ellen vannak szigetelve.
A bemeneti jeleket a csavaros kapcsok táplálják
Az előlapon található a mért paraméterek folyadékkristályos kijelzője és a LED-ek jelzik a tartomány átkapcsolását vagy a tartománytól való távolságot.
A mérőeszköz egy 145x85x40 méretű házba van felszerelve.
A hőmérséklet-érzékelőt a csatlakozón keresztül vezetik. A jelátvitel egy kétvezetékes vonalon zajlik. Előtolás ellenállás a csatlakozóban.
A programozás megkönnyítése érdekében az Arduino USB-csatlakozók külsők.
rendszer
A séma letölthető fájlból Izmeritel.rar
Két Arduino-t két okból választottak: Arduino Nano álltak rendelkezésre, és nem voltak elegendőek az egyik memóriához, és szenzorok bővítése a tervek szerint. Ezen felül szerettem volna elsajátítani az Arduino társulást, ehhez a ModBus hálózati protokollt választottam. A ModBus meghatározza egy master processzort - Master és több slave - Slave. Ebben a munkában van egy szolga, rajta a hőmérséklet, feszültség és áram mérése. On Master - óra és rekord fájlba. A testmemória legalább 4 GB-os lehet, és FAT formátumban kell formázni.
Mivel a μA-tól A-ig terjedő áramerősség mérését tervezték, az áramokat 4 tartományban mérik (lásd a Tartománytáblázatot), az Arduino Slave figyeli az egyik tartománytól a másikig történő átmenetet, és az M1-2-től mért áramerősséghez megfelelő shuntkódot képez. A tartomány határainak megközelítésekor a következő tartomány bekapcsol, azaz az aktuális kulcs le van tiltva a T1-1 --- T2-2-ről, és a következő be van kapcsolva. Ebben az esetben a maximális sönt = 100ohm folyamatosan be van kapcsolva. Ha az érték túllépi a tartományban, akkor a D8, D9 LED-ek világítanak.
Az árammérést tartományokra osztva
Uout_max = 5v KusOU = 20 Δ = Ish / 1024
Az M1-2 operációs erősítő nyereségét 20-ra állítják, majd nem változnak. (Az előlapon hibásan van felszerelve).
A feszültséget az OU M1-1 követőjén keresztül mérik.Az op-amp és az Arduino bemeneti áramköreit diódák védik (a Zener diódák Arduinóban vannak, de nem ismerem a paramétereket, ezért jobb túlzásba helyezni).
Az LCD1602 van kiválasztva indikátorként. Csatlakozik az Arduino Mesterhez. Ezenkívül az indikátor mindkét Arduino-hoz csatlakoztatható, egyszerűen az Arduino-csatlakozók átkapcsolásával. (Ha nincs bekapcsolva.) A kapcsolat az Arduino Slave-vel szaggatott vonallal látható (amelyet a programok írásakor használtak). Az LCD1602 fő csatlakozójával (a mesterrel) 4 képernyő jeleníthető meg a p1-p2 tolókapcsoló csúsztatásával.
1. képernyő: felülről az Arduino közötti információcsere szolgáltatási információi: C az Arduino közötti váltások száma, E a hibák száma a sönt Sh-számának cseréje során;
alsó nap - hónap idő.
2. képernyő: U1, I1, Shunt No., (0,00 jobb alsó-tartalék)
3. képernyő: U2, hőmérséklet, (ui- készenlét)
4. képernyő: SD felvétel engedélyezve, felvételi idő órában, sor száma a fájlban,
00 - az áramtartomány1 állapota1 0-normális 1-es tartományon kívüli, a feszültségtartomány1-es állapota, a külső forrás rögzített teljesítménye
Ha a Slave - 2 képernyőhöz csatlakozik. A p3 kapcsoló lehetővé teszi a felvételt a Micro Flesh memóriába.
A tápegységet 12 V-os értékre választottuk, hogy az op-amp erősítő lineáris jellemzőit kapjuk (hogy elkerüljük az akadályokat a tartomány szélén). Ugyanebből az okból az alakító negatív feszültségét használták a KR1006VI1 feszültségnél. Arduino generátor használata kevésbé stabil feszültséget eredményez. Az 5 V-os energia előállításához egy lecsökkentő konvertert használtunk, de anélkül is megtehetjük, ha + 12 V-ot látunk el a VIN Arduino Nano bemenetekkel.
Közös programozás Az Arduino rendelkezik sajátosságokkal, mivel a számítógépes kommunikáció el van foglalva a ModBus protokolllal. Ha vázlatot szeretne betölteni az egyik Arduino-ba, akkor engedélyeznie kell az RST reset jelet. Ehhez használja a B és az S blokkot. Vagy nyomja le és tartsa lenyomva az Arduino modulok reset gombjait, amíg a letöltés befejeződik, ami kevésbé kényelmes, és esélye van a letöltés megsértésére. Mivel az Arduino USB-eszköz bővítését tervezem, kihúztam az ügyet.
A T5 tranzisztor (FR024N) állítólag egy folyamat be- és kikapcsolására szolgál, például egy akkumulátor töltöttségi szintjére. Bár nem vesz részt.
Szoftver.
Maximálisan rágott, hogy a kezdők (és én magam sem) nem ártok, és referenciaanyagként szolgálhatnak, de nem állítják, hogy optimálisak.
A könyvtárak és a programkódok az Izmeritel PRO.rar fájlban találhatók.
Vázlat a ModBus_Master10_SD_T_10_2 mester számára. Vázlat a slave ModBus-Slave10_T_UI_10_2 verzióhoz. A könyvtár többi része.
Az Arduino1.6.0 környezetében programozva. SD, LiquidCrystal, Wire könyvtárakat tartalmaz, ezeket nem kell letölteni.
Az órákban megadott időt a következőképpen kell beállítani a Beállításban. Állítsa be a valós időt, és töltse be a vázlatot. Ezután kommentálja a sorokat a dátum és az idő beállításához, és töltse be újra a vázlatot.
A program eredménye az idő és a dátum (órák), az áram, a feszültség, a hőmérséklet kijelzése az LCD1602 készüléken, és ezen paraméterek rögzítése az IZMER1.TXT fájlba a Micro Flesh memóriába. A fájl tartalmaz egy ilyen típusú táblát:
0; 2019/04/13; 00:11:10; Zap (h) = 0,05; tc = 29,31; U1 = 1,71; I1 = 0,00; P1 = 0,00; U2 = 0,14; DiaI norma; DiaU norma; C = 762
1; 2019/04/13; 00:11:16; Zap (h) = 0,05; tc = 29,38; U1 = 1,79; I1 = 0,00; P1 = 0,00; U2 = 0,19; DiaI norma; DiaU norma; C = 788
2; 2019/04/13; 00:11:22; Zap (h) = 0,05; tc = 29,38; U1 = 1,54; I1 = 0,00; P1 = 0,00; U2 = 0,16; DiaI norma; DiaU norma; C = 813
3; 2019/04/13; 00:11:28; Zap (h) = 0,05; tc = 29,31; U1 = 1,30; I1 = 0,00; P1 = 0,00; U2 = 0,17; DiaI norma; DiaU norma; C = 839
4; 2019/04/13; 00:11:34; Zap (h) = 0,05; tc = 29,31; U1 = 1,90; I1 = 0,00; P1 = 0,00; U2 = 0,17; DiaI norma; DiaU norma; C = 864
5; 2019/04/13; 00:11:40; Zap (h) = 0,05; tc = 29,25; U1 = 1,53; I1 = 0,00; P1 = 0,00; U2 = 0,16; DiaI norma; DiaU norma; C = 890
6; 2019/04/13; 00:11:46; Zap (h) = 0,05; tc = 29,19; U1 = 2,03; I1 = 0,00; P1 = 0,00; U2 = 0,18; DiaI norma; DiaU norma; C = 915
7; 2019/04/13; 00:11:52; Zap (h) = 0,05; tc = 29,13; U1 = 1,81; I1 = 0,00; P1 = 0,00; U2 = 0,18; DiaI norma; DiaU norma; C = 941
8. 2019/04/13; 00:11:58; Zap (h) = 0,05; tc = 29,00; U1 = 1,30; I1 = 0,00; P1 = 0,00; U2 = 0,16; DiaI norma; DiaU norma; C = 966
9; 2019/04/13; 00:12:04; Zap (h) = 0,07; tc = 28,94; U1 = 1,25; I1 = 0,00; P1 = 0,00; U2 = 0,17; DiaI norma; DiaU norma; C = 992
10; 2019/04/13; 00:12:10; Zap (h) = 0,07; tc = 29,00; U1 = 1,85; I1 = 0,00; P1 = 0,00; U2 = 0,16; DiaI norma; DiaU norma; C = 1017
11; 2019/04/13; 00:12:16; Zap (h) = 0,07; tc = 29,00; U1 = 1,21; I1 = 0,00; P1 = 0,00; U2 = 0,18; DiaI norma; DiaU norma; C = 1043
12; 2019/04/13; 00:12:23; Zap (h) = 0,07; tc = 28,94; U1 = 1,55; I1 = 0,00; P1 = 0,00; U2 = 0,18; DiaI norma; DiaU norma; C = 1068
13; 2019/04/13; 00:12:29; Zap (h) = 0,07; tc = 28,88; U1 = 1,82; I1 = 0,00; P1 = 0,00; U2 = 0,16; DiaI norma; DiaU norma; C = 1094
14; 2019/04/13; 00:12:35; Zap (h) = 0,07; tc = 28,88; U1 = 1,30; I1 = 0,00; P1 = 0,00; U2 = 0,18; DiaI norma; DiaU norma; C = 1119
ahol az oszlopok n / a vannak; dátum; idő; rögzítési idő órában; hőmérséklet; mért feszültség U1; mért I1 áram; a második mért U2 feszültség; információ a mérési tartomány kilépéséről / hiányáról; szolgáltatási információ az Arduino közötti cserék számáról.
A mérési rögzítési intervallumot 6 másodpercre választottuk, könnyen megváltoztatható, ha a #define CYCLE_TIME_F 3000 állandó értékét másikkal helyettesíti a Tsec = Állandó (ms) * 2/1000 Master képlettel.
Ezenkívül ez a táblázat szép grafikonok formájában is bemutatható.
Programok írásakor anyagokat használtam. Köszönetet mondok a szerzőnek.