Мазмуну:

Arduino Volt Meter (0-100V DC) - 2 -версия (жакшыраак): 3 кадам
Arduino Volt Meter (0-100V DC) - 2 -версия (жакшыраак): 3 кадам

Video: Arduino Volt Meter (0-100V DC) - 2 -версия (жакшыраак): 3 кадам

Video: Arduino Volt Meter (0-100V DC) - 2 -версия (жакшыраак): 3 кадам
Video: Как измерить любое напряжение постоянного тока с Arduino ARDVC-01 2024, Июнь
Anonim
Image
Image
1 -кадам: схемалар
1 -кадам: схемалар

Бул көрсөтмөдө, мен Arduino Nano жана ADS 1115 ADCди колдонуп, жогорку чыңалуудагы DC (0-100v) салыштырмалуу тактык жана тактык менен өлчөө үчүн вольтметрди курдум.

Бул вольтметрдин экинчи версиясы, бул жерде менин мурунку көрсөтмөм:

Мен алган тест өлчөөлөрү так болду, негизинен стандарттык вольтметр менен өлчөнгөн чыныгы чыңалуудан 0,1 в ичинде (мен Astro AI DM6000AR колдондум).

Бул менин оюмча, Arduinoдогу тышкы чыңалуу шилтемесин колдонууга караганда.

Жабдуулар

1 x Arduino Nano - Шилтеме

1 x Oled Display (SSD 1306) - Шилтеме

1 x ADS 1115 - 16 бит ADC - Шилтеме

1 x 1/4W (мен 1W резисторлорун колдонууну сунуштайм) 1% резистор - 220k ohm - Link

1 x 1/4W (мен 1W резисторлорун колдонууну сунуштайм) 1% резистор - 10k ohm - Link

Нан тактасы жана зымдар - Шилтеме

Astro AI DM6000AR - Шилтеме

USB Power Bank - Шилтеме

9V батареялары - шилтеме

CanadianWinters Amazon Services LLC Associates Программасынын катышуучусу, Amazon.com жана аффилирленген сайттарга шилтеме берүү менен сайттарга төлөмдөрдү табуу үчүн каражаттарды берүү үчүн иштелип чыккан өнөктөш жарнак программасы. Бул шилтемелерди колдонуу менен, Amazon Associate катары, башка нерселерди сатып алсаңыз да, квалификациялуу сатып алуулардан киреше табам-жана бул сизге эч нерсе кылбайт.

1 -кадам: 1 -кадам: Схемалар

1 -кадам: схемалар
1 -кадам: схемалар

Мен бардык бөлүктөрдү жогорудагы схемаларга ылайык туташтырдым.

Мен ADC1115тин ADDR пинин жерге байладым. Бул ADC дарегин 0x48ге коёт.

2 -кадам: 2 -кадам: Код жана резистордун эсептөөлөрү

2 -кадам: Код жана резистордун эсептөөлөрү
2 -кадам: Код жана резистордун эсептөөлөрү

Мурунку көрсөтмөлүү болгондой эле, схеманын идеясы - бул туруктуу DC чыңалуусу чыңалуу каршылыгы аркылуу өтөт. Масштабдуу чыңалуу ADC конвертеринин аналогдук пинине кирип окулат, андан кийин Arduinoго I2C аркылуу өтөт, андан кийин кайра масштабдалат жана OLed дисплейде көрсөтүлөт.

Бул учурда мен коддо эч кандай орточо же текшилөө колдонгон жокмун, анткени окуу так жана так окшойт. Ызы -чууну басаңдатуу үчүн, A0 (ADCде) менен жердин ортосуна кичинекей конденсатор кошуп койсоңуз болот. Бул менин тестим үчүн талап кылынган жок.

Мен байкаган бир нерсе, батарейка тиркелбегенде бир аз ызы -чуу болду (0 вольт). Мен Arduino сериялык мониторун ADC маанисин көрсөтүү жана код аркылуу тууралоо/тууралоо үчүн колдондум.

