Mündəricat:
- Addım 1: Tələb olunan komponentlər
- Addım 2: Şematik Diaqram
- Addım 3: Dövrəni anlayın
- Addım 4: Tezlik və Gərginliyin Hesablanması
- Addım 5: Arduino Kodu
- Addım 6: Nəticə
Video: Arduino istifadə edərək Güc Təchizatı Tezliyi və Gərginlik Ölçülməsi: 6 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:43
Giriş:
Bu layihənin məqsədi Hindistanda 220-240 Volt və 50Hz arasında olan təchizat tezliyini və gərginliyi ölçməkdir. Siqnal çəkmək, tezliyi və gərginliyi hesablamaq üçün bir Arduino istifadə etdim, sahib olduğunuz hər hansı digər mikrokontrolördən və ya lövhədən istifadə edə bilərsiniz. Dövrə bir ovuc komponent tələb edir və bütün praktik məqsədlər üçün olduqca dəqiqdir.
Addım 1: Tələb olunan komponentlər
- Arduino Uno
- IC LM358
- Eniş transformatoru (220V -dan 12V -a qədər)
-
Kondansatörler:
- 0.1uF
- 2 x 1 uF
-
Rezistorlar:
- 3 x 1kOhm
- 2 x 100kOhm
- 1.5kOhm
- 3.3 kOhm
- 6.8kOhm
- 3 x 1N4148 diod
- Çörək taxtası və tullanan tel (isteğe bağlı)
Addım 2: Şematik Diaqram
Yuxarıda göstərilən dövrədə, transformator birincisi təchizat şəbəkəsinə, birincisi isə ölçmə sxemimizə bağlıdır
Addım 3: Dövrəni anlayın
Fəaliyyətinə görə, bu dövrəni dörd hissəyə bölmək olar:
A: Sıfır Keçid Dedektörü dövrəsi
Sinir dalğası pozitivdən neqativə keçəndə bu dövrə 5V kvadrat nəbz yaradır. D1 və D2 ilə birlikdə R1 rezistoru, diod qovşağında giriş gərginliyinin salınmasını -0.6V -dən +5.6V -ə qədər məhdudlaşdırır (diodun irəli gərginliyinin 0.6V olacağı ehtimal edilir). Bundan əlavə, R1 dəyərini artıraraq dövrənin giriş gərginliyi aralığını artıra bilərsiniz.
R2 və R3 rezistoru, mənfi gərginliyin salınmasını -0.24Volt ilə məhdudlaşdırmaq üçün bir gərginlik bölücü təşkil edir, çünki LM358 -in giriş ümumi rejim gərginliyi -0.3Volts ilə məhdudlaşır.
R4, R5, kondansatör C1 və op-amp (burada müqayisəçi kimi istifadə olunur), R4 və R5 müqavimətinin yerdən +49.5mV girişində histerezisi təyin etdiyi Schmitt Trigger sxemini təşkil edir. Schmitt Trigger -in çıxışı sonrakı emal üçün Arduino PIN2 -ə verilir.
B: İzolyasiya və Gərginlik Aşağı
Adından da göründüyü kimi, bu hissə gərginliyi təxminən 12Vrms -ə qədər ayırır və aşağı salır. Azaldılmış gərginlik daha sonra cihazların dövrəsinə verilir.
C: Peak Detector dövrəsi
Bu dövrə giriş siqnalının maksimum pik gərginliyini təyin edir. Rezistor bölücü R6 və R7 giriş gərginliyini 0,23 dəfə azaldır (12Vrms 2,76Vrms -ə endirilir). Diod D3 siqnalın yalnız müsbət yarım dövrəsini keçirir. C2 üzərindəki gərginlik, gərginliyi daha da hesablamaq üçün Arduino analog pin A0 -a verilən düzəldilmiş siqnalın pik dəyərinə qədər artır.
Əlavə olaraq, bu dövrəni burada qeyd edildiyi kimi dəqiq bir pik detektor dövrə ilə əvəz edə bilərsiniz. Ancaq nümayiş məqsədlərim üçün yuxarıdakı sxem kifayət edər.
D: Arduino
Bu hissədə, Arduino, Schmitt Trigger dövrəsinin yaratdığı kvadrat impulsları tutur və pik detektor sxemindən analoq gərginliyi oxuyur. Məlumatlar, kvadrat nəbzinin (AC təchizatı vaxtına bərabər olan) vaxt dövrünü (dolayısı ilə tezliyi) və təchizatın gərginliyini təyin etmək üçün daha da işlənir.
Addım 4: Tezlik və Gərginliyin Hesablanması
Tezliyin hesablanması:
Arduinonun köməyi ilə siqnalın T müddətini ölçə bilərik. Sıfır kəsişmə detektorundan alınan kvadrat dalğa pulsları pin 2-yə verilir, oradan hər nəbzin müddətini ölçə bilərik. Arduino -nun daxili taymerindən (xüsusi olaraq Timer1) istifadə edərək kəsilmələrin köməyi ilə kvadrat nəbzinin iki yüksələn kənarı arasındakı vaxt müddətini hesablaya bilərik. Taymer saat dövrü başına 1 artır (prescaler olmadan = 1) və dəyər TCNT1 reyestrində saxlanılır. Beləliklə, 16Mhz saatı sayğacı hər mikrosaniyədə 16 artırır. Eynilə prescaler = 8 üçün zamanlayıcı hər mikrosaniyədə 2 artırılır. Beləliklə, iki yüksələn kənar arasındakı müddət
T = (TCNT1 dəyəri) / hər sayım üçün alınan vaxt
Har bir sayım üçün alınan vaxt = prescaler / (Arduino saat sürəti (16MHz)
Beləliklə, f = 1 / T = (Arduino saat sürəti (16MHz) / (Prescaler * TCNT! Dəyəri) tezliyi
Beləliklə, taymer sürəti (Hz) = (Arduino saat sürəti (16MHz)) / prescaler ilə verilir
və siqnalın tezliyi = (Arduino saat sürəti) ilə verilir
Müvafiq olaraq, f tezliyini f = 1/T əlaqəsindən hesablaya bilərik.
Gərginliyin hesablanması:
Arduinonun ADC-nin 10 bitlik bir qətnaməsi var (mümkün dəyərlər = 2^10 = 1024), dəyərləri 0-1023 aralığına qaytarır. Müvafiq analog gərginliyi V hesablamaq üçün aşağıdakı əlaqəni istifadə etməliyik
V = (ADC Oxu) * 5/1023
Təchizat gərginliyini Vs (rms) hesablamaq üçün Transformator Oranı, Rezistor bölücü R6R7 və pik detektor dövrəsini nəzərə almalıyıq. Sadəcə olaraq müxtəlif faktorları/nisbəti bir araya gətirə bilərik:
Transformator nisbəti = 12/230 = 0.052
Rezistor bölücü = R7/(R6 + R7) = 0.23
Maksimum detektor dövrəsi = 1.414
Vs (rms) = V/(1.414*0.052*0.23) = (ADC Oxuması)*0.289
Qeyd etmək lazımdır ki, bu dəyər faktiki dəyərdən çox uzaqdır, əsasən faktiki transformator nisbətindəki səhv və diodun irəli gerilim düşməsi səbəbindən. Bunun qarşısını almağın bir yolu, dövrə yığdıqdan sonra faktoru müəyyən etməkdir. Yəni, təchizat gərginliyini və C2 kondansatöründəki gərginliyi bir multimetr ilə ayrı -ayrılıqda ölçərək, Vs (rms) aşağıdakı kimi hesablayaraq:
Vs (rms) = ((Təchizat Gerilimi *5)/(C2 *1023 üzərindəki gərginlik)) *(ADC oxunması)
mənim vəziyyətimdə Vs (rms) = 0.33*(ADC Oxu)
Addım 5: Arduino Kodu
#A0 -da volt təyin edin // analoq gərginlik oxu
uçucu uint16_t t_period; uint16_t ADC_value = 0; üzən volt, tezlik; boş isr () {t_period = TCNT1; // TCNT1 dəyərini t_periodda saxla TCNT1 = 0; // sıfırlama Timer1 ADC_value = analogRead (volt_in); // analoq gərginliyi oxuyun} float get_freq () {uint16_t timer = t_period; if (timer == 0) 0 qaytar; // sıfıra bölünməmək üçün başqa 16000000.0/(8UL*timer) qaytarın; // tezlik f = clk_freq/(prescaler*timeperiod)} tərəfindən verilir void setup () {TCCR1A = 0; TCCR1B = bit (CS11); // prescaler -ı 8 TCNT1 = 0 olaraq təyin edin; // Timer1 dəyərini sıfırlayın TIMSK1 = bit (TOIE1); // Timer1 daşqınını dayandırmaq EIFR | = bit (INTF0); // aydın INT0 kəsmə bayrağı Serial.begin (9600); } void loop () {attachInterrupt (0, isr, RISING); // xarici kəsilmə (INT0) gecikməsini aktivləşdir (1000); detachInterrupt (0); freq = get_freq (); volt = ADC_ dəyəri*0.33; String buf; buf += String (tezlik, 3); buf += F ("Hz / t"); buf += String (volt); buf += F ("Volt"); Serial.println (buf); }
Addım 6: Nəticə
Dövrəni bir çörək taxtasına yığa və kodu düzəldə və məlumatları saxlamaq üçün bir SD Kart əlavə edə bilərsiniz ki, bu da sonradan təhlil edilə bilər. Buna misal olaraq, pik saatlarda gərginliyi və tezliyi təhlil edə bilərsiniz.
Çörək taxtasına yığdığım sxem, o anda IC olmadığından LM358 (ikili opamp) əvəzinə LM324 (dörd opamp) istifadə etdi və COVID-19 pandemiyası səbəbindən ümummilli kilidləmə yeni bir IC əldə etməyimi çətinləşdirdi.. Buna baxmayaraq, dövrənin işinə təsir etməyəcək.
Hər hansı bir təklif və sorğu üçün aşağıda şərh etməkdən çekinmeyin.
Tövsiyə:
LM317 istifadə edərək DIY Güc Təchizatı - Lm 317 Dəyişən Gərginlik Çıxışı: 12 Addım
LM317 istifadə edərək DIY Güc Təchizatı | Lm 317 Dəyişən Gərginlik Çıxışı: Bu gün kiçik layihələriniz üçün kiçik bir enerji təchizatı qurğusunun necə hazırlanacağını öyrənəcəyik. LM317, aşağı cərəyan enerji təchizatı üçün ən yaxşı seçimdir. wi
LM317 gərginlik tənzimləyicisini istifadə edərək tənzimlənən gərginlik DC enerji təchizatı: 10 addım
LM317 gərginlik tənzimləyicisini istifadə edərək tənzimlənən gərginlik DC enerji təchizatı: Bu layihədə, LM317 güc təchizatı dövrə diaqramı ilə LM317 IC istifadə edərək sadə tənzimlənən gərginlikli DC enerji təchizatı hazırladım. Bu dövrənin daxili bir körpü düzəldicisi olduğu üçün girişdə birbaşa 220V/110V AC təchizatı bağlaya bilərik
Yüksək Gərginlik Güc Təchizatı: 4 addım
Yüksək Gərginlik Güc Təchizatı: Elektronika ilə işləyərkən şansınız gec -tez yüksək gərginlikli enerji təchizatı istəyəcəksiniz və ya ehtiyacınız olacaq. Bu evdə qısa müddətdə edə biləcəyiniz bir versiyadır. yüksək gərginlikli və elektriklə işləyərkən
Arduino istifadə edərək gərginlik ölçülməsi: 5 addım
Arduino istifadə edərək gərginliyin ölçülməsi: Gərginliyin ölçülməsi cərəyanın ölçülməsi ilə müqayisədə istənilən mikrokontrolördən istifadə etməklə olduqca asandır. Batareyalarla işləyirsinizsə və ya özünüz tənzimlənən enerji təchizatı etmək istəyirsinizsə, gərginliyin ölçülməsi zəruridir. Bu üsul tətbiq olunsa da
Masaüstü Gərginlik Tənzimləyicisi/Güc Təchizatı: 9 addım
Masaüstü Gərginlik Tənzimləyicisi/Güc Təchizatı: Bir elektronika tələbəsi, hobbiest və ya peşəkarsınızsa, şübhəsiz ki, cihazlarınıza və dövrələrinizə doğru gərginliyi təmin etməkdə hər zaman probleminiz var. tənzimləyici