Isi kandungan:
- Langkah 1: Komponen Diperlukan
- Langkah 2: Diagram Skematik
- Langkah 3: Memahami Litar
- Langkah 4: Pengiraan Frekuensi dan Voltan
- Langkah 5: Kod Arduino
- Langkah 6: Kesimpulannya
Video: Pengukuran Frekuensi Bekalan Kuasa dan Voltan Menggunakan Arduino: 6 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:07
Pengenalan:
Matlamat projek ini adalah untuk mengukur frekuensi dan voltan bekalan, antara 220 hingga 240 Volt dan 50Hz di India. Saya menggunakan Arduino untuk menangkap isyarat dan mengira frekuensi dan voltan, anda mungkin menggunakan mikrokontroler atau papan lain yang anda ada. Litar memerlukan segelintir komponen dan cukup tepat untuk semua tujuan praktikal.
Langkah 1: Komponen Diperlukan
- Arduino Uno
- IC LM358
- Transformer turun ke bawah (220V hingga 12V)
-
Kapasitor:
- 0.1uF
- 2 x 1uF
-
Perintang:
- 3 x 1kOhm
- 2 x 100kOhm
- 1.5kOhm
- 3.3kOhm
- 6.8kOhm
- 3 x 1N4148 diod
- Papan Roti dan kawat Jumper (pilihan)
Langkah 2: Diagram Skematik
Dalam litar di atas, primer pengubah disambungkan ke rangkaian bekalan dan primer disambungkan ke litar pengukur kami
Langkah 3: Memahami Litar
Menurut fungsinya, litar ini dapat dibahagikan kepada empat bahagian:
J: Litar Zero Crossing Detector
Litar ini menghasilkan denyut persegi 5V setiap kali gelombang sinus berubah dari positif ke negatif. Perintang R1 yang digabungkan dengan D1 dan D2 menghadkan ayunan voltan input di persimpangan diod hingga -0.6V hingga + 5.6V (dengan anggapan voltan hadapan diod menjadi 0.6V). Selanjutnya, anda boleh meningkatkan julat voltan input litar dengan meningkatkan nilai R1.
Perintang R2 dan R3 membentuk pembahagi voltan untuk mengehadkan ayunan voltan negatif hingga -0.24Volt kerana voltan mod biasa input LM358 terhad kepada -0.3Volt.
Perintang R4, R5, kapasitor C1 dan op-amp (di sini digunakan sebagai pembanding) membentuk litar Schmitt Trigger di mana perintang R4 dan R5 menetapkan histeresis pada input + 49.5mV di atas tanah. Output Schmitt Trigger dimasukkan ke Arduino PIN2 untuk pemprosesan selanjutnya.
B: Pengasingan dan Voltan Turun
Seperti namanya bahagian ini mengasingkan dan menurunkan voltan kepada kira-kira 12Vrms. Voltan step-down selanjutnya dimasukkan ke litar instrumentasi.
C: Litar Pengesan Puncak
Litar ini menentukan voltan puncak maksimum isyarat input. Pembahagi perintang R6 dan R7 mengurangkan voltan input dengan faktor 0.23 (12Vrms dikurangkan menjadi 2.76Vrms). Diod D3 hanya menjalankan separuh kitaran positif isyarat. Voltan merentasi C2 meningkat hingga nilai puncak isyarat yang diperbaiki, yang disalurkan ke pin analog Arduino A0 untuk mengira voltan dengan lebih lanjut.
Di samping itu, anda boleh mengganti litar ini dengan litar pengesan puncak ketepatan seperti yang disebutkan di sini. Tetapi untuk tujuan demonstrasi saya, litar di atas akan mencukupi.
D: Arduino
Di bahagian ini, Arduino menangkap denyutan persegi yang dihasilkan oleh litar Schmitt Trigger dan membaca voltan analog dari litar pengesan puncak. Data diproses lebih lanjut untuk menentukan jangka masa (oleh itu frekuensi) nadi persegi (yang sama dengan orang masa bekalan ac) dan voltan bekalan.
Langkah 4: Pengiraan Frekuensi dan Voltan
Pengiraan kekerapan:
Dengan bantuan Arduino, kita dapat mengukur jangka masa T isyarat. Denyut gelombang persegi dari pengesan melintasi sifar dimasukkan ke pin 2, dari sana kita dapat mengukur jangka masa setiap nadi. Kita boleh menggunakan pemasa dalaman Arduino (khususnya Timer1) untuk mengira jangka masa antara dua tepi Nadi persegi yang meningkat dengan bantuan gangguan. Pemasa bertambah sebanyak 1 per kitaran jam (tanpa prescaler = 1) dan nilainya disimpan dalam daftar TCNT1. Oleh itu jam 16Mhz menambah kaunter dengan 16 setiap mikrodetik. Begitu juga untuk prescaler = 8 pemasa bertambah 2 kali setiap mikrodetik. Oleh itu tempoh masa antara dua kelebihan meningkat
T = (nilai TCNT1) / masa yang diambil untuk setiap kiraan
Di mana, masa yang diambil untuk setiap kiraan = prescaler / (kelajuan jam Arduino (16MHz)
Oleh itu, frekuensi f = 1 / T = (Kelajuan jam Arduino (16MHz) / (nilai Prescaler * TCNT!)
Oleh itu kelajuan pemasa (Hz) diberikan oleh = (kelajuan jam Arduino (16MHz)) / preskaler
dan frekuensi isyarat diberikan oleh = (kelajuan jam Arduino
Sejajar dengan itu, kita dapat mengira frekuensi f dari hubungan f = 1 / T.
Pengiraan voltan:
ADC onboard Arduino mempunyai resolusi 10 bit (nilai yang mungkin = 2 ^ 10 = 1024), mengembalikan nilai dalam julat 0-1023. Untuk mengira voltan analog V yang sepadan, kita harus menggunakan hubungan berikut
V = (Bacaan ADC) * 5/1023
Untuk mengira voltan bekalan Vs (rms) kita mesti mengambil kira Transformer Ratio, Resistor pembahagi R6R7 dan litar pengesan puncak. Kita hanya dapat mengumpulkan pelbagai faktor / nisbah seperti:
Nisbah transformer = 12/230 = 0.052
Pembahagi perintang = R7 / (R6 + R7) = 0.23
Pada litar pengesan puncak = 1.414
Vs (rms) = V / (1.414 * 0.052 * 0.23) = (Bacaan ADC) * 0.289
Harus diingat bahawa nilai ini jauh dari nilai sebenarnya, terutamanya disebabkan oleh kesalahan dalam nisbah transformer sebenar dan penurunan voltan hadapan diod. Salah satu cara untuk mengelakkan ini adalah dengan menentukan faktor setelah memasang litar. Iaitu dengan mengukur voltan bekalan dan voltan merentasi kapasitor C2 secara berasingan dengan multimeter, kemudian mengira Vs (rms) seperti berikut:
Vs (rms) = ((Voltan Bekalan * 5) / (Voltan merentasi C2 * 1023)) * (Bacaan ADC)
dalam kes saya, Vs (rms) = 0.33 * (Bacaan ADC)
Langkah 5: Kod Arduino
#tentukan volt_in A0 // pin bacaan voltan analog
uint16_t t_period tidak menentu; uint16_t ADC_value = 0; float volt, freq; void isr () {t_period = TCNT1; // simpan nilai TCNT1 dalam t_period TCNT1 = 0; // reset Timer1 ADC_value = analogRead (volt_in); // baca voltan analog} float get_freq () {uint16_t timer = t_period; jika (pemasa == 0) pulangkan 0; // untuk mengelakkan pembahagian dengan sifar lain kembali 16000000.0 / (8UL * pemasa); // frekuensi diberikan oleh f = clk_freq / (prescaler * timeperiod)} persediaan tidak sah () {TCCR1A = 0; TCCR1B = bit (CS11); // tetapkan prescaler ke 8 TCNT1 = 0; // tetapkan semula nilai Timer1 TIMSK1 = bit (TOIE1); // aktifkan Timer1 overflow mengganggu EIFR | = bit (INTF0); // jelas batal gangguan INT0 Serial.begin (9600); } gelung void () {attachInterrupt (0, isr, RISING); // aktifkan kelewatan gangguan luaran (INT0) (1000); detachInterrupt (0); freq = get_freq (); volt = ADC_value * 0.33; String buf; buf + = Rentetan (freq, 3); buf + = F ("Hz / t"); buf + = Rentetan (volt); buf + = F ("Volt"); Serial.println (buf); }
Langkah 6: Kesimpulannya
Anda boleh memasang litar di papan roti dan mengubah kodnya dan menambahkan Kad SD untuk menyimpan data, yang kemudian dapat dianalisis. Salah satu contohnya ialah, anda dapat menganalisis voltan dan frekuensi pada waktu puncak.
Litar yang saya pasangkan di papan roti menggunakan LM324 (quad opamp) dan bukan LM358 (dual opamp) kerana saya tidak mempunyai IC pada masa itu dan penguncian di seluruh negara kerana pandemi COVID-19 menyukarkan saya untuk mendapatkan IC baru. Walaupun begitu, ia tidak akan mempengaruhi kerja litar.
Jangan ragu untuk memberi komen di bawah untuk sebarang cadangan dan pertanyaan.
Disyorkan:
Bekalan Kuasa Tersembunyi ATX ke Bekalan Kuasa Bangku: 7 Langkah (dengan Gambar)
Bekalan Kuasa Tersembunyi ATX ke Bekalan Daya Bench: Bekalan kuasa bangku diperlukan semasa bekerja dengan elektronik, tetapi bekalan kuasa makmal yang tersedia secara komersial boleh menjadi sangat mahal bagi setiap pemula yang ingin meneroka dan belajar elektronik. Tetapi ada alternatif yang murah dan boleh dipercayai. Dengan menyampaikan
Bekalan Kuasa Voltan DC Boleh Laras Menggunakan Pengatur Voltan LM317: 10 Langkah
Bekalan Kuasa Voltan DC Boleh Laras Menggunakan Pengatur Voltan LM317: Dalam projek ini, saya telah merancang bekalan kuasa voltan mudah laras DC menggunakan IC LM317 dengan gambarajah litar bekalan kuasa LM317. Oleh kerana litar ini mempunyai penerus jambatan terbina dalam sehingga kita dapat menghubungkan bekalan AC 220V / 110V secara langsung pada input
Bekalan Kuasa 220V hingga 24V 15A - Bekalan Kuasa Tukar - IR2153: 8 Langkah
Bekalan Kuasa 220V hingga 24V 15A | Bekalan Kuasa Tukar | IR2153: Hai lelaki hari ini Kami membuat Bekalan Kuasa 220V hingga 24V 15A | Bekalan Kuasa Tukar | IR2153 dari bekalan kuasa ATX
Cara Membuat Bekalan Kuasa Bangku yang Boleh Diselaraskan Dari Bekalan Kuasa Pc Lama: 6 Langkah (dengan Gambar)
Cara Membuat Bekalan Kuasa Bangku yang Boleh Diselaraskan dari Bekalan Kuasa Pc Lama: Saya mempunyai Bekalan Kuasa PC lama. Oleh itu, saya telah memutuskan untuk membuat bekalan kuasa Bench yang boleh disesuaikan dari itu. Kami memerlukan pelbagai voltan yang berbeza untuk menyalakan atau periksa litar atau projek elektrik yang berbeza. Oleh itu, sangat bagus untuk mempunyai
Tukar Bekalan Kuasa ATX Menjadi Bekalan Kuasa DC Biasa !: 9 Langkah (dengan Gambar)
Ubah Bekalan Kuasa ATX Menjadi Bekalan Kuasa DC Biasa !: Bekalan kuasa DC sukar dicari dan mahal. Dengan ciri-ciri yang kurang atau kurang untuk apa yang anda perlukan. Dalam Instructable ini, saya akan menunjukkan kepada anda cara menukar bekalan kuasa komputer menjadi bekalan kuasa DC biasa dengan 12, 5 dan 3.3 v