Мазмуну:
- 1 -кадам: Демонстрация
- 2 -кадам: Колдонулган ресурстар
- 3 -кадам: Блок диаграммасы
- 4 -кадам: Схема
- 5 -кадам: LM386 - кадоо
- 6 -кадам: AmpOp - Дифференциалдык (алып салуучу)
- 7 -кадам: AmpOp - Inverter Adder
- 8 -кадам: Maple Mini - Pinage
- 9 -кадам: Maple Mini - Пининг - а / Д тартууда колдонулат
- 10 -кадам: Ассамблея
- 11 -кадам: алынган маалыматтар менен график
- 12 -кадам: RMS наркын эсептөө
- 13 -кадам: Булак коду
- 14 -кадам: Файлдар
Video: True-RMS AC чыңалуусун өлчөө: 14 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:41
Бүгүн биз AC окууну аткаруу үчүн STM32 Maple Mini колдонобуз. Биздин мисалда, биз электр тармагынын RMS маанисин алабыз. Бул нерселердин Интернети үчүн электр тармагын көзөмөлдөөнү каалагандар үчүн абдан пайдалуу. Андан кийин биз Maple Miniнин эсептөө күчүн колдонуп, 127Vac сигналын алууга мүмкүндүк бере турган электрондук схеманы колдонобуз, ошондой эле үлгүлөргө орточо квадрат (RMS) эсептөөнү колдонобуз.
1 -кадам: Демонстрация
Бүгүнкү жыйында бизде аналогдук схемадан тышкары STM32 бар, 110ду киргизет. Соккуларды алдын алуу үчүн, 110 менен кирип жаткан резисторду изоляция кылыңыз.
Район өтө сезимтал. Мен 110 менен кирип жатам, бирок чыңалуу бөлүштүргүчтү колдонуп аны 168 эсе азайтып, бир нече функциялары бар оперативдик күчөткүчкө салып койдум.
Бизде булак чыпкалоо үчүн кээ бир кошумча конденсаторлор бар. Эгерде булагыңыз сапаттуу болсо, анда аларды колдонуунун кажети жок.
AD киргизүү осциллограф аркылуу эсептелет, анда сиз синусоидди көрөсүз, ал 110 эмес (бирок жакшы калыптанган). Дагы бир нерсе, биздин электр тармагындагы чыңалуу 110 эмес (бул чындыгында 127 вольт). Бирок биз стабилизаторду баштан кечирип жаткандыктан, ал 115Вга жөндөйт.
Сериялык монитордо көрсөтүлгөн баа RMSде, башкача айтканда, Fluke Meter тарабынан аныкталган.
2 -кадам: Колдонулган ресурстар
• секирүүчүлөр
• Maple Mini
• Protoboard
• LM386 күчөткүчү
• симметриялуу булак (+ 5V жана -5V)
• 10к көп бурулуштуу тримпот (же потенциометр)
• 100nF полиэстерден турган төрт конденсатор
• Үч 10k каршылыгы
• Төрт 470k каршылыгы
• Бир 5k6 каршылыгы
• Бир 1n4728A zener диод
3 -кадам: Блок диаграммасы
4 -кадам: Схема
Бул мен ойлогон спецификациялардын негизинде иштелип чыккан схема, бул өлчөө үчүн эң жакшы деп эсептейм, бирок интернетте дагы бир нече мисал бар.
5 -кадам: LM386 - кадоо
LM386 кондиционер же сигналды күчөтүү үчүн эки күчөткүчкө ээ.
6 -кадам: AmpOp - Дифференциалдык (алып салуучу)
7 -кадам: AmpOp - Inverter Adder
8 -кадам: Maple Mini - Pinage
Белгиленген казыктар:
Кызыл >> 3V3 чыдамдуу
Жашыл >> 5V чыдамдуу
9 -кадам: Maple Mini - Пининг - а / Д тартууда колдонулат
Бул жерде мен колдонгон пин пин 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; // каармандыктын күчтүүлүгү = 1.0 const float fatorAmplificador = 1.0; // Күчтүүлүктүн өзгөрүлмөлүүлүгү жана өзгөрүүсү fatorMultiplicacao = fatorDivisor * fatorAmplificador; // Күчтүүлүк теориясында да Vens = 3.3V const калкыма Vcc = 3.3; // каармандык күчөтүү = ampccicador = Vcc /2.0; const float offSet = 1.66; // AD = 3.3 / 4095.0 конст флота 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; // баалуу көрсөткүчтөрдү аныктоо Vmin = 10000.0; // курал -жаракты аныктоо калкып чыгуу Vmed = 0.0; // курал -жарактарды алуу үчүн Vmáx e Vmín
Булак коду - Орнотуу ()
Сериялык портту 1 Мбит / сек ылдамдыкта баштаңыз. Биз AD портун киргизүү катары жөнгө салдык жана маалыматтарды чогултууну баштоодон мурун 5 секунд күттүк. Күтүү убактысы милдеттүү эмес.
void setup () {Serial.begin (1000000); // 1Mbps pinMode (leituraTensao, INPUT) сериялык порту; // AD комо кирүү кечигүүсү (5000); // 5s anté de iniciar a coleta. (кошумча)}
Source Code - Loop () - Маалымат чогултуунун өзгөрмөлөрүн баштайт
Loopто бизде кайталоо үчүн өзгөрмө бар. Бул жерде биз ошондой эле ADнын окууларын 0.0де сактайбыз жана VRMS өзгөрмөсүн 0.0да кайра баштайбыз.
void loop () {int i = 0; // variate for iteração float leitura = 0.0; // armazena leituras катары AD Vrms = 0.0; // reinicia a variável Vrms
Булак коду - Ар бир үлгү үчүн жеке эсептөөлөрдү тартып, аткарат
Бул этапта, эгерде мен үлгүгө караганда кичирээк болсо, анда мен үлгүлөрдүн санына жеткенге чейин тандоо иретин баштайбыз. Биз analogReadти иштетип, аналогдук портту окуп, окуу чыңалуусунун квадраттарынын суммасын эсептейбиз. Акырында, биз итераторду көбөйтөбүз.
while (i <amostras) {// inosia um ciclo de amostragem até que i alcance o número de amostras leitura = analogRead (leituraTensao); // аналитикалык портал //Serial.println(leitura); // AD Vrms = Vrms + pow (((leitura * fatorAD) - offSet), 2.0); // калкуляторлордун эсептөөлөрү i ++; // көбөйтүү}
Булак коду - Үлгүлөрдүн жалпы эсептөөлөрү жана максималдуу, минималдуу жана орточо көрсөткүчтөр
Биз чыңалуунун чыныгы баасын аныктоо үчүн көбөйтүү фактыны колдонобуз. Биз маанинин максималдуу же минималдуу экенин аныктайбыз жана учурдагы максималдуу жана минималдуу маанилердин орточо эсептерин эсептейбиз.
// Aplicando fator de multiplicaçoo for determinar o valorable real tasões Vrms = (sqrt (Vrms /amostras)) * fatorMultiplicacao; // deta se é um valor é máximo if (Vrms> Vmax) {Vmax = Vrms; } // аныктоо, эгерде (Vrms <Vmin) {Vmin = Vrms; } // эсептөө жана эсептөө Vmed = (Vmax + Vmin) /2.0;
Булак коду - Чыгуу параметрлери
Бизде чыгуунун маанисин "пландоо" үчүн үч вариант бар. Бизде CSV же Джейсон сыяктуу Arduino IDE сериялык плоттерине форматталган чыгаруу бар.
// сериялык 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 ("{" заматта (мс) ":"); 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 ("}"); * / /* // CSV Serial.print форматындагы формат (миллис ()); Serial.print (","); Serial.print (Vrms, 3); Serial.print (","); Serial.print (Vmax, 3); Serial.print (","); Serial.print (Vmin, 3); Serial.print (","); Serial.println (Vmed, 3); */}
14 -кадам: Файлдар
Файлдарды жүктөп алыңыз:
МЕН ЖОК
Сунушталууда:
Убакытты өлчөө (Тасманын өлчөө сааты): 5 кадам (Сүрөттөр менен)
Убакытты өлчөө (Тасманын өлчөө сааты): Бул долбоор үчүн биз (Алекс Фиел & Анна Линтон) күнүмдүк өлчөөчү куралды алып, аны саатка айландырдык! Баштапкы план учурдагы рулетканы моторлоштуруу болгон. Муну жасоодо, биз өзүбүздүн кабыгыбызды түзүү оңой деп чечтик
Ардуинонун жардамы менен электр менен камсыздоо жыштыгын жана чыңалуусун өлчөө: 6 кадам
Ардуинонун жардамы менен электр менен камсыздоо жыштыгын жана чыңалуусун өлчөө: Киришүү: Бул долбоордун максаты - бул жерде Индияда 220-240 Вольт жана 50Гц ортосунда болгон берүү жыштыгын жана чыңалуусун өлчөө. Мен сигналды кармап, жыштыкты жана чыңалууну эсептөө үчүн Arduino колдондум, сиз башка микроконтту колдонсоңуз болот
Arduino менен Dc чыңалуусун өлчөө: 5 кадам
Arduino колдонуп Dc чыңалуусун өлчөө: Бул долбоордо мен сизге arduino аркылуу 50 вольтко чейин DC чыңалуусун кантип өлчөө керектигин көрсөтөм жана OLED дисплей модулунун бөлүгүндө arduino UNOoled дисплейи керек 10k ohm resistor1k ohm resistorjumper кабели
Санарип дарбазанын чыңалуусун өлчөө үчүн схеманы колдонуу: 7 кадам
Санариптик дарбазанын чыңалуусун өлчөө үчүн бир схеманы колдонуу: Санариптик микросхемалар жалпысынан 5 вольттуу материалдарды колдонушат. TTL сериясындагы 5v -2.7 вольттон турган санариптик чыңалуу (санариптик интегралдык чиптин бир түрү) жогорку деп эсептелет жана 1. Санариптик чыңалууга ээ 0-0.5 формасы төмөн деп эсептелет жана
DC чыңалуусун Arduino жана Node-RED менен өлчөө: 8 кадам (сүрөттөр менен)
DC чыңалуусун Arduino жана Node-RED менен өлчөө: Ардуино менен DC чыңалуусун үйрөткүчтөр көп, бул учурда мен каршылыктын кирүү маанилерин талап кылбастан, DCди өлчөөнүн эң жакшы функционалдык методун караган окуу куралын таптым, бир аз каршылыкты талап кылат жана мультиметр