Мазмуну:
- 1 -кадам: компоненттери талап кылынат
- 2 -кадам: Схемалык диаграмма
- 3 -кадам: Районду түшүнүү
- 4 -кадам: Жыштыгы жана чыңалуусун эсептөө
- 5 -кадам: Arduino коду
- 6 -кадам: Жыйынтык
Video: Ардуинонун жардамы менен электр менен камсыздоо жыштыгын жана чыңалуусун өлчөө: 6 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:36
Киришүү:
Бул долбоордун максаты - бул жерде Индияда 220дан 240 Вольтко чейин 50 Гцке чейин болгон берүү жыштыгын жана чыңалуусун өлчөө. Мен сигналды басып алуу жана жыштыгы менен чыңалуусун эсептөө үчүн Arduino колдондум, сизде болгон башка микроконтроллерди же тактаны колдонсоңуз болот. Район бир нече компоненттерди талап кылат жана бардык практикалык максаттар үчүн абдан так.
1 -кадам: компоненттери талап кылынат
- Arduino Uno
- IC LM358
- Төмөн түшүүчү трансформатор (220В - 12В)
-
Конденсаторлор:
- 0.1uF
- 2 x 1uF
-
Резисторлор:
- 3 x 1kOhm
- 2 x 100kOhm
- 1.5kOhm
- 3.3kOhm
- 6.8kOhm
- 3 x 1N4148 диод
- Нан тактасы жана секирүүчү зым (милдеттүү эмес)
2 -кадам: Схемалык диаграмма
Жогорудагы схемада трансформатордун баштапкы түйүнү электр тармагына туташтырылган жана башталгыч биздин өлчөө схемасына туташкан
3 -кадам: Районду түшүнүү
Функционалдуулугуна ылайык, бул схеманы төрт бөлүккө бөлүүгө болот:
Ж: Zero Crossing Detector микросхемасы
Бул чынжыр толкун позитивден терске өткөн сайын 5В чарчы импульс жаратат. Резистор R1 D1 жана D2 менен айкалышып, диоддун кесилишиндеги кирүү чыңалуусун -0.6Vдан +5.6Vга чейин чектейт (диоддун алдыга чыңалуусу 0.6V деп эсептелет). Мындан тышкары, R1дин маанисин жогорулатуу менен чынжырдын кирүү чыңалуу диапазонун көбөйтө аласыз.
R2 жана R3 каршылыгы терс чыңалуусун -0,24 Вольтко чейин чектөө үчүн чыңалуу бөлүштүргүчтү түзөт, анткени LM358дин жалпы режиминин чыңалуусу -0,3 Вольт менен чектелген.
Резистор R4, R5, конденсатор C1 жана оп-амп (бул жерде салыштыруучу катары колдонулат) Schmitt Trigger схемасын түзөт, анда R4 жана R5 каршылыгы гистерезисти жерден +49.5мВ жерге орнотот. Schmitt Triggerдин чыгарылышы андан ары иштетүү үчүн Arduino PIN2ге берилет.
B: Изоляция жана чыңалуу ылдый түшөт
Аталышынан көрүнүп тургандай, бул бөлүк чыңалууну болжол менен 12Vrmsге чейин изоляциялайт жана басат. Төмөндөгөн чыңалуу андан ары приборлордун схемасына берилет.
C: Peak Detector микросхемасы
Бул схема сигналдын максималдуу чыңалуусун аныктайт. Резистордук бөлүштүрүүчү R6 жана R7 кирүү чыңалуусун 0,23 эсеге төмөндөтөт (12Vrms 2.76Vrmsге чейин төмөндөйт). Диод D3 сигналдын оң жарым циклин гана өткөрөт. С2деги чыңалуу чыңалууну андан ары эсептөө үчүн A0 Arduino аналогдук пинине берилүүчү оңдолгон сигналдын чокусуна чейин жогорулайт.
Мындан тышкары, сиз бул схеманы ушул жерде айтылган так чоку детекторунун схемасы менен алмаштыра аласыз. Бирок менин көрсөтмө максаттарым үчүн жогорудагы схема жетиштүү болот.
Д: Ардуино
Бул бөлүктө, Arduino Schmitt Trigger схемасы тарабынан өндүрүлгөн төрт бурчтуу импульстарды басып алат жана чоку детекторунун схемасынан аналогдук чыңалууну окуйт. Берилиштер чарчы импульстун убактысын (демек, жыштыгы) аныктоо үчүн кайра иштелип чыгат (бул ток менен камсыздоо убактысына барабар) жана берүүнүн чыңалуусу.
4 -кадам: Жыштыгы жана чыңалуусун эсептөө
Жыштыкты эсептөө:
Ардуинонун жардамы менен биз сигналдын Т мезгилин өлчөй алабыз. Нөл өтүүчү детектордон келген төрт бурчтуу толкун импульстары 2 пинге берилет, ошол жерден биз ар бир импульстун убактысын өлчөй алабыз. Биз үзгүлтүктөрдүн жардамы менен чарчы импульстун эки Rising четинин ортосундагы убакытты эсептөө үчүн Arduino ички таймерин (тактап айтканда Timer1) колдоно алабыз. Таймер саат циклине 1 көбөйөт (prescaler жок = 1) жана маани TCNT1 реестринде сакталат. Демек, 16 МГц сааты эсептегичти ар бир микросекундага 16 көбөйтөт. Окшош эсептөөчү = 8 үчүн таймер ар бир микросекундага 2 көбөйөт. Ошентип, эки көтөрүлүүчү четинин ортосундагы мезгил
T = (TCNT1 мааниси) / ар бир эсепке алынган убакыт
Кайда, ар бир эсептөө үчүн алынган убакыт = prescaler / (Arduino саат ылдамдыгы (16MHz)
Демек, жыштык f = 1 / T = (Arduino саат ылдамдыгы (16MHz) / (Prescaler * TCNT! Мааниси)
Демек, таймер ылдамдыгы (Гц) = (Arduino саат ылдамдыгы (16МГц)) / prescaler тарабынан берилет
жана сигналдын жыштыгы = (Arduino саат ылдамдыгы) менен берилет
Тиешелүү түрдө f жыштыгын f = 1/T катышынан эсептей алабыз.
Чыңалууну эсептөө:
Ардуинонун борттогу ADCси 10 битке (мүмкүн болгон баалуулуктар = 2^10 = 1024) ээ, баалуулуктарды 0-1023 диапазонуна кайтарат. Тиешелүү аналогдук V чыңалуусун эсептөө үчүн төмөнкү байланышты колдонууга туура келет
V = (ADC окуу) * 5/1023
Жеткирүү чыңалуусун Vs (rms) эсептөө үчүн биз Transformer Ratio, Resistor divider R6R7 жана чокунун детекторунун схемасын эске алышыбыз керек. Биз жөн эле ар кандай факторлорду/катыштарды чогулта алабыз:
Трансформатордун катышы = 12/230 = 0.052
Резистордук бөлүүчү = R7/(R6 + R7) = 0.23
Пикет детекторунун схемасында = 1.414
Vs (rms) = V/(1.414*0.052*0.23) = (ADC окуу)*0.289
Белгилей кетүү керек, бул маани реалдуу баалуулуктан алыс, негизинен трансформатордун реалдуу катышындагы катачылыктан жана диоддун чыңалуусунун төмөндөшүнөн улам. Муну айланып өтүүнүн бир жолу - схеманы чогулткандан кийин факторду аныктоо. Башкача айтканда, камсыздоо чыңалуусун жана C2 конденсаторунун чыңалуусун мультиметр менен өзүнчө өлчөө, андан кийин Vs (rms) төмөнкүчө эсептөө менен:
Vs (rms) = ((Supply Voltage *5)/(C2 *1023 боюнча Voltage)) *(ADC окуу)
менин учурда, Vs (rms) = 0.33*(ADC окуу)
5 -кадам: Arduino коду
#аныктоо вольт_0 A0 // аналогдук чыңалуу окуу пин
учуучу uint16_t t_period; uint16_t ADC_value = 0; сүзүүчү вольт, жыштык; void isr () {t_period = TCNT1; // TCNT1 маанисин t_period сактоо TCNT1 = 0; // баштапкы абалга келтирүү Timer1 ADC_value = analogRead (volt_in); // аналогдук чыңалуу}} float get_freq () {uint16_t таймер = t_period; if (таймер == 0) 0 кайтаруу; // нөлгө бөлүүнү болтурбоо үчүн башка 16000000.0/(8UL*таймерин) кайтарыңыз; // жыштык f = clk_freq/(prescaler*timeperiod) тарабынан берилет} void setup () {TCCR1A = 0; TCCR1B = бит (CS11); // алдын ала эсептегичти 8 TCNT1 = 0 коюңуз; // Timer1 маанисин баштапкы абалга келтирүү TIMSK1 = бит (TOIE1); // иштетүү Timer1 ашуусун үзгүлтүккө учуратуу EIFR | = бит (INTF0); // тазалоо INT0 үзгүлтүк желеги Serial.begin (9600); } void loop () {attachInterrupt (0, isr, RISING); // тышкы үзгүлтүктү (INT0) кечиктирүүнү иштетүү (1000); detachInterrupt (0); freq = get_freq (); вольт = ADC_value*0.33; String buf; buf += String (freq, 3); buf += F ("Hz / t"); buf += сап (вольт); buf += F ("Вольт"); Serial.println (buf); }
6 -кадам: Жыйынтык
Сиз схеманы панельге чогултуп, кодду өзгөртө аласыз жана маалыматты сактоо үчүн SD картасын кошо аласыз, аны кийин талдай аласыз. Мындай мисалдардын бири, сиз чыңалуу саатында чыңалууну жана жыштыкты талдай аласыз.
Мен нан табакта чогулткан схема LM358 (кош опамп) ордуна LM324 (төрт опамп) колдонгон, анткени менде ошол учурда IC жок болчу жана COVID-19 пандемиясынан улам жалпы улуттук блокада мага жаңы IC алуумду кыйындатты.. Ошентсе да, бул схеманын ишине таасирин тийгизбейт.
Бардык сунуштар жана суроолор боюнча төмөндө комментарий жазуудан тартынбаңыз.
Сунушталууда:
Ардуинонун жардамы менен мотор ылдамдыгын өлчөө: 6 кадам
Ардуинонун жардамы менен мотор ылдамдыгын өлчөө: Мотордун айлануусун өлчөө кыйынбы? Мен андай деп ойлобойм. Бул жерде бир жөнөкөй чечим бар. Сиздин комплектеги бир гана IR сенсору жана Arduino муну кыла алат. Бул постто мен IR сенсорунун жардамы менен ар кандай мотордун RPMин кантип өлчөө керектигин түшүндүргөн жөнөкөй окуу куралын берем
220Втан 24В 15Ага чейин электр менен камсыздоо - Электр энергиясын которуштуруу - IR2153: 8 кадам
220Втан 24В 15Ага чейин электр менен камсыздоо | Электр энергиясын которуштуруу | IR2153: Салам жигит, бүгүн биз 220Втан 24В 15Ага чейин электр менен камсыз кылабыз | Электр энергиясын которуштуруу | ATX электр булагынан IR2153
DC чыңалуусун Arduino жана Node-RED менен өлчөө: 8 кадам (сүрөттөр менен)
DC чыңалуусун Arduino жана Node-RED менен өлчөө: Ардуино менен DC чыңалуусун үйрөткүчтөр көп, бул учурда мен каршылыктын кирүү маанилерин талап кылбастан, DCди өлчөөнүн эң жакшы функционалдык методун караган окуу куралын таптым, бир аз каршылыкты талап кылат жана мультиметр
Иш столунун чыңалуусун жөнгө салуучу/Электр менен камсыздоо: 9 кадам
Иш столунун чыңалуусун жөнгө салуучу/Электр энергиясы менен камсыздоо: Эгерде сиз электроника студенти болсоңуз, анда хобби же про болсоңуз, анда сиздин түзмөктөрүңүзгө жана чынжырларыңызга туура чыңалуу берүүнүн кадимки көйгөйү бар. жөнгө салуучу
Ардуинонун жардамы менен музыкага жаңы жылдык чырактар: 9 кадам (сүрөттөр менен)
Ардуинонун жардамы менен музыкага Рождество чырактары: Жубайым экөөбүз акыркы бир нече эс алуу мезгилинде музыканы өзүбүздүн жарыгыбыз менен көрсөтүүнү кааладык. Төмөндөгү эки Instructablesдан шыктангандыктан, биз акыры ушул жылы баштоону жана RVбизди кооздоону чечтик. Баары бир болууну кааладык