บทที่ 98-9: มิเตอร์วัดระดับแรงดันไฟฟ้า LED โดยใช้ Arduino หรือไฟเดินด้วยโพเทนชิโอมิเตอร์
โปรเจกต์นี้แสดงวิธีสร้างโวลต์มิเตอร์วัดระดับแรงดันที่ใช้ LED ห้าดวงเป็นจอแสดงผลแบบกราฟแท่ง ขับเคลื่อนทั้งหมดด้วย Arduino และโพเทนชิโอมิเตอร์ตัวเดียว เมื่อคุณหมุนปุ่ม Arduino จะอ่านแรงดันที่เปลี่ยนแปลงบนพินอนาล็อกและติด LED หนึ่งดวงต่อหนึ่งโวลต์ แถวของไฟจึง "เดิน" ขึ้นลงตามปุ่มจริง ๆ นี่เป็นวิธีที่ชัดเจนที่สุดวิธีหนึ่งในการทำความเข้าใจอินพุตอนาล็อก เพราะคุณสามารถเห็นการแปลงสัญญาณอนาล็อกเป็นดิจิทัลเกิดขึ้นแบบเรียลไทม์ในรูปของแถบไฟจริง
คุณค่าที่ใช้ได้จริงตรงนี้ไปไกลกว่าการแสดงแสงไฟ เมื่อคุณเข้าใจวิธีแมปแรงดันที่วัดได้ไปยังชุดเอาต์พุตแล้ว คุณสามารถนำรูปแบบเดียวกันนี้ไปใช้กับเครื่องมือวัดจริงได้ ตัวอย่างเช่น คุณสามารถสร้าง:
- ตัวบ่งชี้ประจุแบตเตอรี่ที่แสดงความจุคงเหลือของแบตเตอรี่ 12 V หรือพาวเวอร์แบงก์ USB เป็นแถว LED
- มาตรวัดระดับถังน้ำ โดยเซ็นเซอร์ลูกลอยส่งแรงดันเป็นสัดส่วนกับความลึก
- จอแสดงผลอุณหภูมิแบบแท่งโดยใช้เซ็นเซอร์อุณหภูมิอนาล็อกเช่น LM35
- มาตรวัดความแรงสัญญาณหรือระดับเสียงสำหรับเครื่องรับวิทยุหรือแอมพลิฟายเออร์
- การอ่านค่าเซ็นเซอร์อย่างง่ายสำหรับทรานสดิวเซอร์อนาล็อก 0–5 V ใด ๆ (ความดัน แสง ตำแหน่ง)
- หัววัดแรงดันสำหรับทดสอบบนโต๊ะเพื่อตรวจสอบรางจ่ายไฟโดยไม่ต้องดูหน้าจอมัลติมิเตอร์
เนื่องจากค่าเกณฑ์ถูกคำนวณเป็นเปอร์เซ็นต์ของแรงดันบอร์ด โค้ดเดียวกันจึงใช้ได้กับบอร์ด 5 V เช่น Uno และ Mega และกับบอร์ด 3.3 V โดยแก้เพียงบรรทัดเดียว
ฮาร์ดแวร์และส่วนประกอบ
รายการชิ้นส่วนถูกตั้งใจให้มีน้อยที่สุด และทุกอย่างได้รับการอธิบายในช่วงต้นของวิดีโอ (ในวิดีโอที่ 01:54) คุณจะต้องมี:
- บอร์ด Arduino หนึ่งตัว (Uno, Nano หรือ Mega)
- LED ห้าดวง โดย ideally เป็นสีเดียวกันเพื่อให้แถบอ่านค่าได้ชัดเจน แม้ว่าสีผสมก็ใช้ได้เช่นกัน
- ตัวต้านทานจำกัดกระแสห้าตัว บทเรียนนี้ใช้ตัวต้านทาน 1 kΩ แต่ค่าตั้งแต่ประมาณ 300 Ω ถึง 1 kΩ ก็ใช้ได้ ค่าที่สูงขึ้นเพียงทำให้ LED สว่างน้อยลง (ในวิดีโอที่ 05:33)
- โพเทนชิโอมิเตอร์หนึ่งตัว ทั้งแบบปุ่มหมุนและแบบสไลต์ได้รับการสาธิต (ในวิดีโอที่ 02:19)
- เบรดบอร์ดและสายจัมเปอร์
หมายเหตุสั้น ๆ เกี่ยวกับ LED เอง เนื่องจากมันสำคัญต่อการเดินสาย: LED เป็นไดโอด ดังนั้นมันจึงนำกระแสได้ทางเดียว ด้านแบนของตัวพลาสติกและขาที่สั้นกว่าคือแคโทด (ลบ) ขาที่ยาวกว่าคือแอโนด (บวก) บทเรียนนี้อธิบายสัญลักษณ์และรูปร่างทางกายภาพอย่างละเอียด (ในวิดีโอที่ 02:39)
ค่าตัวต้านทานไม่ใช่ค่าสุ่ม LED จะมีแรงดันตกประมาณ 2 V และชนิด 3 mm และ 5 mm ขนาดเล็กจะกินกระแสประมาณ 10 mA เมื่อใช้แหล่งจ่าย 5 V แรงดันที่เหลือ 3 V ต้องตกคร่อมตัวต้านทาน ดังนั้นกฎของโอห์มให้ R = 3 V / 0.01 A = 300 Ω นั่นคือค่าสำหรับความสว่างสูงสุด การใช้ 1 kΩ เป็นทางเลือกที่ปลอดภัยและสว่างน้อยลงเล็กน้อย (ในวิดีโอที่ 04:41)
คู่มือการเดินสาย
ส่วน LED ของการเดินสายเหมือนกับโปรเจกต์ไฟเดินก่อนหน้านี้: แอโนดของ LED แต่ละดวงต่อกับพินดิจิทัลของตัวเอง และแคโทดแต่ละดวงผ่านตัวต้านทานไปยังรางกราวด์ร่วม ในบทเรียนนี้ LED ต่อกับพิน 7, 6, 5, 4 และ 3 (ในวิดีโอที่ 43:04)
โพเทนชิโอมิเตอร์เป็นชิ้นส่วนใหม่เพียงอย่างเดียว ขาด้านนอกสองข้างต่อกับรางจ่ายไฟทั้งสอง — ขาด้านนอกข้างหนึ่งต่อกราวด์และอีกข้างต่อ 5 V (หรือ 3.3 V หากคุณกำลังวัดระบบ 3.3 V) ขากลางเรียกว่าไวเปอร์ เป็นเอาต์พุตและต้องต่อกับพินอนาล็อก A0 (ในวิดีโอที่ 43:30) ไวเปอร์เป็นสิ่งที่สร้างแรงดันแปรผัน: เมื่อคุณหมุนปุ่ม ไวเปอร์จะเลื่อนไปตามรางต้านทานและแรงดันที่มันให้จะเปลี่ยนอย่างราบรื่นระหว่างรางทั้งสอง
รายละเอียดสำคัญอย่างหนึ่ง: หากคุณถอดโพเทนชิโอมิเตอร์ออกขณะวงจรทำงาน พินอนาล็อกจะลอยและ LED จะกะพริบแบบสุ่ม พฤติกรรมนี้ได้รับการสาธิตในวิดีโอ (ในวิดีโอที่ 48:52) และเป็นเครื่องเตือนใจที่ดีว่าอินพุตอนาล็อกจำเป็นต้องมีแหล่งแรงดันที่กำหนดไว้เสมอ
คำอธิบายโค้ด
โค้ดสั้นและส่วนใหญ่ตรงไปตรงมา ดังนั้นส่วนนี้จึงเน้นเฉพาะส่วนที่คุณอาจต้องการเปลี่ยนแปลง การตั้งค่าเหล่านี้ทั้งหมดอยู่ที่ด้านบนของสเก็ตช์
การกำหนดพิน สิ่งเหล่านี้บอก Arduino ว่า LED และโพเทนชิโอมิเตอร์ต่อกับพินใด หากคุณเดินสาย LED ต่างออกไป ให้เปลี่ยนตัวเลขเหล่านี้ให้ตรงกัน — ลำดับมีความสำคัญ เพราะ LED1 คือค่าเกณฑ์ต่ำสุดและ LED5 คือค่าสูงสุด
const int potPin = A0;//define a pin to connect potentiometer
const int LED1 = 7;
const int LED2 = 6;
const int LED3 = 5;
const int LED4 = 4;
const int LED5 = 3;แรงดันไฟฟ้าของบอร์ด นี่คือค่าที่สำคัญที่สุดที่ต้องตั้งให้ถูกต้อง เพราะเป็นค่าอ้างอิงที่ใช้คำนวณทุกเกณฑ์ ตั้งเป็น 5.0 สำหรับ Uno หรือ Mega และ 3.3 สำหรับ Nano หรือบอร์ดที่ใช้ 3.3 V หากตั้งค่าผิด LED ทุกดวงจะเปลี่ยนสถานะที่แรงดันไฟฟ้าที่ผิด (ในวิดีโอที่ 44:19)
float boardVoltage= 5.0;//for UNO and MEGA 5.0V for Nano either 5V or 3.3V
การแสดงแรงดันไฟฟ้าผ่าน Serial ตั้งค่าเป็น true เพื่อพิมพ์แรงดันไฟฟ้าที่วัดได้ไปยัง Serial Monitor ที่ 9600 baud ซึ่งมีประโยชน์มากในระหว่างการปรับเทียบ ตั้งค่าเป็น false เพื่อปิดเอาต์พุตเมื่อทุกอย่างทำงานได้แล้ว
boolean showVoltage = true;//true or false to read voltage in serial monitor
การแปลงค่าทำงานอย่างไร ตัวแปลงอนาล็อกเป็นดิจิทัลของ Arduino จะคืนค่าตัวเลขตั้งแต่ 0 ถึง 1023 เนื่องจากเป็นตัวแปลง 10 บิต (210 = 1024 ขั้น) โค้ดจะปรับขนาดตัวเลขดิบนั้นให้เป็นแรงดันไฟฟ้าจริงโดยใช้แรงดันไฟฟ้าของบอร์ดเป็นค่าอ้างอิง นี่คือบรรทัดที่ต้องจำไว้หากคุณเปลี่ยนไปใช้บอร์ด 12 บิต เช่น Due ซึ่งคุณจะต้องหารด้วย 4095 แทน
int sensorValue = analogRead(A0);
float voltage = sensorValue * (boardVoltage / 1023.0);
ตรรกะของเกณฑ์ แทนที่จะกำหนดค่าแรงดันไฟฟ้าแบบตายตัว แต่ละขั้นจะแสดงเป็นเปอร์เซ็นต์ของแรงดันไฟฟ้าของบอร์ด ที่ 95% ขึ้นไป LED ทั้งห้าดวงจะติด สูงกว่า 80% จะติดเพียงสี่ดวง และลดหลั่นลงไปจนถึง 20% ซึ่งจะมี LED ติดเพียงดวงเดียว วิธีการใช้เปอร์เซ็นต์นี้เองที่ทำให้สเก็ตช์สามารถใช้ได้ทั้งบอร์ด 5 V และ 3.3 V โดยไม่ต้องเขียนเงื่อนไขเปรียบเทียบใหม่
if (voltage >= boardVoltage*0.95)
{
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED5, HIGH);
}
เนื่องจากโค้ดใช้ else if จึงมีเพียงสาขาเดียวที่ทำงานในแต่ละรอบของลูป ดังนั้นจึงมี LED ติดพร้อมกันในจำนวนที่ถูกต้องเท่านั้น การหน่วง 50 ms ที่ท้ายแต่ละลูปช่วยป้องกันไม่ให้จอแสดงผลกะพริบ
โปรเจกต์สดและการสาธิต
เมื่ออัปโหลดสเก็ตช์แล้ว ให้เปิด Serial Monitor ที่ 9600 baud และหมุนปุ่มช้าๆ แรงดันไฟฟ้าที่พิมพ์และแถบ LED จะเปลี่ยนแปลงสอดคล้องกันอย่างใกล้ชิด ที่ประมาณ 1 V จะมี LED ติดหนึ่งดวง ที่ 2 V จะติดสองดวง และเป็นเช่นนี้ไปเรื่อยๆ จนถึงประมาณ 4.8 V ซึ่งทั้งห้าดวงจะติด (ในวิดีโอที่ 47:37) ค่าที่อ่านได้จะอยู่ในช่วงไม่กี่ร้อยมิลลิโวลต์จากค่าที่คาดไว้ ซึ่งถือว่ายอดเยี่ยมสำหรับตัวแปลง 10 บิต
หากขั้นต่างๆ ดูเหมือนไม่สม่ำเสมอเล็กน้อย มักเกิดจากตัวต้านทานมากกว่าโค้ด บทแนะนำนี้ระบุว่าตัวต้านทานคาร์บอนฟิล์มมาตรฐานมีความคลาดเคลื่อน 10% ในขณะที่แบบโลหะฟิล์มสีน้ำเงินมักอยู่ที่ 1% และให้ขั้นที่แน่นอนและแม่นยำกว่าอย่างเห็นได้ชัด (ในวิดีโอที่ 48:18)
คุณยังสามารถเปลี่ยนโพเทนชิออมิเตอร์แบบหมุนเป็นแบบสไลด์ได้ และจะได้พฤติกรรมเดียวกันพร้อมความรู้สึกแบบเชิงเส้น ซึ่งเป็นตัวเลือกที่ดีหากคุณวางแผนจะติดตั้งมิเตอร์นี้ลงในแผงควบคุม (ในวิดีโอที่ 49:07)
หากคุณต้องการเลื่อนแสงด้วยตนเองแทนการใช้ปุ่มหมุน เรื่องนี้ครอบคลุมอยู่ใน Lesson 98-8: Walking Light with Push Button and LEDs with Arduino และหากคุณเพียงต้องการให้ LED วิ่งตามตัวจับเวลาของตัวเอง ดูได้ที่ Lesson 98-7: Walking Light Using Arduino and 5 LEDs
โปรเจกต์ที่เกี่ยวข้องจากวิดีโอนี้
- Lesson 98-1: How to Turn On and Off an LED with Arduino
- Lesson 98-2: How to Turn On and Off an LED Using a Push Button with Arduino
- Lesson 98-3: How to Turn On/Off a Toggle LED Using a Push Button with Arduino
- Lesson 98-4: Fading an LED Light Using Arduino: Brightness Control
- Lesson 98-5: Fade Light When a Button Is Pressed Using Arduino
- Lesson 98-6: Seesaw LED Game with Arduino
- Lesson 98-7: Walking Light Using Arduino and 5 LEDs
- Lesson 98-8: Walking Light with Push Button and LEDs with Arduino
- Lesson 98-10: Arduino Traffic Light
บทต่างๆ
- [00:00] ภาพรวมของโปรเจกต์ LED 10 แบบ
- [02:29] พื้นฐาน LED สัญลักษณ์ และการคำนวณตัวต้านทาน
- [42:25] บทนำสู่มิเตอร์วัดระดับแรงดันไฟฟ้าด้วย LED
- [43:04] การต่อวงจร LED และโพเทนชิออมิเตอร์
- [43:54] อธิบายโค้ดแถบแสดงแรงดันไฟฟ้า
- [44:19] การตั้งค่าอ้างอิงแรงดันไฟฟ้าของบอร์ด
- [46:00] ตรรกะของเกณฑ์และขั้นแบบเปอร์เซ็นต์
- [47:14] การสาธิต: การอ่านแรงดันไฟฟ้าด้วยแถบ LED
- [48:18] ความคลาดเคลื่อนของตัวต้านทานและความแม่นยำ
- [49:07] การใช้โพเทนชิออมิเตอร์แบบสไลด์
This code has not been parsed yet. Please return to the admin panel to parse it.
สิ่งที่คุณอาจต้องการ
-
อเมซอนSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
อเมซอน
-
อเมซอน
-
อเมซอน
แหล่งข้อมูลและเอกสารอ้างอิง
-
เอกสารDocumentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kitdocs.sunfounder.com
-
ภายนอก
-
ภายนอก
-
ภายนอก
ไฟล์📁
ไลบรารี Arduino (zip)
-
SunFounder's 3-in-1 Smart Car learning kit source code
3in1-kit-main-v2.zip12.80 MB
คู่มือผู้ใช้
-
คู่มือการประกอบรถอัจฉริยะ SunFounder 3-in-1 Arduino Smart Carเอกสารนี้แสดงการประกอบ SunFounder 3-in-1 Arduino Smart Car ทีละขั้นตอน
SunFounder_car_assembly_manual.pdf1.20 MB