Isi kandungan:
- Langkah 1: Demonstrasi
- Langkah 2: Sumber yang Digunakan
- Langkah 3: Gambarajah Blok
- Langkah 4: Skim
- Langkah 5: LM386 - Sematkan
- Langkah 6: AmpOp - Pembezaan (pengurang)
- Langkah 7: AmpOp - Penambah Inverter
- Langkah 8: Maple Mini - Pinage
- Langkah 9: Maple Mini - Pinning - a / D Digunakan dalam Menangkap
- Langkah 10: Perhimpunan
- Langkah 11: Grafik Dengan Data Diperolehi
- Langkah 12: Mengira Nilai RMS
- Langkah 13: Kod Sumber
- Langkah 14: Fail
Video: Mengukur Voltan AC True-RMS: 14 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:10
Hari ini, kita akan menggunakan STM32 Maple Mini untuk melakukan pembacaan AC. Dalam contoh kami, kami akan mendapat nilai RMS grid kuasa. Ini sangat berguna bagi mereka yang ingin memantau rangkaian elektrik untuk Internet of Things. Kami kemudian akan membuat aplikasi menggunakan kekuatan komputasi dari Maple Mini, menerapkan litar elektronik yang mampu memungkinkan pemerolehan isyarat 127Vac, serta menerapkan pengiraan kuadrat akar (RMS) pada sampel.
Langkah 1: Demonstrasi
Dalam perhimpunan kami hari ini, kami mempunyai STM32, selain litar analog kami untuk membuat input 110. Untuk mengelakkan kejutan, isolasikan perintang yang masuk sebanyak 110.
Litarnya cukup sensitif. Saya masuk dengan 110, tetapi saya mengurangkannya sebanyak 168 kali menggunakan pembahagi voltan dan memasukkannya ke dalam penguat operasi, yang mempunyai beberapa fungsi.
Kami juga mempunyai beberapa kapasitor pilihan untuk penapisan sumber. Sekiranya sumber anda berkualiti, anda tidak perlu menggunakannya.
Input AD dikira melalui osiloskop, di mana anda melihat sinusoid, yang tidak 110 (tetapi terbentuk dengan baik). Perkara lain ialah voltan dalam rangkaian elektrik kita tidak 110 (sebenarnya 127 volt). Tetapi ketika kita menjalani penstabil, ia akan menyesuaikan diri dengan 115V.
Nilai yang dipaparkan pada monitor bersiri adalah apa yang dikira dalam RMS, iaitu yang dikenal pasti oleh Fluke Meter.
Langkah 2: Sumber yang Digunakan
• Pelompat
• Mini Maple
• Protoboard
• Penguat LM386
• Sumber simetri (+ 5V dan -5V)
• Potongan berbalik 10k (atau potensiometer)
• Empat kapasitor poliester 100nF
• Tiga perintang 10k
• Empat perintang 470k
• Satu perintang 5k6
• Satu diod zener 1n4728A
Langkah 3: Gambarajah Blok
Langkah 4: Skim
Ini adalah rangkaian yang saya buat berdasarkan spesifikasi yang saya percaya adalah yang terbaik untuk pengukuran ini, tetapi ada beberapa contoh lain yang boleh didapati di internet.
Langkah 5: LM386 - Sematkan
LM386 mempunyai dua penguat untuk pengkondisian atau penguat isyarat.
Langkah 6: AmpOp - Pembezaan (pengurang)
Langkah 7: AmpOp - Penambah Inverter
Langkah 8: Maple Mini - Pinage
Pin yang ditandakan pada:
Merah >> Toleran 3V3
Hijau >> Toleran 5V
Langkah 9: Maple Mini - Pinning - a / D Digunakan dalam Menangkap
Saya menekankan di sini bahawa pin yang saya gunakan adalah D11 yang (dalam nomenklatur STMicroelectronics) adalah PA0.
Langkah 10: Perhimpunan
Untuk rangkaian kami, anda memerlukan sumber simetri, seperti yang kami buat untuk projek ini. Jika tidak, anda memerlukan dua sumber.
Langkah 11: Grafik Dengan Data Diperolehi
Langkah 12: Mengira Nilai RMS
Langkah 13: Kod Sumber
Kod sumber - Definisi dan pemalar
Pada mulanya, kami mendefinisikan bacaan pin sebagai D11, serta pelbagai pemalar yang digunakan dalam pengiraan.
#define leituraTensao D11 // AD CH0 no pino PA0 // valor teórico divisor de tensão = 168.85714285714285714286 const float fatorDivisor = 168.40166345742404792461; // valor teórico do ganho de amplificação = 1.0 const float fatorAmplificador = 1.0; // Valor usado na multiplicação da leitura const float fatorMultiplicacao = fatorDivisor * fatorAmplificador; // Nilai 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; // fator teórico da converão do AD = 3.3 / 4095.0 const float fatorAD = Vcc / 4095.0; const int amostras = 71429; // resulta em 1, 027 segundos para cada atualização // const int amostras = 35715; // resulta em 0, 514 segundos para cada atualização
Kod sumber - Pemboleh ubah global
Sekarang, kami menentukan beberapa pemboleh ubah global.
apungan Vrms = 0.0; // armazena o valor rms da tensãofloat Vmax = 0.0; // armazena o valor máximo detectado float Vmin = 10000.0; // armazena o valor mínimo Detado float Vmed = 0.0; // armazena o valor médio entre Vmáx e Vmín
Kod Sumber - Persediaan ()
Mulakan port bersiri pada 1Mbps. Kami menyesuaikan port AD sebagai input dan menunggu 5 saat sebelum mula mengumpulkan data. Masa bersedia adalah pilihan.
batal persediaan () {Serial.begin (1000000); // inicia a porta serial em 1Mbps pinMode (leituraTensao, INPUT); // ajusta a porta do AD como entrada delay (5000); // aguarda 5s antes de iniciar a coleta. (pilihan)}
Kod Sumber - Gelung () - Memulakan pemboleh ubah pengumpulan data
Dalam Gelung, kita mempunyai pemboleh ubah untuk lelaran. Di sini, kami juga menyimpan bacaan AD dalam 0.0 dan memulakan semula pemboleh ubah VRMS juga dalam 0.0.
gelung kekosongan () {int i = 0; // variável para iteração float leitura = 0.0; // armazena sebagai leitura melakukan AD Vrms = 0.0; // reinicia a variável Vrms
Kod Sumber - Menangkap dan melaksanakan pengiraan individu untuk setiap sampel
Pada tahap ini, jika saya lebih kecil daripada sampel, kita memulakan kitaran pensampelan sehingga saya mencapai jumlah sampel. Kami menjalankan analogRead untuk membaca port analog dan mengira jumlah kuasa dua voltan baca. Akhirnya, kami menaikkan iterator.
sementara (i <amostras) {// inicia um ciclo de amostragem até que i alcance o número de amostras leitura = analogRead (leituraTensao); // lê a porta analógica //Serial.println(leitura); // Descomente se quiser ver o sinal bruto do AD Vrms = Vrms + pow (((leitura * fatorAD) - offSet), 2.0); // calcula a soma dos quadrados das tensões lidas i ++; // incrementa o iterador}
Kod sumber - Pengiraan umum sampel dan pengenalpastian maksimum, minimum, dan purata
Kami menggunakan fakta pendaraban untuk menentukan nilai sebenar voltan. Kami mengesan sama ada nilai maksimum atau minimum, dan kami mengira purata nilai maksimum dan minimum semasa.
// Aplicando fator de multiplicação para determinar o valor real das tensões Vrms = (sqrt (Vrms / amostras)) * fatorMultiplicacao; // detecta se é um valor é máximo jika (Vrms> Vmax) {Vmax = Vrms; } // detecta se é um valor mínimo if (Vrms <Vmin) {Vmin = Vrms; } // calcula a média dos valores máximo e mínimo atuais Vmed = (Vmax + Vmin) / 2.0;
Kod Sumber - Pilihan Keluaran
Kami mempunyai tiga pilihan untuk "merancang" nilai output. Kami mempunyai output yang diformat ke plotter siri Arduino IDE, seperti CSV atau Jason.
// saída formatada para plotter bersiri IDE Arduino Serial.print (Vrms, 3); Cetakan bersiri (","); Serial.print (Vmax, 3); Cetakan bersiri (","); Serial.print (Vmin, 3); Cetakan bersiri (","); Serial.println (Vmed, 3); / * // saída formatada como json Serial.print ("{" instante (ms) ":"); Serial.print (milis ()); Cetakan bersiri (","); Serial.print ("\" Vrms (V) ":"); Serial.print (Vrms, 3); Cetakan bersiri (","); Serial.print ("\" Vmax (V) ":"); Serial.print (Vmax, 3); Cetakan bersiri (","); Serial.print ("\" Vmin (V) ":"); Serial.print (Vmin, 3); Cetakan bersiri (","); Serial.print ("\" Vmed (V) ":"); Serial.print (Vmed, 3); Serial.println ("}"); * / / * // saída formatada como CSV Serial.print (millis ()); Cetakan bersiri (","); Serial.print (Vrms, 3); Cetakan bersiri (","); Serial.print (Vmax, 3); Cetakan bersiri (","); Serial.print (Vmin, 3); Cetakan bersiri (","); Serial.println (Vmed, 3); * /}
Langkah 14: Fail
Muat turun fail:
INO
Disyorkan:
Monitor Voltan untuk Bateri Voltan Tinggi: 3 Langkah (dengan Gambar)
Monitor voltan untuk bateri voltan tinggi: Dalam panduan ini saya akan menerangkan kepada anda bagaimana saya membina monitor voltan bateri saya untuk papan panjang elektrik saya. Pasang sesuka anda dan sambungkan hanya dua wayar ke bateri anda (Gnd dan Vcc). Panduan ini menganggap bahawa voltan bateri anda melebihi 30 volt, dengan
Menggunakan Litar untuk Mengukur Voltan Gerbang Digital: 7 Langkah
Menggunakan Litar untuk Mengukur Voltan Gerbang Digital: Litar digital umumnya menggunakan bekalan 5 volt. Voltan digital yang dari 5v -2.7 volt dalam siri TTL (sejenis cip bersepadu digital) dianggap tinggi dan mempunyai nilai 1. voltan digital borang 0-0.5 dianggap rendah dan mempunyai
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
4 Langkah Mengukur Rintangan Dalaman Bateri: 4 Langkah
4 Langkah Mengukur Ketahanan Dalaman Bateri: Berikut adalah 4 langkah mudah yang dapat membantu anda mengukur ketahanan dalaman bateri
Mengukur Voltan DC Dengan Arduino dan Node-RED: 8 Langkah (dengan Gambar)
Mengukur Voltan DC Dengan Arduino dan Node-RED: Terdapat banyak tutorial pengukuran voltan DC dengan Arduino, dalam hal ini saya dapati tutorial yang saya anggap kaedah berfungsi terbaik untuk mengukur DC tanpa memerlukan nilai input rintangan, hanya memerlukan sedikit rintangan dan multimeter