Мурунку көрсөтмөдөгүдөй, мен чыңалуу бөлүштүргүчтө ар кандай резистордук маанилерди колдонууну кааласаңыз, эсептөөлөрдү автоматташтырган электрондук жадыбал жасадым: Google Шилтеме

Мына мен бул долбоор үчүн колдонгон код:

#кошуу

#кошуу #кошуу #кошуу Adafruit_ADS1115 жарнактар (0x48); // ADC дареги U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2 (U8G2_R0); // (айлануу, [баштапкы абалга келтирүү]) int calib = 7; // ADS1115 калибрлөө мааниси ката калкып чыңалууну азайтуу үчүн = 0; // чыңалуу маанисин калкып калуу үчүн колдонулат Radjust = 0.043421905; // Чыңалуу бөлүүчү фактор (R2 / R1+R2) float vbat = 0; // калькуляциядан кийинки акыркы чыңалуу- батареянын чыңалуусу // экрандын кечигүүсүн колдонбостон сергитүү үчүн өзгөрмөлөр unsigned long previousMillis = 0; // экран акыркы жолу жаңыртылганда сакталат // константалар өзгөрбөйт: const long interval = 250; // экранды жаңыртуу үчүн интервал (миллисекундтар) void setup (void) {Serial.begin (9600); u8g2.begin (); ads.begin (); } void loop (void) {int16_t adc0; // 16 бит ADC A0 киргизүү окуйт adc0 = ads.readADC_SingleEnded (0); чыңалуу = ((adc0 + calib) * 0.1875)/1000; белгисиз узак currentMillis = millis (); vbat = Voltage/Radjust; // Батарея ажыратылганда терс чыңалуу көрсөтүлбөсүн, эгерде (vbat = interval) {previousMillis = currentMillis; u8g2.clearBuffer (); // ички менорду тазалоо // Пакеттин чыңалуусун көрсөтүү - Бул барактагы шрифттер: https://github.com/olikraus/u8g2/wiki/fntlistall //u8g2.setFont(u8g2_font_fub20_tr); // 20px шрифт u8g2.setFont (u8g2_font_fub35_tr); // 35px шрифт u8g2.setCursor (1, 42); u8g2.print (vbat, 2); u8g2.setFont (u8g2_font_8x13B_mr); // 10 px шрифт u8g2.setCursor (1, 60); u8g2.print ("Вольт"); } u8g2.sendBuffer (); // дисплейдин кечигүүсүнө ички эсти өткөрүп берүү (1); }

3 -кадам: 3 -кадам: Кел, аны сынап көрөлү

3 -кадам: Кел, аны сынап көрөлү!
3 -кадам: Кел, аны сынап көрөлү!

Бул вольтметрди текшерүү үчүн мен жергиликтүү дүкөндөн алган 10x 9v батареяларын колдондум. Бул жолу мен 97 вольтко чейин өлчөй алчумун! Мен бул вольтметрди электр велосипеддеримдеги батарейкалардагы чыңалууну өлчөө үчүн колдонууну пландап жатам (алар 24-60в чейин чыңалуусу бар, кээде 72в).

Электроника компьютерге жана кичинекей кутуга салынгандан кийин, бул жакшы жана портативдүү батареянын өлчөгүчүн түзөт. OLEDдеги графика жана шрифттер сиздин муктаждыктарыңызга ылайыкташтырылган болушу мүмкүн (мисалы. Оңой окуу үчүн чоңураак шрифт). Менин максатым Санариптик Мультиметрден алыс эмес Олед/Ардуино метринде чыңалуу көрсөткүчү болгон. Мен +/- 0, 3v макс дельтасын көздөп жаткам.

Нускаманын башында видеодон көрүнүп тургандай, мен муну архивдей алдым! Окуулардын көбү так эле!

Бул Насаатчы сизге жакты деп ишенем жана оюңузду мага билдириңиз!

Сунушталууда: