Mundarija:
- 1 -qadam: Namoyish
- 2 -qadam: Ishlatilgan manbalar
- 3 -qadam: Blok diagrammasi
- 4 -qadam: sxema
- 5 -qadam: LM386 - qadash
- 6 -qadam: AmpOp - differentsial (olib tashlovchi)
- 7 -qadam: AmpOp - Inverter Adder
- 8 -qadam: Maple Mini - Pinage
- 9 -qadam: Maple Mini - Pinning - a / D suratga olishda ishlatiladi
- 10 -qadam: yig'ish
- 11 -qadam: olingan ma'lumotlar bilan grafik
- 12 -qadam: RMS qiymatini hisoblash
- 13 -qadam: Manba kodi
- 14 -qadam: fayllar
Video: Haqiqiy-RMS AC kuchlanishini o'lchash: 14 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:26
Bugun biz STM32 Maple Mini -dan AC -ni o'qish uchun foydalanamiz. Bizning misolimizda biz elektr tarmog'ining RMS qiymatini olamiz. Bu narsalar Interneti uchun elektr tarmog'ini kuzatishni istaganlar uchun juda foydali. Keyin biz Maple Mini -ning hisoblash quvvatidan foydalangan holda dastur yaratamiz, 127Vac signalni olishga imkon beradigan elektron sxemani qo'llaymiz, shuningdek namunalarda o'rtacha o'rtacha kvadrat (RMS) hisobini qo'llaymiz.
1 -qadam: Namoyish
Bugungi yig'ilishimizda biz 110 -ni kiritish uchun analog sxemamizdan tashqari STM32 -ni ham olamiz. Shoklarni oldini olish uchun 110 ga kiradigan rezistorni ajratib oling.
O'chirish juda sezgir. Men 110 ga kiraman, lekin men kuchlanish taqsimlagich yordamida uni 168 marta kamaytiraman va uni bir nechta funktsiyali operatsion kuchaytirgichga qo'yaman.
Bizda manba filtrlash uchun ixtiyoriy kondansatörler ham bor. Agar sizning manbangiz sifatli bo'lsa, ularni ishlatishingiz shart emas.
AD kirishi osiloskop orqali hisoblab chiqiladi, unda siz sinusoidni ko'rasiz, u 110 emas (lekin u yaxshi shakllangan). Yana bir narsa shundaki, bizning elektr tarmog'imizdagi kuchlanish 110 emas (aslida 127 volt). Ammo biz stabilizatordan o'tayotganimizda, u 115V ga moslashadi.
Ketma -ket monitorda ko'rsatiladigan qiymat RMSda, ya'ni Fluke Meter tomonidan aniqlangan qiymat hisoblanadi.
2 -qadam: Ishlatilgan manbalar
• Jumpers
• Maple Mini
• Protoboard
• LM386 kuchaytirgichi
• Nosimmetrik manba (+ 5V va -5V)
• 10k ko'p burilishli trimpot (yoki potentsiometr)
• 100nF polyesterli to'rtta kondansatör
• Uchta 10k qarshilik
• To'rtta 470k rezistor
• Bitta 5k6 qarshilik
• Bitta 1n4728A zener diodi
3 -qadam: Blok diagrammasi
4 -qadam: sxema
Bu men o'lchov uchun eng yaxshisi bo'lgan spetsifikatsiyalar asosida ishlab chiqilgan sxema, lekin Internetda topish mumkin bo'lgan boshqa misollar ham bor.
5 -qadam: LM386 - qadash
LM386 konditsioner yoki signalni kuchaytirish uchun ikkita kuchaytirgichga ega.
6 -qadam: AmpOp - differentsial (olib tashlovchi)
7 -qadam: AmpOp - Inverter Adder
8 -qadam: Maple Mini - Pinage
Belgilangan pinlar:
Qizil >> 3V3 bardoshli
Yashil >> 5V bardoshli
9 -qadam: Maple Mini - Pinning - a / D suratga olishda ishlatiladi
Men shuni ta'kidlaymanki, men ishlatgan pin D11, bu (STMikroelektronika nomenklaturasida) PA0.
10 -qadam: yig'ish
Bizning sxemamiz uchun sizga nosimmetrik manba kerak bo'ladi, xuddi shu loyiha uchun biz yaratgan. Aks holda, sizga ikkita manba kerak bo'ladi.
11 -qadam: olingan ma'lumotlar bilan grafik
12 -qadam: RMS qiymatini hisoblash
13 -qadam: Manba kodi
Manba kodi - ta'riflar va doimiylar
Dastlab, biz pin o'qishni D11 deb, shuningdek, hisob -kitoblarda ishlatiladigan turli xil konstantalarni aniqladik.
#define leituraTensao D11 // AD CH0 no pino PA0 // valor teórico divisor de tensão = 168.85714285714285714286 const float fatorDivisor = 168.40166345742404792461; // jasorat teorikasi ganho de amplificação = 1.0 const float fatorAmplificador = 1.0; // FlatMultiplicacao = fatorDivisor * fatorAmplificador; // Valor teórico da Tensão de alimentação Vcc = 3.3V const float Vcc = 3.3; // valor teórico do offset do amplificador = Vcc /2.0; const float offSet = 1.66; // AD = 3.3 / 4095.0 const float fatorAD = Vcc / 4095.0; const int amostras = 71429; // natija 1, 027 -ni yozish mumkin emas // const int amostras = 35715; // natija 0, 514 ga teng
Manba kodi - global o'zgaruvchilar
Endi biz ba'zi global o'zgaruvchilarni aniqlaymiz.
float Vrms = 0,0; // armazena o valor rms da tensãofloat Vmax = 0.0; // qurol -yarog 'aniqlanadigan float Vmin = 10000.0; // qurol -aslahalar aniqlang float Vmed = 0.0; // Vmáx e Vmín -dan foydalangan holda
Manba kodi - sozlash ()
Seriya portini 1 Mbit / s tezlikda ishga tushiring. Biz AD portini kirish sifatida sozladik va ma'lumotlarni yig'ishni boshlashdan oldin 5 soniya kutdik. Kutish vaqti ixtiyoriy.
void setup () {Serial.begin (1000000); // 1Mbps pinMode ketma -ket ketma -ketligi (leituraTensao, INPUT); // bizni kutish vaqtini kechiktirish (5000); // 5 -sonli kitoblar. (ixtiyoriy)}
Manba kodi - Loop () - Ma'lumot yig'ish o'zgaruvchilarini ishga tushiradi
Loopda bizda iteratsiya uchun o'zgaruvchi mavjud. Bu erda biz AD o'qilishini 0,0 da saqlaymiz va VRMS o'zgaruvchisini 0,0 da qayta ishga tushiramiz.
void loop () {int i = 0; // variável para iteração float leitura = 0.0; // armazena, leytura sifatida AD Vrms = 0.0; // qayta ko'rib chiqilgan Vrms
Manba kodi - har bir namuna uchun individual hisoblarni yozib oladi va bajaradi
Bu bosqichda, agar i namunadan kichikroq bo'lsa, men namunalar soniga yetguncha namuna olish davrini boshlaymiz. Biz analog portni o'qish va o'qilgan kuchlanish kvadratlarining yig'indisini hisoblash uchun analogRead -ni ishga tushiramiz. Nihoyat, biz iteratorni ko'paytiramiz.
while (i <amostras) {// inicia um ciclo de amostragem até que i alcance o número de amostras leitura = analogRead (leituraTensao); // analogikaning bir qismi // Serial.println(leitura); // AD Vrms = Vrms + pow (((leitura * fatorAD) - offSet), 2.0); // hisob -kitoblar svopta quadrados das tensões lidas i ++; // orttirish yoki orttirish}
Manba kodi - namunalarning umumiy hisob -kitoblari va maksimal, minimal va o'rtacha ko'rsatkichlarni aniqlash
Biz kuchlanishlarning haqiqiy qiymatini aniqlash uchun ko'paytirish faktini qo'llaymiz. Biz qiymatning maksimal yoki minimal ekanligini aniqlaymiz va joriy maksimal va minimal qiymatlarning o'rtacha qiymatini hisoblaymiz.
// Aplicando fator de multiplicação para determinar is a valores a real das tensões Vrms = (sqrt (Vrms /amostras)) * fatorMultiplicacao; // detecta se é um valor é máximo if (Vrms> Vmax) {Vmax = Vrms; } // aniqlanganda, agar (Vrms <Vmin) {Vmin = Vrms; } // hisob -kitoblar Vmed = (Vmax + Vmin) /2.0;
Manba kodi - chiqish variantlari
Bizda chiqish qiymatini "chizish" uchun uchta variant mavjud. Bizda CSV yoki Jason kabi Arduino IDE ketma -ket plotteriga formatlangan chiqish mavjud.
// IDE Arduino Serial.print (Vrms, 3) ketma -ket ketma -ketlikdagi formatlash; Serial.print (","); Serial.print (Vmax, 3); Serial.print (","); Serial.print (Vmin, 3); Serial.print (","); Serial.println (Vmed, 3); /* // formatda buyruq json Serial.print ("{" bir zumda (ms) ":"); Serial.print (millis ()); Serial.print (","); Serial.print ("\" Vrms (V) ":"); Serial.print (Vrms, 3); Serial.print (","); Serial.print ("\" Vmax (V) ":"); Serial.print (Vmax, 3); Serial.print (","); Serial.print ("\" Vmin (V) ":"); Serial.print (Vmin, 3); Serial.print (","); Serial.print ("\" Vmed (V) ":"); Serial.print (Vmed, 3); Serial.println ("}"); * / /* // CSV Serial.print formatida (millis ()); Serial.print (","); Serial.print (Vrms, 3); Serial.print (","); Serial.print (Vmax, 3); Serial.print (","); Serial.print (Vmin, 3); Serial.print (","); Serial.println (Vmed, 3); */}
14 -qadam: fayllar
Fayllarni yuklab oling:
INO
Tavsiya:
DC - shahar kuchlanishini pastga tushirish rejimining o'zgaruvchan kuchlanish konvertori (LM2576/LM2596): 4 qadam
DC-shahar voltajini pastga tushirish rejimi Buck kuchlanish konvertori (LM2576/LM2596): yuqori samarali konvertorni ishlab chiqarish juda qiyin ish, hatto tajribali muhandislar ham bir nechta dizaynni to'g'ri bajarishni talab qiladi. bu kuchlanishni pasaytiradigan DC-to-DC quvvat konvertori
Arduino yordamida shahar kuchlanishini o'lchash: 5 qadam
Arduino yordamida shahar kuchlanishini o'lchash: Ushbu loyihada men sizga arduino yordamida 50Vgacha bo'lgan shahar kuchlanishini o'lchashni ko'rsataman va OLED displey modulining bir qismi arduino UNOoled displeyiga kerak 10k ohmli rezistor 1k ohmli rezistor kabeli
Raqamli eshiklarning kuchlanishini o'lchash uchun sxemadan foydalanish: 7 qadam
Raqamli eshiklar kuchlanishini o'lchash uchun elektrondan foydalanish: Raqamli davralarda odatda 5 voltli quvvat manbalari ishlatiladi. TTL seriyasidagi 5v -2.7 voltli raqamli kuchlanish (raqamli o'rnatilgan chip turi) yuqori hisoblanadi va 1. raqamli kuchlanishlarga ega. 0-0.5 shakli past deb hisoblanadi va
DC to DC Buck Konverter DIY -- DC kuchlanishini qanday osonlik bilan tushirish mumkin: 3 qadam
DC to DC Buck Konverter DIY || Shahar kuchlanishini qanday osonlik bilan pasaytirish kerak: Bukka konvertori (pastga tushirish konvertori)-bu tokdan (tokni kuchaytirish paytida) uning kirishidan (ta'minotidan) chiqishiga (yukiga) tushadigan, tokdan-tokka o'zgaruvchan tok konvertori. Bu, odatda, kamida
Arduino va Node-RED yordamida shahar kuchlanishini o'lchash: 8 qadam (rasmlar bilan)
DC kuchlanishini Arduino va Node-RED yordamida o'lchash: Arduino yordamida shahar kuchlanishini o'lchash bo'yicha juda ko'p qo'llanmalar mavjud, bu holda men qarshilikni kiritish qiymatlarini talab qilmasdan shaharni o'lchashning eng yaxshi funktsional usuli deb hisoblaydigan o'quv qo'llanmasini topdim. va multimetr,