Სარჩევი:
- ნაბიჯი 1: დემონსტრაცია
- ნაბიჯი 2: გამოყენებული რესურსები
- ნაბიჯი 3: ბლოკირების დიაგრამა
- ნაბიჯი 4: სქემა
- ნაბიჯი 5: LM386 - ჩამაგრება
- ნაბიჯი 6: AmpOp - დიფერენციალური (გამოკლება)
- ნაბიჯი 7: AmpOp - ინვერტორული რეკლამა
- ნაბიჯი 8: Maple Mini - Pinage
- ნაბიჯი 9: ნეკერჩხლის მინი - ჩამაგრება - a / D გამოიყენება გადაღებისას
- ნაბიჯი 10: შეკრება
- ნაბიჯი 11: გრაფიკი მონაცემებთან ერთად
- ნაბიჯი 12: გამოთვალეთ RMS მნიშვნელობა
- ნაბიჯი 13: წყაროს კოდი
- ნაბიჯი 14: ფაილები
ვიდეო: True-RMS AC ძაბვის გაზომვა: 14 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:19
დღეს ჩვენ გამოვიყენებთ STM32 Maple Mini- ს AC კითხვის შესასრულებლად. ჩვენს მაგალითში, ჩვენ მივიღებთ ელექტრო ქსელის RMS მნიშვნელობას. ეს ძალიან სასარგებლოა მათთვის, ვისაც სურს ინტერნეტ ქსელის ელექტრო ქსელის მონიტორინგი. შემდეგ ჩვენ შევქმნით აპლიკაციას Maple Mini– ს გამოთვლითი სიმძლავრის გამოყენებით, გამოვიყენებთ ელექტრონულ წრეს, რომელსაც შეუძლია 127Vac სიგნალის მოპოვების საშუალება მისცეს, ასევე ნიმუშებზე გამოვიყენოთ ფესვის საშუალო კვადრატის (RMS) გაანგარიშება.
ნაბიჯი 1: დემონსტრაცია
ჩვენს დღევანდელ შეკრებაზე ჩვენ გვაქვს STM32, გარდა იმისა, რომ ჩვენი ანალოგური წრე შევა 110 -ს. დარტყმების თავიდან აცილების მიზნით, გამოყავით რეზისტორი, რომელიც შემოდის 110 -ით.
წრე საკმაოდ მგრძნობიარეა. მე 110 -ით შევდივარ, მაგრამ ძაბვის გამყოფის გამოყენებით ვამცირებ მას 168 -ჯერ და ვდებ ოპერატიულ გამაძლიერებელში, რომელსაც აქვს რამდენიმე ფუნქცია.
ჩვენ ასევე გვაქვს არჩევითი კონდენსატორები წყაროს ფილტრაციისთვის. თუ თქვენი წყარო კარგი ხარისხისაა, თქვენ არ გჭირდებათ მათი გამოყენება.
AD შეყვანა გამოითვლება ოსცილოსკოპის საშუალებით, რომელშიც ხედავთ სინუსოიდს, რომელიც არ არის 110 (მაგრამ ის კარგად არის ჩამოყალიბებული). კიდევ ერთი რამ არის ის, რომ ჩვენს ელექტრო ქსელში ძაბვა არ არის 110 (ეს რეალურად 127 ვოლტია). მაგრამ როდესაც ჩვენ ვატარებთ სტაბილიზატორს, ის 115V- ზე მოერგება.
სერიულ მონიტორზე ნაჩვენები მნიშვნელობა არის ის, რაც გამოითვლება RMS– ში, ანუ Fluke Meter– ით განსაზღვრული.
ნაბიჯი 2: გამოყენებული რესურსები
• მხტუნავები
• ნეკერჩხლის მინი
• პროტობორდი
• LM386 გამაძლიერებელი
• სიმეტრიული წყარო (+ 5V და -5V)
• 10k მრავალბინიანი ტრიმპოტი (ან პოტენომეტრი)
• 100nF პოლიესტერის ოთხი კონდენსატორი
• სამი 10k რეზისტორი
• ოთხი 470k რეზისტორი
• ერთი 5k6 რეზისტორი
• ერთი 1n4728A ზენერის დიოდი
ნაბიჯი 3: ბლოკირების დიაგრამა
ნაბიჯი 4: სქემა
ეს არის სქემა, რომელიც მე შევიმუშავე იმ მახასიათებლების საფუძველზე, რომლებიც მე მჯერა, რომ საუკეთესოა ამ გაზომვისთვის, მაგრამ არსებობს კიდევ რამდენიმე მაგალითი, რომელიც ინტერნეტში შეიძლება მოიძებნოს.
ნაბიჯი 5: LM386 - ჩამაგრება
LM386– ს აქვს ორი გამაძლიერებელი კონდიცირებისთვის ან სიგნალის გასაძლიერებლად.
ნაბიჯი 6: AmpOp - დიფერენციალური (გამოკლება)
ნაბიჯი 7: AmpOp - ინვერტორული რეკლამა
ნაბიჯი 8: Maple Mini - Pinage
ქინძისთავები აღინიშნება:
წითელი >> 3V3 ტოლერანტული
მწვანე >> 5V ტოლერანტული
ნაბიჯი 9: ნეკერჩხლის მინი - ჩამაგრება - a / D გამოიყენება გადაღებისას
აქ ხაზს ვუსვამ, რომ პინი, რომელიც მე გამოვიყენე არის D11, რომელიც (STMicroelectronics– ის ნომენკლატურაში) არის PA0.
ნაბიჯი 10: შეკრება
ჩვენი წრისთვის დაგჭირდებათ სიმეტრიული წყარო, როგორიც ჩვენ შევიქმენით ამ პროექტისათვის. წინააღმდეგ შემთხვევაში, თქვენ დაგჭირდებათ ორი წყარო.
ნაბიჯი 11: გრაფიკი მონაცემებთან ერთად
ნაბიჯი 12: გამოთვალეთ RMS მნიშვნელობა
ნაბიჯი 13: წყაროს კოდი
წყაროს კოდი - განმარტებები და მუდმივები
თავდაპირველად, ჩვენ განვსაზღვრეთ პინის კითხვა, როგორც D11, ასევე გამოთვლებში გამოყენებული სხვადასხვა მუდმივები.
#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 = fator გამყოფი * 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
წყაროს კოდი - გლობალური ცვლადები
ახლა ჩვენ განვსაზღვრავთ გლობალურ ცვლადებს.
float Vrms = 0.0; // armazena o valor rms da tensãofloat Vmax = 0.0; // armazena o valor máximo deteado float Vmin = 10000.0; // armazena o valor mínimo deteado float Vmed = 0.0; // armazena o valor médio entre Vmáx e Vmín
წყაროს კოდი - დაყენება ()
დაიწყეთ სერიული პორტი 1 Mbps– ზე. ჩვენ შევავსეთ AD პორტი შეყვანის სახით და დაველოდეთ 5 წამს მონაცემების შეგროვების დაწყებამდე. ლოდინის დრო არჩევითია.
void setup () {Serial.begin (1000000); // inicia a porta serial em 1Mbps pinMode (leituraTensao, INPUT); // ajusta a porta do AD como entrada დაგვიანებით (5000); // aguarda 5s antes de iniciar a coleta. (სურვილისამებრ)}
წყაროს კოდი - მარყუჟი () - იწყებს მონაცემთა შეგროვების ცვლადებს
მარყუჟში, ჩვენ გვაქვს ცვლადი გამეორებისთვის. აქ, ჩვენ ასევე ვინახავთ AD– ის კითხვებს 0.0 – ში და ვტვირთავთ ცვლადს VRMS ასევე 0.0 – ში.
void loop () {int i = 0; // variável para iteração float leitura = 0.0; // არმაზენა როგორც ლეიტურას აკეთებენ AD Vrms = 0.0; // reinicia a variável Vrms
წყაროს კოდი - იღებს და ასრულებს ინდივიდუალურ გამოთვლებს თითოეული ნიმუშისთვის
ამ ეტაპზე, თუ მე უფრო პატარა ვარ ვიდრე ნიმუში, ჩვენ ვიწყებთ შერჩევის ციკლს სანამ არ მივაღწევ ნიმუშების რაოდენობას. ჩვენ ვაწარმოებთ analogRead– ს, რომ წავიკითხოთ ანალოგური პორტი და გამოვთვალოთ წაკითხული ძაბვის კვადრატების ჯამი. და ბოლოს, ჩვენ ვამატებთ გამეორებას.
ხოლო (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 ++; // იტერადორის გაზრდა}
წყაროს კოდი - ნიმუშების ზოგადი გათვლები და მაქსიმალური, მინიმალური და საშუალო
ჩვენ ვიყენებთ გამრავლების ფაქტს ძაბვების რეალური მნიშვნელობის დასადგენად. ჩვენ ვადგენთ, არის თუ არა მნიშვნელობა მაქსიმალური ან მინიმალური და ვიანგარიშებთ მიმდინარე მაქსიმალური და მინიმალური მნიშვნელობების საშუალო მაჩვენებელს.
// Aplicando fator de multiplicação para determinar o valor real das tensõ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; } // calcula a média dos valores máximo e mínimo atuais Vmed = (Vmax + Vmin) /2.0;
წყაროს კოდი - გამოყვანის პარამეტრები
ჩვენ გვაქვს სამი ვარიანტი გამომავალი მნიშვნელობის "შედგენისთვის". ჩვენ გვაქვს ფორმატირებული Arduino IDE სერიული პლოტერისთვის, როგორიცაა CSV ან ჯეისონი.
// sa formatda formatada para plotter serial IDE Arduino Serial.print (Vrms, 3); 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) ":"); სერიული. ბეჭდვა (Vmax, 3); Serial.print (","); Serial.print ("\" Vmin (V) ":"); Serial.print (Vmin, 3); Serial.print (","); Serial.print ("\" Vmed (V) ":"); Serial.print (Vmed, 3); Serial.println ("}"); * / /* // saída formatada como CSV Serial.print (millis ()); Serial.print (","); Serial.print (Vrms, 3); Serial.print (","); სერიული. ბეჭდვა (Vmax, 3); Serial.print (","); Serial.print (Vmin, 3); Serial.print (","); Serial.println (Vmed, 3); */}
ნაბიჯი 14: ფაილები
ჩამოტვირთეთ ფაილები:
ინო
გირჩევთ:
დენის წყაროს სიხშირე და ძაბვის გაზომვა არდუინოს გამოყენებით: 6 ნაბიჯი
ელექტრომომარაგების სიხშირე და ძაბვის გაზომვა Arduino– ს გამოყენებით: შესავალი: ამ პროექტის მიზანია გაზომოს მიწოდების სიხშირე და ძაბვა, რომელიც ინდოეთში 220 – დან 240 ვოლტამდე და 50 ჰც – მდეა. მე გამოვიყენე არდუინო სიგნალის გადასაღებად და გამოვთვალოთ სიხშირე და ძაბვა, თქვენ შეგიძლიათ გამოიყენოთ ნებისმიერი სხვა მიკროკონტრაქტი
ძაბვის მონიტორი მაღალი ძაბვის ბატარეებისთვის: 3 ნაბიჯი (სურათებით)
ძაბვის მონიტორი მაღალი ძაბვის ბატარეებისთვის: ამ სახელმძღვანელოში მე აგიხსნით, თუ როგორ ავაშენე ჩემი ბატარეის ძაბვის მონიტორი ჩემი ელექტრული ლონგბორდისთვის. დააინსტალირეთ როგორც გსურთ და დაუკავშირეთ მხოლოდ ორი მავთული თქვენს ბატარეას (Gnd და Vcc). ეს სახელმძღვანელო ვარაუდობს, რომ თქვენი ბატარეის ძაბვა აღემატება 30 ვოლტს, w
DC ძაბვის გაზომვა Arduino– ს გამოყენებით: 5 ნაბიჯი
DC ძაბვის გაზომვა Arduino– ს გამოყენებით: ამ პროექტში მე გაჩვენებთ თუ როგორ გავზომოთ DC ძაბვა 50 ვ -მდე არდუინოს გამოყენებით და და OLED დისპლეის მოდულის ნაწილზე ჩვენება გვჭირდება arduino გაუმართავი ჩვენება 10k ohm resistor 1k ohm resistor ჯუმბერის კაბელი
რეგულირებადი ძაბვის DC კვების ბლოკი LM317 ძაბვის რეგულატორის გამოყენებით: 10 ნაბიჯი
რეგულირებადი ძაბვის DC დენის წყარო LM317 ძაბვის მარეგულირებლის გამოყენებით: ამ პროექტში მე შევიმუშავე მარტივი რეგულირებადი ძაბვის დენის წყარო LM317 IC გამოყენებით LM317 კვების ბლოკის სქემით. ვინაიდან ამ წრეს აქვს ჩამონტაჟებული ხიდის მაკორექტირებელი, ასე რომ ჩვენ შეგვიძლია პირდაპირ შევაერთოთ 220V/110V AC მიწოდება შესასვლელში
ძაბვის გაზომვა არდუინოს გამოყენებით: 5 ნაბიჯი
ძაბვის გაზომვა არდუინოს გამოყენებით: ძაბვის გაზომვა საკმაოდ ადვილია ნებისმიერი მიკროკონტროლის გამოყენებით დენის გაზომვასთან შედარებით. ძაბვის გაზომვა აუცილებელი ხდება, თუ თქვენ მუშაობთ ბატარეებთან ან გსურთ შექმნათ თქვენი საკუთარი რეგულირებადი კვების წყარო. მიუხედავად იმისა, რომ ეს მეთოდი გამოიყენება