Агуулгын хүснэгт:
- Алхам 1: Жагсаал
- Алхам 2: Ашигласан нөөц
- Алхам 3: Блок диаграм
- Алхам 4: Схем
- Алхам 5: LM386 - бэхлэх
- Алхам 6: AmpOp - Дифференциал (хасагч)
- Алхам 7: AmpOp - Inverter Adder
- Алхам 8: Maple Mini - Pinage
- Алхам 9: Maple Mini - бэхэлгээ - a / D зураг авахад ашигладаг
- Алхам 10: Чуулган
- Алхам 11: Хүлээн авсан өгөгдөлтэй график хийх
- Алхам 12: RMS утгыг тооцоолох
- Алхам 13: Эх код
- Алхам 14: Файлууд
Видео: True-RMS AC хүчдэлийг хэмжих: 14 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:04
Өнөөдөр бид STM32 Maple Mini -ийг ашиглан AC унших ажлыг хийх болно. Бидний жишээн дээр бид цахилгаан сүлжээний RMS утгыг авах болно. Энэ нь юмсын интернэтийн цахилгаан сүлжээнд хяналт тавих хүсэлтэй хүмүүст маш хэрэгтэй юм. Дараа нь бид Maple Mini -ийн тооцоолох хүчийг ашиглан програм үүсгэж, 127Vac дохио авах боломжтой электрон хэлхээг ашиглаж, дээж дээр дундаж дундаж квадрат (RMS) тооцоог хийнэ.
Алхам 1: Жагсаал
Өнөөдрийн бидний чуулганд бид 110 -ийн оролтыг хийх аналог хэлхээнээс гадна STM32 -тэй байна. Цочролоос зайлсхийхийн тулд 110 -ээр орж байгаа эсэргүүцэгчийг тусгаарлана.
Хэлхээ нь нэлээд мэдрэмтгий байдаг. Би 110 -тэй байна, гэхдээ хүчдэл хуваагч ашиглан үүнийг 168 дахин багасгаж, хэд хэдэн функцтэй үйлдлийн өсгөгч рүү оруулав.
Бидэнд эх үүсвэрийг шүүх нэмэлт конденсаторууд байдаг. Хэрэв таны эх сурвалж сайн чанартай бол тэдгээрийг ашиглах шаардлагагүй болно.
AD -ийн оролтыг осциллографоор тооцоолж, синусоидыг харж болно, энэ нь 110 биш (гэхдээ энэ нь сайн хэлбэртэй). Өөр нэг зүйл бол манай цахилгаан сүлжээний хүчдэл 110 биш (үнэндээ 127 вольт) юм. Гэхдээ бид тогтворжуулагч хийлгэж байгаа тул 115V -д тохируулна.
Цуваа монитор дээр харуулсан утга нь RMS -ээр тооцогддог, өөрөөр хэлбэл Fluke Meter -ийн тодорхойлсон утга юм.
Алхам 2: Ашигласан нөөц
• Үсрэгчид
• Maple Mini
• Protoboard
• LM386 өсгөгч
• Тэгш хэмтэй эх үүсвэр (+ 5V ба -5V)
• 10к олон эргэлт бүхий тримпот (эсвэл потенциометр)
• 100nF полиэфиртэй дөрвөн конденсатор
• Гурван 10к эсэргүүцэл
• 470k хэмжээтэй 4 эсэргүүцэл
• Нэг 5k6 эсэргүүцэл
• Нэг 1n4728A zener диод
Алхам 3: Блок диаграм
Алхам 4: Схем
Энэ бол миний хэмжлийн хувьд хамгийн тохиромжтой гэж үзсэн техникийн үзүүлэлтүүд дээр үндэслэн боловсруулсан хэлхээ юм, гэхдээ интернетээс өөр хэд хэдэн жишээг олж болно.
Алхам 5: LM386 - бэхлэх
LM386 нь агааржуулагч эсвэл дохио өсгөх хоёр өсгөгчтэй.
Алхам 6: AmpOp - Дифференциал (хасагч)
Алхам 7: AmpOp - Inverter Adder
Алхам 8: Maple Mini - Pinage
Тэмдэглэсэн тэмдэг:
Улаан >> 3V3 тэсвэртэй
Ногоон >> 5V тэсвэртэй
Алхам 9: Maple Mini - бэхэлгээ - 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 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; // үр дүн нь 1, 027 гэсэн утгатай байна // const int amostras = 35715; // үр дүн 0, 514 гэсэн утгатай
Эх код - Дэлхийн хувьсагчид
Одоо бид дэлхийн зарим хувьсагчдыг тодорхойлж байна.
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
Эх код - Тохиргоо ()
Цуваа портыг 1Mbps дээр эхлүүлнэ үү. Бид AD портыг оролт болгон тохируулж өгөгдөл цуглуулж эхлэхээс өмнө 5 секунд хүлээв. Зогсоох хугацаа нь заавал биш юм.
void setup () {Serial.begin (1000000); // 1Mbps pinMode (leituraTensao, INPUT) цуврал портууд; // МЭ комо оруулах хугацаа хойшлуулах (5000); // aguarda 5s antes de iniciar coleta. (сонголтоор)}
Эх код - Loop () - Өгөгдөл цуглуулах хувьсагчдыг эхлүүлнэ
Loop дээр бид давталтын хувьсагчтай байна. Энд бид AD -ийн уншилтыг 0.0 -д хадгалж, хувьсах VRMS -ийг 0.0 -д дахин эхлүүлнэ.
void loop () {int i = 0; // variável para iteração float leitura = 0.0; // armazena нь leituras шиг AD Vrms = 0.0; // reinicia a variável Vrms
Эх код - Дээж тус бүрийн бие даасан тооцоог хийж гүйцэтгэнэ
Энэ үе шатанд хэрэв би дээжээс жижиг бол бид дээжийн тоонд хүрэх хүртэл дээж авах мөчлөгийг эхлүүлнэ. Бид аналог портыг уншиж, уншсан хүчдэлийн квадратуудын нийлбэрийг тооцоолохын тулд analogRead програмыг ажиллуулдаг. Эцэст нь бид давталтыг нэмэгдүүлдэг.
while (i <amostras) {// inicia um ciclo de amostragem até que i alcance o número de amostras leitura = analogRead (leituraTensao); // a porta analógica //Serial.println(leitura); // AD Vrms = Vrms + pow (((leitura * fatorAD) - offSet), 2.0); // тооцоолох нь 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; } // тооцоолол a média dos valores máximo e mínimo atuais Vmed = (Vmax + Vmin) /2.0;
Эх код - Гаралтын сонголтууд
Бидэнд гаралтын утгыг "зурах" гурван сонголт байна. Бид CSV эсвэл Жейсон гэх мэт Arduino IDE цуваа плоттерт форматласан гаралтыг гаргалаа.
// цуврал IDE Arduino Serial.print (Vrms, 3); Serial.print (","); Цуваа.хэвлэх (Vmax, 3); Serial.print (","); Цуваа.хэвлэх (Vmin, 3); Serial.print (","); Serial.println (Vmed, 3); /* // форматыг como json Serial.print ("{" шуурхай (ms) ":"); Цуваа.хэвлэх (millis ()); Serial.print (","); Serial.print ("\" Vrms (V) ":"); Цуваа.хэвлэх (Vrms, 3); Serial.print (","); Serial.print ("\" Vmax (V) ":"); Цуваа.хэвлэх (Vmax, 3); Serial.print (","); Serial.print ("\" Vmin (V) ":"); Цуваа.хэвлэх (Vmin, 3); Serial.print (","); Serial.print ("\" Vmed (V) ":"); Цуваа.хэвлэх (Vmed, 3); Serial.println ("}"); * / /* // CSV Serial.print форматыг үзэх (millis ()); Serial.print (","); Цуваа.хэвлэх (Vrms, 3); Serial.print (","); Цуваа.хэвлэх (Vmax, 3); Serial.print (","); Цуваа.хэвлэх (Vmin, 3); Serial.print (","); Serial.println (Vmed, 3); */}
Алхам 14: Файлууд
Файлуудыг татаж авах:
INO
Зөвлөмж болгож буй:
Дижитал хаалганы хүчдэлийг хэмжих хэлхээг ашиглах нь: 7 алхам
Дижитал хаалганы хүчдэлийг хэмжих хэлхээг ашиглах: Дижитал хэлхээнд ихэвчлэн 5 вольтын хангамжийг ашигладаг. TTL цуврал (дижитал нэгдсэн чип) -ийн 5v -2.7 вольтын дижитал хүчдэлийг өндөр гэж үздэг бөгөөд 1. дижитал хүчдэлийн утгатай. 0-0.5 хэлбэрийг бага гэж үздэг бөгөөд
DCDC хөрвүүлэгчийн гаралтын хүчдэлийг ХОУХ -ээр хянадаг: 3 алхам
ХБХ -ийн удирддаг DCDC хөрвүүлэгчийн гаралтын хүчдэл: Надад цэнэглэх хэлхээнд хувьсах гаралтын хүчдэл бүхий дижитал удирдлагатай DCDC хөрвүүлэгч хэрэгтэй байсан … Тиймээс би үүнийг хийлээ. Магадгүй LED -ийн холболттой холбоотой байж магадгүй
DC -ээс DC Бак хөрвүүлэгч DIY -- DC хүчдэлийг хэрхэн амархан бууруулах вэ: 3 алхам
DC -ээс DC Бак хөрвүүлэгч DIY || DC хүчдэлийг хэрхэн амархан буулгах вэ: Бак хөрвүүлэгч (буурах хөрвүүлэгч) нь оролт (хангамж) -аас гаралт (ачаалал) хүртэл хүчдэлийг (гүйдлийг нэмэгдүүлэх явцад) бууруулдаг DC-DC гүйдлийн цахилгаан хувиргагч юм. Энэ нь ихэвчлэн дор хаяж
DC хүчдэлийг Arduino болон Node-RED ашиглан хэмжих: 8 алхам (зурагтай)
Arduino ба Node-RED ашиглан тогтмол гүйдлийн хүчдэлийг хэмжих: Ардуиногийн тусламжтайгаар тогтмол гүйдлийн хүчдэлийг хэмжих маш олон заавар байдаг бөгөөд энэ тохиолдолд би эсэргүүцлийн оролтын утгыг шаардахгүйгээр тогтмол гүйдлийг хэмжих хамгийн сайн функциональ аргыг авч үзсэн хичээлийг олсон. ба мултиметр
Хямд цахилгаан хангамжийн гаралтын хүчдэлийг өөрчлөх: 3 алхам
Хямд цахилгаан хангамжийн гаралтын хүчдэлийг өөрчлөх: Энэхүү хэрэгцээг хангахын тулд гаралтын хүчдэлийг тохируулахын тулд жижиг тэжээлийн эх үүсвэрийн хэсгүүдийг хэрхэн яаж солихыг харуулав. DIY төслийн хувьд надад яг 7V тогтмол гүйдэл, ойролцоогоор 100 мА хүчдэл хэрэгтэй. Сэлбэгийн цуглуулгаа хайж үзэхэд би