Агуулгын хүснэгт:

Arduino нарийн ба нарийвчлалтай вольт тоолуур (0-90V DC): 3 алхам
Arduino нарийн ба нарийвчлалтай вольт тоолуур (0-90V DC): 3 алхам

Видео: Arduino нарийн ба нарийвчлалтай вольт тоолуур (0-90V DC): 3 алхам

Видео: Arduino нарийн ба нарийвчлалтай вольт тоолуур (0-90V DC): 3 алхам
Видео: Бесконтактный датчик температуры дальнего действия MLX90614-DCI с Arduino 2024, Арваннэгдүгээр
Anonim

Энэхүү зааварчилгаанд би Arduino Nano ашиглан DC (0-90v) өндөр хүчдэлийг харьцангуй нарийвчлалтай, нарийвчлалтай хэмжих вольтметрийг бүтээсэн.

Миний авсан туршилтын хэмжилт нь хангалттай нарийвчлалтай байсан бөгөөд ихэвчлэн стандарт вольтметрээр хэмжсэн бодит хүчдэлийн 0.3 вольтын дотор байдаг (би Astro AI DM6000AR ашигласан). Энэ нь төхөөрөмжийг зориулалтын дагуу ашиглахад хангалттай ойрхон байна.

Үүнийг архивлахын тулд би хүчдэлийн лавлагаа (4.096v) ба хүчдэл хуваагч ашигласан.

Кодын талд би мэдээж Arduino Nano -ийн "гадаад лавлах" сонголт болон Arduino хичээлийн "Зөөлрүүлэх" жишээг ашигласан.

Хангамж

1 x Arduino Nano - Холбоос

1 x Олед дэлгэц (SSD 1306) - Холбоос

1 x 1/4W 1% эсэргүүцэл - 1к ом - Холбоос

1 x 1/4W 1% резистор - 220к ом - Холбоос

1 x 1/4W 1% эсэргүүцэл - 10к ом - Холбоос

1 x 4.096v LM4040DIZ -4.1 Хүчдэлийн лавлагаа - Холбоос

Талх, утас - Холбоос

Astro AI DM6000AR - Холбоос

USB Power Bank - холбоос

9V батерей - холбоос

CanadianWinters нь Amazon.com ХХК болон харьяа сайтуудтай холбогдож сайтуудаас төлбөр авах боломжийг бүрдүүлэх зорилготой түншлэлийн зар сурталчилгааны хөтөлбөр болох Amazon Services LLC Associates Program -ийн оролцогч юм. Эдгээр холбоосыг ашигласнаар Amazon Associate-ийн хувьд, хэрэв та өөр зүйл худалдаж авсан ч гэсэн шаардлага хангасан худалдан авалтаас олдог бөгөөд энэ нь танд ямар ч зардал гарахгүй.

Алхам 1: Схем

Схем
Схем
Схем
Схем

Би дээр дурдсан схемийн дагуу бүх хэсгүүдийг холбосон. Ялангуяа нарийвчлал алдагдахгүйн тулд 5v тэмдгийн ойролцоо байхын тулд 4.096 хүчдэлийн лавлагааг сонгосон.

Өгөгдлийн хүснэгтийг дагаж өөр утгыг ашиглаж болох боловч хүчдэлийн лавлагаанд зориулж 1K ом эсэргүүцлийг сонгосон. Лавлагааны хүчдэлийг Nano 5v зүүгээр хангадаг.

Хэлхээний санаа нь хэмжих DC хүчдэл нь хүчдэлийн эсэргүүцэлээр дамждаг. Масштабтай хүчдэлийг дараа нь дээж авах, тэгшлэх, дахин масштаблах, OLed дэлгэц дээр харуулахын тулд Arduino-ийн аналог зүү рүү оруулна.

Би бүх зүйлийг энгийн байлгахыг хичээсэн:)

Алхам 2: Код ба резисторын тооцоолол

Эсэргүүцлийн утгыг эсэргүүцлийг 10 к Ом -оос доош байлгахыг зөвлөж байна (хэрэв би андуураагүй бол энэ нь Arduino/Atmega мэдээллийн хуудсан дээр байна).

Аливаа зүйлийг хялбарчлахын тулд би янз бүрийн эсэргүүцлийн утгыг ашиглахыг хүсвэл тооцооллыг автоматжуулдаг хүснэгт хийсэн.

Энэ төсөлд миний ашиглаж байсан код энд байна.

#оруулах

