สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: ขั้นตอนที่ 1: แผนผัง
- ขั้นตอนที่ 2: ขั้นตอนที่ 2: การคำนวณรหัสและตัวต้านทาน
- ขั้นตอนที่ 3: ขั้นตอนที่ 3: มาทดสอบกัน
วีดีโอ: Arduino โวลต์มิเตอร์ (0-100V DC) - เวอร์ชัน 2 (ดีกว่า): 3 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
ในคำแนะนำนี้ ฉันได้สร้างโวลต์มิเตอร์เพื่อวัดแรงดันสูง DC (0-100v) ด้วยความแม่นยำและความแม่นยำสัมพัทธ์โดยใช้ Arduino Nano และ ADS 1115 ADC
นี่เป็นโวลต์มิเตอร์รุ่นที่สองที่ใช้คำสั่งก่อนหน้าของฉันที่นี่:
การวัดการทดสอบที่ฉันทำนั้นแม่นยำ ส่วนใหญ่อยู่ภายใน 0.1v ของแรงดันไฟฟ้าจริงที่วัดด้วยโวลต์มิเตอร์มาตรฐาน (ฉันใช้ Astro AI DM6000AR)
สิ่งนี้ดีกว่าและง่ายกว่าในความคิดของฉันมากกว่าการใช้แรงดันอ้างอิงภายนอกบน Arduino
เสบียง
1 x Arduino Nano - ลิงค์
1 x Oled แสดงผล (SSD 1306) - ลิงค์
1 x ADS 1115 - ADC 16 บิต - Link
1 x 1/4W (ฉันแนะนำให้ใช้ตัวต้านทาน 1W) ตัวต้านทาน 1% - 220k ohm - Link
1 x 1/4W (ฉันแนะนำให้ใช้ตัวต้านทาน 1W) ตัวต้านทาน 1% - 10k ohm - Link
เขียงหั่นขนมและสายไฟ - Link
Astro AI DM6000AR - ลิงค์
USB Power Bank - ลิงค์
แบตเตอรี่ 9V - ลิงค์
CanadianWinters เป็นผู้มีส่วนร่วมในโปรแกรม Amazon Services LLC Associates ซึ่งเป็นโปรแกรมโฆษณาในเครือที่ออกแบบมาเพื่อให้เว็บไซต์ได้รับค่าธรรมเนียมโดยการลิงก์ไปยัง Amazon.com และเว็บไซต์ในเครือ ด้วยการใช้ลิงก์เหล่านี้ ในฐานะที่เป็น Amazon Associate ฉันจะได้รับรายได้จากการซื้อที่เข้าเงื่อนไข แม้ว่าคุณจะซื้ออย่างอื่น และจะไม่เสียค่าใช้จ่ายใดๆ
ขั้นตอนที่ 1: ขั้นตอนที่ 1: แผนผัง
ฉันเชื่อมต่อทุกส่วนตามแผนผังด้านบน
ฉันผูกพิน ADDR ของ ADC1115 กับกราวด์ ตั้งค่าที่อยู่ของ ADC เป็น 0x48
ขั้นตอนที่ 2: ขั้นตอนที่ 2: การคำนวณรหัสและตัวต้านทาน
เช่นเดียวกับคำแนะนำก่อนหน้านี้ แนวคิดของวงจรคือแรงดันไฟตรงที่จะวัดต้องผ่านตัวต้านทานแรงดันไฟ แรงดันไฟฟ้าที่ปรับขนาดแล้วเข้าไปในขาอะนาล็อกของตัวแปลง 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; // ใช้สำหรับเก็บค่าแรงดัน float Radjust = 0.043421905; // ตัวแบ่งแรงดัน (R2 / R1+R2) float vbat = 0; // แรงดันไฟสุดท้ายหลัง calcs- แรงดันไฟของแบตเตอรี่ // ตัวแปรสำหรับการรีเฟรชหน้าจอโดยไม่ใช้การหน่วงเวลา unsigned long PreviousMillis = 0; // จะเก็บครั้งสุดท้ายที่หน้าจอถูกรีเฟรช // ค่าคงที่จะไม่เปลี่ยนแปลง: const long interval = 250; // ช่วงเวลาที่รีเฟรชหน้าจอ (มิลลิวินาที) ถือเป็นโมฆะการตั้งค่า (เป็นโมฆะ) { Serial.begin (9600); u8g2.begin(); ads.begin(); } วงเป็นโมฆะ (เป็นโมฆะ) { int16_t adc0; // 16 บิต ADC อ่านอินพุต A0 adc0 = ads.readADC_SingleEnded (0); แรงดันไฟฟ้า = ((adc0 + คาลิบ) * 0.1875)/1000; ไม่ได้ลงนามยาว currentMillis = millis(); vbat = แรงดันไฟ/ปรับ; // ป้องกันการแสดงแรงดันลบเมื่อแบตเตอรี่ถูกตัดการเชื่อมต่อหาก (vbat = ช่วงเวลา) { PreviousMillis = currentMillis; u8g2.clearBuffer(); // ล้าง menory ภายใน // จอแสดงผล Pack Voltage - แบบอักษรที่หน้านี้: 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: มาทดสอบกัน
เพื่อทดสอบโวลต์มิเตอร์นี้ ฉันใช้แบตเตอรี่ 10x 9v ที่ซื้อมาจากร้านค้าในพื้นที่ คราวนี้ฉันสามารถวัดได้ถึง 97 โวลต์! ฉันวางแผนที่จะใช้โวลต์มิเตอร์นี้เพื่อวัดแรงดันไฟฟ้าของชุดแบตเตอรี่รถจักรยานไฟฟ้าของฉัน (มีแรงดันไฟฟ้าตั้งแต่ 24-60v กับ 72v เป็นครั้งคราว)
เมื่อบรรจุอุปกรณ์อิเล็กทรอนิกส์ลงใน pcb และกล่องเล็กๆ แล้ว จะทำให้เป็นเครื่องวัดแบตเตอรี่แบบพกพาที่ดีและสวยงาม กราฟิกและแบบอักษรบน OLED สามารถปรับแต่งให้เหมาะกับความต้องการของคุณได้ (เช่น แบบอักษรที่ใหญ่ขึ้นเพื่อให้อ่านง่าย) เป้าหมายของฉันคือการอ่านค่าแรงดันไฟฟ้าบนมิเตอร์ Oled/Arduino ซึ่งอยู่ไม่ไกลจาก Digital Multi Meter ของฉันมากนัก ฉันตั้งเป้าไปที่ +/-0, 3v max delta
ดังที่คุณเห็นจากวิดีโอในตอนต้นของ Instructable ฉันสามารถเก็บสิ่งนี้ได้! การอ่านส่วนใหญ่ตรงจุด!
ฉันหวังว่าคุณจะสนุกกับคำแนะนำนี้และแจ้งให้เราทราบความคิดของคุณ!
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
โล่สำหรับ Arduino จากหลอด VFD รัสเซียรุ่นเก่า: นาฬิกา, เทอร์โมมิเตอร์, โวลต์มิเตอร์: 21 ขั้นตอน (พร้อมรูปภาพ)
Shield for Arduino จากหลอด VFD รุ่นเก่าของรัสเซีย นาฬิกา เทอร์โมมิเตอร์ โวลต์มิเตอร์…: โครงการนี้ใช้เวลาเกือบครึ่งปีจึงจะเสร็จสมบูรณ์ ฉันไม่สามารถอธิบายได้ว่าโครงการนี้มีงานมากแค่ไหน การทำโปรเจ็กต์นี้คนเดียวจะใช้เวลาตลอดไป ดังนั้นฉันจึงได้รับความช่วยเหลือจากเพื่อนๆ ที่นี่คุณสามารถเห็นงานของเราที่รวบรวมไว้ในคำสั่งเดียวที่ยาวมาก
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
Arduino ที่ถูกที่สุด -- Arduino ที่เล็กที่สุด -- Arduino Pro Mini -- การเขียนโปรแกรม -- Arduino Neno: 6 ขั้นตอน (พร้อมรูปภาพ)
Arduino ที่ถูกที่สุด || Arduino ที่เล็กที่สุด || Arduino Pro Mini || การเขียนโปรแกรม || Arduino Neno:…………………………… โปรดสมัครสมาชิกช่อง YouTube ของฉันสำหรับวิดีโอเพิ่มเติม……. โปรเจ็กต์นี้เกี่ยวกับวิธีเชื่อมต่อ Arduino ที่เล็กที่สุดและถูกที่สุดเท่าที่เคยมีมา Arduino ที่เล็กที่สุดและถูกที่สุดคือ arduino pro mini คล้ายกับ Arduino
ดีกว่า "อีกา" หรือ รำคาญ-a-tron. ฟรี!!!: 3 Steps
ดีกว่า "อีกา" หรือ รำคาญ-อา-ตรอน…. ฟรี!!!: ที่นี้ผมจะบอกคุณใน 3 ขั้นตอนง่ายๆ เกี่ยวกับวิธีการใช้ยุง โปรแกรมสำหรับมือถือของคุณ และไม่เสียเงินอย่างแน่นอน!!!(นี่คือ ible แรกของฉัน):D