» Tematy » Porady »Prąd cęgowy w szerokim zakresie, napięcie i temperatura

Szerokopasmowy miernik prądu, napięcia i temperatury

Spotkanie:
Do pomiaru i utrwalania w pamięci flash długich procesów wyrażonych prądem i napięciem, takich jak ładowanie - rozładowywanie akumulatorów i akumulatorów. Możliwe jest jednoczesne ustalenie temperatury.

Parametry sygnału wejściowego:
prąd I = 25mka - 2a
napięcie U = 0 - 5 V.
temperatura t = -30 - + 120 gС
czas jest ustalany przez wewnętrzny zegarek kwarcowy

Odżywianie:
ze źródła 12v / 0.3a
Zużycie <70ma

Konstrukcja:
Licznik jest zmontowany na dwóch modułach Arduino Nano podłączony przez protokół ModBus, patrz schemat. Jeden Arduino jest zamontowany na pionie z blokami zacisków. Moduły są połączone za pomocą złączy. Druty i same moduły są izolowane od uszkodzeń termiczno-cambrycznych.

Sygnały wejściowe są podawane przez zaciski śrubowe

Na panelu przednim znajduje się wskaźnik ciekłokrystaliczny mierzonych parametrów i diody LED wskazujące przełączanie zakresu lub poza zakresem.

Miernik jest zamontowany w obudowie 145x85x40.
Czujnik temperatury jest przeprowadzany przez złącze. Transmisja sygnału jest zorganizowana na linii dwuprzewodowej. Rezystor zasilający w złączu.

Dla ułatwienia programowania złącza USB Arduino są zewnętrzne.






Schemat

Schemat można pobrać z pliku Meter.rar

Wybrano dwa Arduino z dwóch powodów: Arduino Nano były dostępne i niewystarczające w jednej pamięci i planowane jest dalsze dodanie czujników. Ponadto chciałem opanować asocjację Arduino, do tego został wybrany protokół sieciowy ModBus. ModBus definiuje jeden procesor główny - Master i kilka slaveów - Slave. W tej pracy jest jeden Slave, na nim jest pomiar temperatury, napięcia i prądu. On Master - zegar i zapis do pliku. Pamięć ciała musi być mniejsza niż 4 GB i sformatowana w FAT.

Ponieważ zaplanowano pomiar prądów od μA do A, prądy mierzone są w 4 zakresach (patrz tabela zakresów), Arduino Slave monitoruje przejście z jednego zakresu do drugiego, tworząc odpowiedni kod bocznikowy dla mierzonego prądu z M1-2. Zbliżając się do granicy zakresu, włączany jest następny zakres, to znaczy aktualny klucz z T1-1 --- T2-2 jest wyłączony, a następny włączony. W takim przypadku maksymalny bocznik = 100 omów jest stale włączony. W przypadku przekroczenia wartości w tym zakresie diody D8, D9 świecą.

Podział pomiaru prądu na zakresy
Uout_max = 5v KusOU = 20 Δ = Ish / 1024

Wzmocnienie wzmacniacza operacyjnego M1-2 jest ustawione na 20, a następnie nie zmienia się. (Na panelu przednim jest źle zamontowany).
Napięcie jest mierzone przez popychacz na OU M1-1.Obwody wejściowe wzmacniacza operacyjnego i Arduino są chronione przez diody (diody Zenera są w Arduino, ale nie znam parametrów, dlatego lepiej przesadzić).

LCD1602 jest wybrany jako wskaźnik. Jest podłączony do Arduino Master. Ponadto wskaźnik można podłączyć do obu Arduino, po prostu przełączając złącza Arduino. (Gdy zasilanie jest wyłączone.) Połączenie z Arduino Slave jest pokazane linią przerywaną (która była używana podczas pisania programów). Przy głównym połączeniu (do Master) na LCD1602 można wyświetlić 4 ekrany, przesuwając suwak p1-p2.

Screen1: z góry informacja serwisowa o wymianie między Arduino: C to liczba wymian między Arduino, E to liczba błędów podczas wymiany numeru Sh-bocznika;
dolny dzień - czas miesiąca.


Screen2: U1, I1, numer bocznika, (0,00 dolna prawa rezerwa)


Screen3: U2, temperatura, (standby)


Screen4: Nagrywanie SD włączone, czas nagrywania w godzinach, numer linii w pliku,
00- stan zakresu prądu1 0-normalny 1-poza zakresem, stan zakresu napięcia1, stała moc zewnętrznego źródła


Po podłączeniu do Slave - 2 ekrany. Przełącznik p3 umożliwia nagrywanie w pamięci Micro Flesh.
Zasilacz jest wybierany 12 V, aby uzyskać charakterystykę liniową wzmacniacza operacyjnego (aby uniknąć blokad na krawędziach zakresu). Z tego samego powodu zastosowano ujemne napięcie z urządzenia kształtującego przy KR1006VI1. Korzystanie z generatora Arduino wytwarza mniej stabilne napięcie. Aby wygenerować moc 5 V, zastosowano konwerter obniżający napięcie, ale można to zrobić, dostarczając + 12V do wejść VIN Arduino Nano.
Wspólne programowanie Arduino ma funkcje, ponieważ komunikacja z komputerem jest zajęta protokołem ModBus. Aby załadować szkic do jednego z Arduino, na drugim musisz włączyć sygnał resetowania RST. Aby to zrobić, użyj zworek Block S, Block M. Lub naciśnij i przytrzymaj przyciski resetowania na modułach Arduino, aż pobieranie zostanie zakończone, co jest mniej wygodne i istnieje możliwość uszkodzenia pobierania. Ponieważ planuję rozbudować urządzenie USB Arduino, wyciągnąłem obudowę.

