Talaan ng mga Nilalaman:
- Hakbang 1: Pagpapakita
- Hakbang 2: Ginamit na Mga Mapagkukunan
- Hakbang 3: I-block ang Diagram
- Hakbang 4: Scheme
- Hakbang 5: LM386 - Pag-pin
- Hakbang 6: AmpOp - Pagkakaiba (nagbabawas)
- Hakbang 7: AmpOp - Inverter Adder
- Hakbang 8: Maple Mini - Pinage
- Hakbang 9: Maple Mini - Pinning - a / D Ginamit sa Pagkuha
- Hakbang 10: Assembly
- Hakbang 11: Grap Sa Nakuha ang Data
- Hakbang 12: Kinakalkula ang Halaga ng RMS
- Hakbang 13: Source Code
- Hakbang 14: Mga File
Video: Pagsukat ng True-RMS AC Boltahe: 14 Mga Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:14
Ngayon, gagamitin namin ang STM32 Maple Mini upang gumawa ng pagbabasa sa AC. Sa aming halimbawa, makukuha namin ang halaga ng RMS ng grid ng kuryente. Napaka kapaki-pakinabang nito para sa mga nais subaybayan ang electrical network para sa Internet of Things. Lilikha kami ng isang application gamit ang lakas ng computational ng Maple Mini, maglapat ng isang electronic circuit na may kakayahang payagan ang pagkuha ng isang 127Vac signal, pati na rin ilapat ang pagkalkula ng root mean square (RMS) sa mga sample.
Hakbang 1: Pagpapakita
Sa aming pagpupulong ngayon, mayroon kaming STM32, bilang karagdagan sa aming analog circuit upang gawin ang input na 110. Upang maiwasan ang mga pagkabigla, ihiwalay ang risistor na papasok ng 110.
Ang circuit ay medyo sensitibo. Papasok ako sa 110, ngunit binabawasan ko ito ng 168 beses gamit ang voltage divider at inilalagay ito sa pagpapatakbo ng amplifier, na mayroong maraming mga pag-andar.
Mayroon din kaming ilang mga opsyonal na capacitor para sa pagsala ng mapagkukunan. Kung ang iyong mapagkukunan ay may mahusay na kalidad, hindi mo na kailangang gamitin ang mga ito.
Ang input ng AD ay kinakalkula sa pamamagitan ng oscilloscope, kung saan nakikita mo ang isang sinusoid, na hindi 110 (ngunit mahusay itong nabuo). Ang isa pang bagay ay ang boltahe sa aming electrical network ay hindi 110 (ito ay talagang 127 volts). Ngunit habang sumasailalim kami ng isang pampatatag, sasasaayos ito sa 115V.
Ang halagang ipinakita sa serial monitor ay kung ano ang kinakalkula sa RMS, iyon ay, ang isa na kinilala ng Fluke Meter.
Hakbang 2: Ginamit na Mga Mapagkukunan
• Mga jumper
• Isang Maple Mini
• Protoboard
• Isang LM386 amplifier
• Isang simetriko na mapagkukunan (+ 5V at -5V)
• Isang 10k multi-turn trimpot (o potentiometer)
• Apat na capacitor ng 100nF polyester
• Tatlong 10k resistors
• Apat na 470k resistors
• Isang 5k6 risistor
• Isang 1n4728A zener diode
Hakbang 3: I-block ang Diagram
Hakbang 4: Scheme
Ito ay isang circuit na binuo ko batay sa mga panoorin na sa tingin ko ay ang pinakamahusay para sa pagsukat na ito, ngunit maraming iba pang mga halimbawa na maaaring matagpuan sa internet.
Hakbang 5: LM386 - Pag-pin
Ang LM386 ay may dalawang amplifier para sa pag-air condition o signal amplification.
Hakbang 6: AmpOp - Pagkakaiba (nagbabawas)
Hakbang 7: AmpOp - Inverter Adder
Hakbang 8: Maple Mini - Pinage
Ang mga pin ay minarkahan sa:
Pula >> 3V3 Tolerant
Green >> 5V Tolerant
Hakbang 9: Maple Mini - Pinning - a / D Ginamit sa Pagkuha
Binibigyang diin ko dito na ang pin na ginamit ko ay ang D11 na (sa nomenclature ng STMicroelectronics) ay ang PA0.
Hakbang 10: Assembly
Para sa aming circuit, kakailanganin mo ng isang mahusay na mapagkukunan, tulad ng nilikha namin para sa proyektong ito. Kung hindi man, kakailanganin mo ng dalawang mapagkukunan.
Hakbang 11: Grap Sa Nakuha ang Data
Hakbang 12: Kinakalkula ang Halaga ng RMS
Hakbang 13: Source Code
Source code - Mga kahulugan at pare-pareho
Sa una, tinukoy namin ang pagbabasa ng pin bilang D11, pati na rin ang iba't ibang mga pare-pareho na ginamit sa mga kalkulasyon.
#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; // 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; // fator teórico da Conversã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
Source code - Mga variable sa buong mundo
Ngayon, tinutukoy namin ang ilang mga pandaigdigang variable.
float 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 detectado float Vmed = 0.0; // armazena o valor médio entre Vmáx e Vmín
Source Code - Pag-setup ()
Simulan ang serial port sa 1Mbps. Inayos namin ang AD port bilang input at naghintay ng 5 segundo bago simulang mangolekta ng data. Ang oras ng standby ay opsyonal.
void setup () {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. (opcional)}
Source Code - Loop () - Sinisimulan ang mga variable ng koleksyon ng data
Sa Loop, mayroon kaming variable para sa pag-ulit. Dito, naiimbak din namin ang mga pagbasa ng AD sa 0.0 at i-restart ang variable na VRMS din sa 0.0.
void loop () {int i = 0; // variável para iteração float leitura = 0.0; // armazena as leituras do AD Vrms = 0.0; // reinicia a variável Vrms
Source Code - Nakukuha at naisasagawa ang mga indibidwal na kalkulasyon para sa bawat sample
Sa yugtong ito, kung mas maliit ako kaysa sa sample, nagsisimula kami ng isang ikot ng sampling hanggang maabot ko ang bilang ng mga sample. Nagpapatakbo kami ng analogRead upang basahin ang analog port at kalkulahin ang kabuuan ng mga parisukat ng nabasa na mga voltages. Sa wakas, nadagdagan namin ang iterator.
habang (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); // calculula a soma dos quadrados das tenões lidas i ++; // incrementa o iterador}
Source code - Pangkalahatang mga kalkulasyon ng mga sample at pagkakakilanlan ng maximum, minimum, at average
Inilalapat namin ang katotohanan ng pagpaparami upang matukoy ang aktwal na halaga ng mga voltages. Natutukoy namin kung ang halaga ay maximum o minimum, at kinakalkula namin ang average ng kasalukuyang maximum at minimum na mga halaga.
// Aplicando fator de multiplicação para determinar o valor real das tenões Vrms = (sqrt (Vrms / amostras)) * fatorMultiplicacao; // detecta se é um valor é máximo if (Vrms> Vmax) {Vmax = Vrms; } // detecta se é um valor mínimo if (Vrms <Vmin) {Vmin = Vrms; } // calculula a média dos valores máximo e mínimo atuais Vmed = (Vmax + Vmin) / 2.0;
Source Code - Mga Pagpipilian sa Output
Mayroon kaming tatlong mga pagpipilian para sa "paglalagay" ng halaga ng output. Nag-format kami ng output sa serial plotter ng Arduino IDE, tulad ng CSV o Jason.
// saída formatada para sa plotter serial IDE Arduino Serial.print (Vrms, 3); Serial.print (","); Serial.print (Vmax, 3); Serial.print (","); Serial.print (Vmin, 3); Serial.print (","); Serial.println (Vmed, 3); / * // saída formatada como json Serial.print ("{" instante (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 ("}"); * / / * // sada formatada como CSV Serial.print (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); * /}
Hakbang 14: Mga File
I-download ang mga file:
INO
Inirerekumendang:
Ang Mga Mataas na Boltahe na Click-Clack Toy Rocks na ito :: 11 Hakbang (na may Mga Larawan)
Ang High Voltage Click-Clack Toy Rocks na ito: Ang bersyon 1.0 ay ang modelo ng sobrang badyet. Ang mga bahagi (hindi kasama ang supply ng kuryente) ay halos wala. Isang paglalarawan ng mas mahal na
Monitor ng Boltahe para sa Mga Baterya ng Mataas na Boltahe: 3 Mga Hakbang (na may Mga Larawan)
Monitor ng Boltahe para sa Mga Baterya ng Mataas na Boltahe: Sa gabay na ito ipapaliwanag ko sa iyo kung paano ko itinayo ang aking boltahe na monitor ng baterya para sa aking electric longboard. I-mount ito subalit nais mo at ikonekta ang dalawang wires lamang sa iyong baterya (Gnd at Vcc). Ipinapalagay ng gabay na ito na ang boltahe ng iyong baterya ay lumampas sa 30 volt, w
Pagsukat ng Boltahe ng Dc Gamit ang Arduino: 5 Mga Hakbang
Pagsukat ng Boltahe ng Dc Gamit ang Arduino: Sa proyektong ito ipapakita ko sa iyo kung paano sukatin ang boltahe ng Dc hanggang sa 50v sa pamamagitan ng paggamit ng arduino at at ipakita sa bahagi ng module ng OLED na kailangan ng arduino UNOoled display10k ohm resistor1k ohm resistorjumper cable
Pagsukat ng Boltahe Gamit ang Arduino: 5 Mga Hakbang
Pagsukat ng Boltahe Gamit ang Arduino: Ang pagsukat ng boltahe ay medyo madali gamit ang anumang microcontroller kumpara sa pagsukat ng kasalukuyang. Ang pagsukat ng mga boltahe ay kinakailangan kung nagtatrabaho ka sa mga baterya o nais mong gumawa ng iyong sariling naaayos na suplay ng kuryente. Kahit na ang pamamaraang ito appl
Pagsukat sa Boltahe ng DC Sa Arduino at Node-RED: 8 Mga Hakbang (na may Mga Larawan)
Pagsukat ng Boltahe ng DC Sa Arduino at Node-RED: Mayroong maraming mga tutorial ng pagsukat ng boltahe ng DC sa Arduino, sa kasong ito nakita ko ang isang tutorial na isinasaalang-alang ko ang pinakamahusay na pamamaraan na gumagana upang sukatin ang DC nang hindi nangangailangan ng mga halaga ng paglaban ng paglaban, nangangailangan lamang ng ilang paglaban at isang multimeter,