#оруулах U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2 (U8G2_R0); // (эргүүлэх, [дахин тохируулах]) хөвөх хүчдэл = 0; // float хүчдэлийн утгыг хадгалахад ашигладаг Radjust = 0.043459459; // Хүчдэл хуваагчийн хүчин зүйл (R2 /R1+R2) float vbat = 0; // тооцоолсны дараа эцсийн хүчдэл- зайны хөвөх хүчдэл Vref = 4.113; // Хүчдэлийн лавлагаа - хэмжигдэх бодит утга. Нэрлэсэн утга 4.096v const int numReadings = 50; // унших дээжийн тоо - илүү жигд болгохын тулд нэмэгдүүлэх. Илүү хурдан уншихын тулд бууруулна уу. int уншилт [numReadings]; // int readIndex = 0 аналог оролтын уншилт; // одоогийн уншигчийн индекс гарын үсэг зураагүй урт нийт = 0; // ажиллаж буй нийт int дундаж = 0; // хойшлуулалгүйгээр дэлгэцийг шинэчлэх хувьсагчууд unsigned long previousMillis = 0; // дэлгэцийг шинэчилсэн үед хадгалах болно // тогтмолууд өөрчлөгдөхгүй: const long interval = 50; // дэлгэцийг шинэчлэх интервал (миллисекунд) void setup (void) {analogReference (EXTERNAL); // 4.096 лавлах хүчдэлд AREF ашиглана уу. Миний лавлах бодит хүчдэл 4.113v u8g2.begin (); for (int thisReading = 0; thisReading = numReadings) {//… эхэнд нь ороосон: readIndex = 0; } // дунджийг тооцоолох: дундаж = (нийт / numReadings); хүчдэл = дундаж * (Vref / 1023.0); //4.113 бол Vref vbat = хүчдэл/Radjust; // Дэлгэцийг шинэчлэх хугацааг Милис ашиглан тохируулах, хэрэв (currentMillis - previousMillis> = интервал) {// дэлгэцийг хамгийн сүүлд шинэчлэх хугацааг хадгална уу өмнөхMillis = currentMillis; u8g2.clearBuffer (); // дотоод цэсийг цэвэрлэх // Pack Voltage display u8g2.setFont (u8g2_font_fub20_tr); // 20px фонт u8g2.setCursor (1, 20); u8g2.хэвлэх (vbat, 2); u8g2.setFont (u8g2_font_8x13B_mr); // 10 px фонт u8g2.setCursor (76, 20); u8g2.print ("Вольт"); u8g2.setCursor (1, 40); u8g2.print ("CanadianWinters"); u8g2.setCursor (1, 60); u8g2.print ("Нарийн хүчдэл"); } u8g2.sendBuffer (); // дотоод санах ойг дэлгэцийн саатал руу шилжүүлэх (1); }

Би Arduino кодчилолд жаахан зэвэрсэн байгаа тул хэрэв та ямар нэгэн алдаа эсвэл кодыг сайжруулах арга замыг олж мэдвэл санал хүсэлтийг хүлээж авахад бэлэн байна гэдгийг анхаарна уу.

Алхам 3: Үүнийг туршиж үзье

Үүнийг туршиж үзье!
Үүнийг туршиж үзье!
Үүнийг туршиж үзье!
Үүнийг туршиж үзье!
Үүнийг туршиж үзье!
Үүнийг туршиж үзье!

Энэхүү вольтметрийг туршихын тулд би орон нутгийн дэлгүүрээс худалдаж авсан 8х 9в батерейг ашигласан. Би энэ вольтметрийг ашиглан цахилгаан унадаг дугуйн батерейныхаа хүчдэлийг хэмжихээр төлөвлөж байна (24-60 вольтын хоорондох хүчдэл, заримдаа 72 вольт байдаг).

Электроникийг pcb болон жижиг хайрцагт савласны дараа сайхан, зөөврийн батерейны тоолуур хийх болно. OLED дээрх график болон фонтыг таны хэрэгцээнд нийцүүлэн өөрчилж болно (жишээ нь уншихад хялбар том фонт).

Миний зорилго бол дижитал олон хэмжигчээс холгүй орших Олед/Ардуино тоолуур дээр хүчдэлийн заалттай байх явдал байв. Би +/- 0, 3v max delta-ийг зорьж байсан. Видео бичлэгээс харахад хэмжлийн дээд төгсгөлөөс бусад тохиолдолд би үүнийг архивлаж чадсан юм.

Энэхүү зааварчилгаа танд таалагдсан гэж найдаж, санал бодлоо хэлээрэй!

Зөвлөмж болгож буй: