- ส่วนประกอบที่ต้องการ:
- แผนภูมิวงจรรวม:
- Arduino Uno:
- 16x2 LCD:
- แนวคิดของรหัสสีต้านทาน:
- การคำนวณความต้านทานโดยใช้ Arduino Ohm Meter:
- คำอธิบายรหัส:
เราพบว่ามันยากที่จะอ่านรหัสสีบนตัวต้านทานเพื่อหาความต้านทาน เพื่อที่จะเอาชนะความยากลำบากในการหาค่าความต้านทานที่เราจะไปสร้างที่เรียบง่ายของโอห์มเมตรใช้ Arduino หลักการพื้นฐานเบื้องหลังโปรเจ็กต์นี้คือ Voltage Divider Network ค่าของความต้านทานที่ไม่รู้จักจะแสดงบนจอ LCD 16 * 2 โครงการนี้ยังทำหน้าที่เป็นจอแสดงผล LCD 16 * 2 ที่เชื่อมต่อกับ Arduino
ส่วนประกอบที่ต้องการ:
- Arduino Uno
- จอ LCD 16 * 2
- โพเทนชิออมิเตอร์ (1 กิโลโอห์ม)
- ตัวต้านทาน
- เขียงหั่นขนม
- สายจัมเปอร์
แผนภูมิวงจรรวม:
Arduino Uno:
Arduino Uno เป็นบอร์ดไมโครคอนโทรลเลอร์โอเพนซอร์สที่ใช้ไมโครคอนโทรลเลอร์ ATmega328p มีพินดิจิตอล 14 พิน (ซึ่ง 6 พินสามารถใช้เป็นเอาต์พุต PWM ได้) อินพุตอะนาล็อก 6 ตัวควบคุมแรงดันไฟฟ้าบนบอร์ดเป็นต้น Arduino Uno มีหน่วยความจำแฟลช 32KB SRAM 2KB และ EEPROM 1KB ทำงานที่ความถี่สัญญาณนาฬิกา 16MHz Arduino Uno รองรับการสื่อสาร Serial, I2C, SPI สำหรับการสื่อสารกับอุปกรณ์อื่น ๆ ตารางด้านล่างแสดงข้อกำหนดทางเทคนิคของ Arduino Uno
ไมโครคอนโทรลเลอร์ | ATmega328p |
แรงดันไฟฟ้าที่ใช้งาน | 5V |
แรงดันไฟฟ้าขาเข้า | 7-12V (แนะนำ) |
พิน I / O ดิจิทัล | 14 |
หมุดอะนาล็อก | 6 |
หน่วยความจำแฟลช | 32KB |
SRAM | 2KB |
EEPROM | 1KB |
ความเร็วนาฬิกา |
16MHz |
16x2 LCD:
16 * 2 LCD เป็นจอแสดงผลที่ใช้กันอย่างแพร่หลายสำหรับแอพพลิเคชั่นฝังตัว นี่คือคำอธิบายสั้น ๆ เกี่ยวกับพินและการทำงานของจอ LCD 16 * 2 มีการลงทะเบียนที่สำคัญมากสองรายการภายในจอ LCD เป็นทะเบียนข้อมูลและลงทะเบียนคำสั่ง ลงทะเบียนคำสั่งใช้ในการส่งคำสั่งเช่นการแสดงผลที่ชัดเจนเคอร์เซอร์ที่บ้านเป็นต้นการลงทะเบียนข้อมูลใช้ในการส่งข้อมูลซึ่งจะแสดงบนจอ LCD 16 * 2 ตารางด้านล่างแสดงคำอธิบายพินของจอ LCD 16 * 2
พิน |
สัญลักษณ์ |
I / O |
คำอธิบาย |
1 |
Vss |
- |
พื้น |
2 |
Vdd |
- |
+ แหล่งจ่ายไฟ 5V |
3 |
วี |
- |
แหล่งจ่ายไฟเพื่อควบคุมความคมชัด |
4 |
อาร์เอส |
ผม |
RS = 0 สำหรับการลงทะเบียนคำสั่ง RS = 1 สำหรับการลงทะเบียนข้อมูล |
5 |
RW |
ผม |
R / W = 0 สำหรับเขียน R / W = 1 สำหรับการอ่าน |
6 |
จ |
I / O |
เปิดใช้งาน |
7 |
D0 |
I / O |
บัสข้อมูล 8 บิต (LSB) |
8 |
D1 |
I / O |
บัสข้อมูล 8 บิต |
9 |
D2 |
I / O |
บัสข้อมูล 8 บิต |
10 |
D3 |
I / O |
บัสข้อมูล 8 บิต |
11 |
D4 |
I / O |
บัสข้อมูล 8 บิต |
12 |
D5 |
I / O |
บัสข้อมูล 8 บิต |
13 |
D6 |
I / O |
บัสข้อมูล 8 บิต |
14 |
D7 |
I / O |
บัสข้อมูล 8 บิต (MSB) |
15 |
ก |
- |
+ 5V สำหรับแบ็คไลท์ |
16 |
เค |
- |
พื้น |
แนวคิดของรหัสสีต้านทาน:
ในการระบุค่าของความต้านทานเราสามารถใช้สูตรด้านล่าง
R = {(AB * 10 c) Ω± T%}
ที่ไหน
A = ค่าของสีในแถบแรก
B = ค่าของสีในแถบที่สอง
C = ค่าของสีในแถบที่สาม
T = ค่าของสีในแถบที่สี่
ตารางด้านล่างแสดงรหัสสีของตัวต้านทาน
สี |
ค่าตัวเลขของสี |
ตัวคูณการคูณ (10 c) |
ค่าความอดทน (T) |
ดำ |
0 |
10 0 |
- |
สีน้ำตาล |
1 |
10 1 |
± 1% |
แดง |
2 |
10 2 |
± 2% |
ส้ม |
3 |
10 3 |
- |
สีเหลือง |
4 |
10 4 |
- |
เขียว |
5 |
10 5 |
- |
สีน้ำเงิน |
6 |
10 6 |
- |
ไวโอเล็ต |
7 |
10 7 |
- |
สีเทา |
8 |
10 8 |
- |
สีขาว |
9 |
10 9 |
- |
ทอง |
- |
10 -1 |
± 5% |
เงิน |
- |
10 -2 |
± 10% |
ไม่มีวงดนตรี |
- |
- |
± 20% |
ตัวอย่างเช่นหากรหัสสีเป็นสีน้ำตาล - เขียว - แดง - เงินค่าความต้านทานจะคำนวณเป็น
น้ำตาล = 1 เขียว = 5 แดง = 2 เงิน = ± 10%
จากสามวงแรก R = AB * 10 c
R = 15 * 10 +2 R = 1500 Ω
แถบที่สี่แสดงถึงความอดทน± 10%
10% ของ 1500 = 150 สำหรับ + 10 เปอร์เซ็นต์ค่าคือ 1500 + 150 = 1650Ωสำหรับ - 10 เปอร์เซ็นต์ค่าคือ 1500 -150 = 1350Ω
ดังนั้นค่าความต้านทานที่แท้จริงสามารถอยู่ระหว่าง1350Ωถึง1650Ω
เพื่อให้สะดวกยิ่งขึ้นที่นี่คือเครื่องคิดเลขรหัสสีต้านทานที่คุณต้องป้อนสีของวงแหวนบนตัวต้านทานและคุณจะได้รับค่าความต้านทาน
การคำนวณความต้านทานโดยใช้ Arduino Ohm Meter:
การทำงานของเครื่องวัดความต้านทานนี้ง่ายมากและสามารถอธิบายได้โดยใช้เครือข่ายตัวแบ่งแรงดันไฟฟ้าที่แสดงด้านล่าง
จากเครือข่ายตัวแบ่งแรงดันไฟฟ้าของตัวต้านทาน R1 และ R2
Vout = Vin * R2 / (R1 + R2)
จากสมการข้างต้นเราสามารถอนุมานค่า R2 เป็น
R2 = Vout * R1 / (วิน - Vout)
โดยที่ R1 = ความต้านทานที่ทราบ
R2 = ความต้านทานที่ไม่รู้จัก
Vin = แรงดันไฟฟ้าที่ผลิตที่ขา 5V ของ Arduino
Vout = แรงดันไฟฟ้าที่ R2 เทียบกับกราวด์
หมายเหตุ:ค่าของความต้านทานที่ทราบ (R1) ที่เลือกคือ3.3KΩ แต่ผู้ใช้ควรแทนที่ด้วยค่าความต้านทานของตัวต้านทานที่พวกเขาเลือก
ดังนั้นหากเราได้ค่าของแรงดันไฟฟ้าข้ามความต้านทานที่ไม่รู้จัก (Vout) เราสามารถคำนวณความต้านทานที่ไม่รู้จัก R2 ได้อย่างง่ายดาย ที่นี่เราได้อ่านค่าแรงดัน Vout โดยใช้พินอะนาล็อก A0 (ดูแผนภาพวงจร) และแปลงค่าดิจิตอลเหล่านั้น (0 -1023) เป็นแรงดันไฟฟ้าตามที่อธิบายไว้ในโค้ดด้านล่าง
หากค่าของความต้านทานที่ทราบนั้นมากกว่าหรือน้อยกว่าความต้านทานที่ไม่รู้จักมากความผิดพลาดก็จะมากขึ้น ดังนั้นจึงขอแนะนำให้รักษาค่าความต้านทานที่ทราบไว้ใกล้กับความต้านทานที่ไม่รู้จัก
คำอธิบายรหัส:
โปรแกรม Arduino สมบูรณ์และวิดีโอสาธิตสำหรับโครงการนี้จะได้รับในตอนท้ายของโครงการนี้ รหัสจะแบ่งออกเป็นส่วนเล็ก ๆ ที่มีความหมายและอธิบายไว้ด้านล่าง
ในส่วนนี้ของรหัสเราจะกำหนดพินที่จอ LCD 16 * 2 เชื่อมต่อกับ Arduino ขา RS ของจอ LCD 16 * 2 เชื่อมต่อกับพินดิจิตอล 2 ของ arduino เปิดใช้งาน พินของจอ LCD 16 * 2 เชื่อมต่อกับพินดิจิตอล 3 ของ Arduino หมุดข้อมูล (D4-D7) ของจอ LCD 16 * 2 เชื่อมต่อกับพินดิจิทัล 4,5,6,7 ของ Arduino
LiquidCrystal lcd (2,3,4,5,6,7); // rs, e, d4, d5, d6, d7
ในส่วนนี้ของโค้ดเรากำลังกำหนดตัวแปรบางตัวที่ใช้ในโปรแกรม Vin คือแรงดันไฟฟ้าจากขา 5V ของ arduino Vout คือแรงดันไฟฟ้าที่ตัวต้านทาน R2 เทียบกับกราวด์
R1 คือค่าของความต้านทานที่ทราบ R2 คือค่าของความต้านทานที่ไม่รู้จัก
int Vin = 5; // แรงดันที่ขา 5V ของ arduino float Vout = 0; // แรงดันไฟฟ้าที่ขา A0 ของ arduino float R1 = 3300; // ค่าของความต้านทานที่ทราบลอย R2 = 0; // ค่าความต้านทานที่ไม่รู้จัก
ในส่วนของรหัสนี้เรากำลังจะเริ่มต้นการแสดงผล 16 * 2 จอแอลซีดี คำสั่งจะถูกกำหนดให้กับจอ LCD 16 * 2 สำหรับการตั้งค่าต่างๆเช่นหน้าจอที่ชัดเจนการแสดงเคอร์เซอร์กระพริบ
lcd.begin (16,2);
ในส่วนนี้ของรหัสแรงดันอนาล็อกที่ตัวต้านทาน R2 (ขา A0) จะถูกแปลงเป็นค่าดิจิทัล (0 ถึง 1023) และเก็บไว้ในตัวแปร
a2d_data = analogRead (A0);
ในส่วนนี้ของรหัสค่าดิจิทัล (0 ถึง 1023) จะถูกแปลงเป็นแรงดันไฟฟ้าสำหรับการคำนวณเพิ่มเติม
บัฟเฟอร์ = a2d_data * Vin; Vout = (บัฟเฟอร์) /1024.0;
Arduino Uno ADC เป็นความละเอียด 10 บิต (ดังนั้นค่าจำนวนเต็ม 0-2 ^ 10 = 1024 ค่า) ซึ่งหมายความว่ามันจะจับคู่แรงดันไฟฟ้าอินพุตระหว่าง 0 ถึง 5 โวลต์เป็นค่าจำนวนเต็มระหว่าง 0 ถึง 1023 ดังนั้นหากเราคูณอินพุต anlogValue เป็น (5/1024) เราจะได้ค่าดิจิตอลของแรงดันอินพุต เรียนรู้วิธีใช้อินพุต ADC ใน Arduino ที่นี่
ในส่วนนี้ของรหัสนี้ค่าที่แท้จริงของความต้านทานที่ไม่รู้จักจะคำนวณโดยใช้ขั้นตอนตามที่อธิบายไว้ข้างต้น
บัฟเฟอร์ = Vout / (Vin-Vout); R2 = R1 * บัฟเฟอร์;
ในส่วนของรหัสนี้ค่าของความต้านทานที่ไม่รู้จักที่จะถูกพิมพ์เมื่อวันที่ 16 * 2 จอแอลซีดีจอแสดงผล
lcd.setCursor (4,0); lcd.print ("โอห์มเมตร"); lcd.setCursor (0,1); lcd.print ("R (โอห์ม) ="); lcd.print (R2);
นี่คือเราสามารถคำนวณความต้านทานของตัวต้านทานที่ไม่รู้จักโดยใช้ Arduino ได้อย่างง่ายดาย ตรวจสอบด้วย:
- เครื่องวัดความถี่ Arduino
- Arduino Capacitance Meter