Mundarija:
- 1 -qadam: zarur komponentlar
- 2 -qadam: sxematik diagramma
- 3 -qadam: O'chirish davrini tushunish
- 4 -qadam: Chastotani va kuchlanishni hisoblash
- 5 -qadam: Arduino kodi
- 6 -qadam: Xulosa
Video: Arduino yordamida quvvat manbai chastotasi va kuchlanishni o'lchash: 6 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:23
Kirish:
Loyihaning maqsadi - bu Hindistonda 220 dan 240 voltgacha 50 gtsgacha bo'lgan chastota va kuchlanishni o'lchash. Men signalni olish, chastota va kuchlanishni hisoblash uchun Arduino -dan foydalandim, sizda boshqa mikrokontrolder yoki taxtadan foydalanishingiz mumkin. O'chirish bir nechta komponentlarni talab qiladi va barcha amaliy maqsadlar uchun juda aniq.
1 -qadam: zarur komponentlar
- Arduino Uno
- IC LM358
- Pastga tushadigan transformator (220 V dan 12 V gacha)
-
Kondensatorlar:
- 0.1uF
- 2 x 1uF
-
Rezistorlar:
- 3 x 1kOm
- 2 x 100kOm
- 1,5kOm
- 3.3 Ohm
- 6.8kOm
- 3 x 1N4148 diodli
- Non paneli va o'tish kabeli (ixtiyoriy)
2 -qadam: sxematik diagramma
Yuqoridagi sxemada transformator birlamchi besleme tarmog'iga ulanadi va birlamchi o'lchash sxemamizga ulanadi
3 -qadam: O'chirish davrini tushunish
Funktsional xususiyatlarga ko'ra, ushbu sxemani to'rt qismga bo'lish mumkin:
Javob: Nolinchi o'tish detektori sxemasi
Sinus to'lqini ijobiydan salbiyga o'tganda, bu sxema 5V kvadrat puls hosil qiladi. R1 rezistori D1 va D2 bilan birgalikda diod birikmasida kirish voltajining o'zgarishini -0,6V dan +5,6V gacha cheklaydi (diodning oldinga kuchlanishini 0,6V deb hisoblasak). Bundan tashqari, siz R1 qiymatini oshirib, kontaktlarning zanglashiga olib kirish diapazonini oshirishingiz mumkin.
R2 va R3 rezistorlari manfiy kuchlanishni -0,24 Vtgacha cheklash uchun kuchlanish bo'luvchi hosil qiladi, chunki LM358 kirish umumiy rejimidagi kuchlanish -0,3 Volt bilan cheklangan.
R4, R5 rezistorlari, kondansatör C1 va op-amp (bu erda taqqoslagich sifatida ishlatiladi) Schmitt Trigger sxemasini hosil qiladi, bu erda R4 va R5 rezistorlari erdan +49.5mV kirishda histerezni o'rnatadi. Schmitt Trigger -ning chiqishi Arduino PIN2 -ga qo'shimcha ishlov berish uchun beriladi.
B: izolyatsiya va kuchlanish pastga tushadi
Nomidan ko'rinib turibdiki, bu qism izolyatsiyalanadi va taxminan 12Vrms ga tushadi. Bosqichli kuchlanish qo'shimcha ravishda asboblar zanjiriga beriladi.
C: tepalik detektori davri
Bu sxema kirish signalining maksimal tepalik kuchlanishini aniqlaydi. R6 va R7 rezistorlari kirish voltajini 0,23 marta kamaytiradi (12Vrms 2,76Vrmsgacha kamayadi). D3 diodi signalning faqat ijobiy yarim tsiklini o'tkazadi. C2 dagi kuchlanish to'g'rilangan signalning eng yuqori qiymatiga qadar oshadi, u Arduino analog pin A0 ga uzatiladi, bu esa kuchlanishni hisoblab chiqadi.
Bunga qo'shimcha ravishda, siz ushbu kontaktlarning zanglashiga olib kelishi mumkin bo'lgan aniq piktogramma bilan almashtirishingiz mumkin. Lekin mening namoyish maqsadlarim uchun yuqoridagi sxema etarli bo'ladi.
D: Arduino
Bu qismda Arduino Schmitt Trigger sxemasi tomonidan hosil qilingan kvadrat pulslarni ushlaydi va analog voltajni tepalik detektori zanjiridan o'qiydi. Ma'lumotlar kvadrat impulsining vaqtini (shuning uchun chastotani) (bu o'zgaruvchan tok bilan ta'minlangan odamga teng) va ta'minot kuchlanishini aniqlash uchun qayta ishlanadi.
4 -qadam: Chastotani va kuchlanishni hisoblash
Chastotani hisoblash:
Arduino yordamida biz signalning T vaqtini o'lchay olamiz. Nolinchi kesish detektorining kvadrat to'lqin pulslari 2-pinga uzatiladi, u erdan biz har bir pulsning vaqtini o'lchay olamiz. Biz Arduino ichki taymeridan (aniqrog'i Timer1) foydalanishimiz mumkin. Taymer soat aylanishiga 1 taga ko'payadi (oldindan hisoblagichsiz = 1) va qiymat TCNT1 registrida saqlanadi. Shunday qilib, 16 MGts soat har bir mikrosaniyada hisoblagichni 16 ga oshiradi. Xuddi shunday prescaler = 8 uchun taymer har bir mikrosaniyada 2 ga ko'payadi. Shunday qilib, ikki ko'tarilgan chegara orasidagi vaqt
T = (TCNT1 qiymati) / har bir hisoblash uchun olingan vaqt
Qaerda, har bir sanash uchun vaqt = prescaler / (Arduino soat tezligi (16 MGts))
Shunday qilib, chastota f = 1 / T = (Arduino soat tezligi (16 MGts) / (Prescaler * TCNT! Qiymati)
Shunday qilib, taymer tezligi (Hz) = (Arduino soat tezligi (16 MGts)) / oldindan hisoblagich bilan belgilanadi
va signal chastotasi = (Arduino soat tezligi) bilan berilgan
Shunga mos ravishda, biz f = 1/T munosabatlaridan f chastotasini hisoblashimiz mumkin.
Voltajni hisoblash:
Arduino bortidagi ADC 10 bitlik o'lchamga ega (mumkin bo'lgan qiymatlar = 2^10 = 1024), qiymatlarni 0-1023 oralig'ida qaytaradi. Tegishli analog V kuchlanishini hisoblash uchun biz quyidagi munosabatni ishlatishimiz kerak
V = (ADC o'qish) * 5/1023
Besleme zo'riqishida Vs (rms) ni hisoblash uchun biz transformator nisbati, R6R7 rezistor bo'linishi va tepalik detektori sxemasini hisobga olishimiz kerak. Biz har xil omillarni/nisbatlarni birlashtira olamiz:
Transformator nisbati = 12/230 = 0,052
Rezistor ajratuvchi = R7/(R6 + R7) = 0,23
Maksimal detektor pallasida = 1.414
Vs (rms) = V/(1.414*0.052*0.23) = (ADC o'qish)*0.289
Shuni ta'kidlash kerakki, bu qiymat haqiqiy qiymatdan uzoqdir, asosan haqiqiy transformator nisbati xatosi va diod oldinga kuchlanish pasayishi tufayli. Buni chetlab o'tishning bir usuli - kontaktlarning zanglashiga olib kelingandan so'ng omilni aniqlash. Ya'ni, besleme zo'riqishida va C2 kondansatkichidagi kuchlanishni multimetr bilan alohida o'lchab, Vs (rms) ni quyidagicha hisoblab:
Vs (rms) = ((Besleme zo'riqishida *5)/(C2 *1023 bo'ylab kuchlanish)) *(ADC o'qilishi)
mening holimda, Vs (rms) = 0.33*(ADC o'qilishi)
5 -qadam: Arduino kodi
#aniqlang volt_0 A0 // analog kuchlanish o'qi
uchuvchi uint16_t t_period; uint16_t ADC_value = 0; suzuvchi volt, chastota; bekor isr () {t_period = TCNT1; // TCNT1 qiymatini t_periodda saqlash TCNT1 = 0; // reset Timer1 ADC_value = analogRead (volt_in); // analog kuchlanishni o'qing} float get_freq () {uint16_t taymer = t_period; if (taymer == 0) 0 qaytarish; // nolga bo'linishni oldini olish uchun 16000000.0/(8UL*taymer) ni qaytaring; // chastota f = clk_freq/(prescaler*timeperiod)} tomonidan berilgan void setup () {TCCR1A = 0; TCCR1B = bit (CS11); // oldindan hisoblagichni 8 TCNT1 = 0 ga o'rnating; // Timer1 qiymatini tiklash TIMSK1 = bit (TOIE1); // faollashtirish Timer1 to'lg'azish EIFR | = bit (INTF0); // aniq INT0 uzilish bayrog'i Serial.begin (9600); } void loop () {attachInterrupt (0, isr, RISING); // tashqi uzilishni (INT0) kechiktirishni yoqish (1000); detachInterrupt (0); freq = get_freq (); volt = ADC_ qiymati*0,33; String buf; buf += String (chastota, 3); buf += F ("Hz / t"); buf += String (volt); buf += F ("Volts"); Serial.println (buf); }
6 -qadam: Xulosa
Siz sxemani non paneliga yig'ib, kodni o'zgartirishingiz va ma'lumotlarni saqlash uchun SD -kartani qo'shishingiz mumkin, uni keyinchalik tahlil qilish mumkin. Misollardan biri shundaki, siz kuchlanish va chastotani pik soatlarda tahlil qilishingiz mumkin.
Men taxtada yig'ilgan sxemada LM358 o'rniga (ikkita opamp) LM324 (to'rt opamp) ishlatilgan, chunki menda o'sha paytda IC yo'q edi va COVID-19 pandemiyasi tufayli butun mamlakat bo'ylab blokirovka qilish menga yangi ICni olishimni qiyinlashtirdi.. Shunga qaramay, bu sxemaning ishlashiga ta'sir qilmaydi.
Har qanday taklif va so'rov uchun quyida izoh qoldiring.
Tavsiya:
Kam quvvat iste'moli davrida simsiz aloqa modullarining quvvat sarfini qanday to'g'ri o'lchash mumkin?: 6 qadam
Kam quvvat iste'moli davrida simsiz aloqa modullarining quvvat sarfini qanday to'g'ri o'lchash mumkin ?: Kam quvvat iste'moli - narsalar Internetida juda muhim tushuncha. Ko'pgina IoT tugunlari batareyalar bilan quvvatlanishi kerak. Faqat simsiz modulning quvvat sarfini to'g'ri o'lchash orqali biz qancha batareya quvvatini aniq hisoblashimiz mumkin
220V dan 24V gacha 15A quvvat manbai - Quvvat manbasini almashtirish - IR2153: 8 qadam
220V dan 24V gacha 15A quvvat manbai | Quvvat manbasini almashtirish | IR2153: Salom yigit bugun biz 220V dan 24V gacha 15A quvvat manbai qilamiz | Quvvat manbasini almashtirish | ATX quvvat manbaidan IR2153
Arduino yordamida kuchlanishni o'lchash: 5 qadam
Arduino yordamida kuchlanishni o'lchash: Har qanday mikrokontroller yordamida kuchlanishni o'lchash tokni o'lchashga qaraganda ancha oson. Agar siz batareyalar bilan ishlayotgan bo'lsangiz yoki o'zingiz sozlanadigan quvvat manbasini o'rnatmoqchi bo'lsangiz, kuchlanishni o'lchash zarur bo'ladi. Garchi bu usul qo'llanilsa ham
Eski kompyuter quvvat manbaidan sozlanishi dastgoh quvvat manbai: 6 qadam (rasmlar bilan)
Eski kompyuter quvvat manbaidan quvvat manbaini qanday sozlash mumkin: menda eski kompyuter quvvat manbai bor, shuning uchun men undan sozlanadigan dastgoh quvvat manbai yasashga qaror qildim. har xil elektr zanjirlarini yoki loyihalarini tekshiring, shuning uchun sozlanishi har doim yaxshi
Kompyuter quvvat manbaini o'zgarmaydigan dastgohga aylantiring yuqori laboratoriya quvvat manbai: 3 qadam
Kompyuter quvvat manbasini o'zgarmaydigan dastgohga aylantiring. Ma'lum bo'lishicha, eskirgan kompyuter quvvat manbai ish uchun juda mos keladi. Bularning narxi sizga atigi 25 dollar va qisqa tutashuvdan himoya, issiqlik himoyasi, haddan tashqari yuklanishdan himoya va