Tranzystor T5 (FR024N) ma służyć do włączania / wyłączania procesu, na przykład rozładowania akumulatora. Chociaż nie jest zaangażowany.

Oprogramowanie
Maksymalnie żuje się, że początkujący (i ja sam) nie zaszkodzą i mogą służyć jako materiał odniesienia, ale nie twierdzą, że są optymistami.

Biblioteki i kody programów znajdują się w pliku Izmeritel PRO.rar.
Szkic dla mistrza ModBus_Master10_SD_T_10_2. Szkic dla slave ModBus-Slave10_T_UI_10_2. Reszta biblioteki.
Programowany w środowisku Arduino 1.6.0. Zawiera biblioteki SD, LiquidCrystal, Wire nie trzeba pobierać.

Czas w godzinach ustawia się w Setup w następujący sposób. Ustaw czas rzeczywisty i załaduj szkic. Następnie skomentuj linie do ustawienia daty i godziny i ponownie załaduj szkic.

Wynikiem programu będzie wskazanie godziny i daty (godziny), prądu, napięcia, temperatury na LCD1602 oraz zapis tych parametrów w pliku IZMER1.TXT w pamięci Micro Flesh. Plik będzie zawierać tabelę tego rodzaju:

0; 04/13/2019; 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; 04/13/2019; 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; 04/13/2019; 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; 04/13/2019; 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; 04/13/2019; 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; 04/13/2019; 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; 04/13/2019; 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; 04/13/2019; 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; 04/13/2019; 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; 04/13/2019; 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; 04/13/2019; 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; 04/13/2019; 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; 04/13/2019; 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; 04/13/2019; 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; 04/13/2019; 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

gdzie kolumny znajdują się nie dotyczy; Data czas czas nagrywania w godzinach; temperatura zmierzone napięcie U1; zmierzony prąd I1; drugie zmierzone napięcie U2; informacja o wyjściu / braku zakresu pomiarowego; informacje serwisowe o liczbie wymian między Arduino.

Interwał rejestracji pomiaru został wybrany na 6 sekund, łatwo go zmienić, zastępując wartość stałej #define CYCLE_TIME_F 3000 inną formułą Tsec = Constant (ms) * 2/1000 w Master.
Ponadto tabelę tę można przedstawić w postaci ładnych wykresów.



Podczas pisania programów korzystałem z materiałów. Wyrażam wdzięczność autorowi.

Nadaje się do tematu

Powiązane tematy

Dodaj komentarz

    • uśmiechnij sięuśmiecha sięxaxaoknie wiemyahoonea
      szefiezadrapaniegłupiectaktak-takagresywnysekret
      przepraszamtańczyćdance2dance3przebaczeniepomocnapoje
      przestańprzyjacieledobrzegoodgoodgwizdaćomdlećjęzyk
      palićklaskanierakdeklarowaćdrwiącydon-t_mentionpobierz
      ciepłożałujęśmiech 1mdaspotkaniemoskingnegatywne
      niepopcornukaraćczytaćprzestraszyćstraszyszukaj
      drwinadziękujętoto_clueumnikostryzgadzam się
      źlepszczołablack_eyeblum3rumienić sięchwalić sięnuda
      ocenzurowaneuprzejmośćsekret2grozićzwycięstwoyusun_bespectacled
      shokrespektlolprevedwitamykrutoyya_za
      ya_dobryipomocnikne_huliganne_othodifludzakazzamknij
2 komentarz
Dziwne włączenie NE555 do negatywnego sterownika. ((
Aby meander mógł przejść na pole, musi być podłączony do wyjścia IP.
Fit Arduino dla własnych potrzeb, oczywiście, przydatna firma, ale niedawno nabyta, cena emisyjna jest mniejsza niż 1 t.r .:
Dane techniczne UM24C
• wyświetlacz: 1,44 ", 128х128, kolorowy, kąty widzenia są zbliżone do 180º
• porty wejściowe: USB typ A męski, Micro USB typ B żeński
• port wyjściowy: USB typu A żeńskie
• napięcie: 4,50–24,00 V.
• natężenie prądu: 0–3 000 A.
• rozdzielczość wyświetlania napięcia: 0,01 V.
• rozdzielczość wyświetlana siła prądu: 0,001A
• dokładność pomiaru napięcia: ± (0,2% + 1 cyfra)
• aktualna dokładność pomiaru: ± (0,8% + 3 cyfry)
• Obsługa Qualcomm Quick Charge: QC 2.0 i QC 3.0
• 10 komórek pamięci do przechowywania zmierzonej pojemności i energii
• Funkcja pomiaru rezystancji kabla Micro USB
• ręczny wybór progu rozpoczęcia pomiaru: 0,00-0,30 A.
• wyświetlanie temperatury, rezystancji podłączonego obciążenia, mocy
• wyświetlanie wykresów napięcia i prądu
• wyświetlanie napięcia na liniach danych portu USB, aktualny tryb pracy
• ekran automatycznego wyłączania: 1-9 minut, wyłączony
• jasność ekranu: 0-5 (6 poziomów)
• wyświetlacz temperatury: w stopniach Celsjusza lub Fahrenheita
• pomoc online
• obrót ekranu o 90º / 180º / 270º
• bezprzewodowe dwukierunkowe połączenie Bluetooth z komputerem (SPP - Serial Port Profile)
uśmiechnij się

Radzimy przeczytać:

Podaj go do smartfona ...