- วัสดุที่ต้องการ:
- แผนภูมิวงจรรวม:
- โปรแกรมเครื่องคิดเลข Arduino:
- การจำลองเครื่องคิดเลข Arduino:
- การทำงานของเครื่องคิดเลข Arduino:
การเขียนโปรแกรมเป็นเรื่องสนุกเสมอและ Arduino เป็นแพลตฟอร์มที่ยอดเยี่ยมหากคุณเพิ่งเริ่มต้นกับการเขียนโปรแกรมแบบฝังตัว ในการกวดวิชานี้เราจะสร้างเครื่องคิดเลขของเราเองด้วย Arduino สามารถส่งค่าผ่านปุ่มกด (ปุ่มกด 4 × 4)และสามารถดูผลลัพธ์บนหน้าจอ LCD (16 × 2 Dot-matrix) เครื่องคิดเลขนี้สามารถดำเนินการง่ายๆเช่นการบวกการลบการคูณและการหารด้วยจำนวนเต็ม แต่เมื่อคุณเข้าใจแนวคิดแล้วคุณสามารถใช้ฟังก์ชันทางวิทยาศาสตร์ได้ด้วยฟังก์ชันในตัวของ Arduino
ในตอนท้ายของโปรเจ็กต์นี้คุณจะได้รู้วิธีใช้ LCD 16x2 และปุ่มกดกับ Arduino และยังง่ายแค่ไหนในการเขียนโปรแกรมโดยใช้ไลบรารีที่มี นอกจากนี้คุณยังจะเข้าใจวิธีการตั้งโปรแกรม Arduino ของคุณสำหรับการทำงานบางอย่างให้สำเร็จ
วัสดุที่ต้องการ:
- Arduino Uno (ทุกรุ่นจะใช้งานได้)
- จอ LCD 16 × 2
- ปุ่มกด 4 × 4
- แบตเตอรี่ 9V
- Breadboard และสายเชื่อมต่อ
แผนภูมิวงจรรวม:
แผนภาพวงจรที่สมบูรณ์ของ โครงการเครื่องคิดเลข Arduino นี้ได้รับด้านบน การเชื่อมต่อ + 5V และกราวด์ที่แสดงในแผนภาพวงจรสามารถหาได้จาก 5V และขากราวด์ของ Arduino Arduino เองสามารถใช้พลังงานจากแล็ปท็อปของคุณหรือผ่านแจ็ค DC โดยใช้อะแดปเตอร์ 12V หรือแบตเตอรี่ 9V
เราใช้งาน LCD ในโหมด 4 บิตด้วย Arduino ดังนั้นเพียงสี่บิตข้อมูลสุดท้ายของ LCD เท่านั้นที่เชื่อมต่อกับ Arduino คีย์บอร์ดจะมีพินเอาต์พุต 8 พินซึ่งต้องเชื่อมต่อจากพิน 0 ถึงพิน 7 ดังที่แสดงด้านบน คุณสามารถใช้ตารางการเชื่อมต่อต่อไปนี้เพื่อตรวจสอบการเชื่อมต่อกับ Arduino คุณยังสามารถตรวจสอบ 4x4 Keypad ที่เชื่อมต่อกับ Arduino
ชื่อ Arduino Pin: |
เชื่อมต่อกับ: |
D0 |
1 เซนต์ขาของแป้นพิมพ์ |
D1 |
2 ครั้งที่ขาของแป้นพิมพ์ |
D2 |
3 rd pin ของแป้นพิมพ์ |
D3 |
4 THขาของแป้นพิมพ์ |
D4 |
5 THขาของแป้นพิมพ์ |
D5 |
6 THขาของแป้นพิมพ์ |
D6 |
7 THขาของแป้นพิมพ์ |
D7 |
8 THขาของแป้นพิมพ์ |
D8 |
ลงทะเบียนพินที่เลือกของ LCD (พิน 4) |
D9 |
เปิดใช้งานพินของ LCD (พิน 6) |
D10 |
ข้อมูลพิน 4 (พิน 11) |
D11 |
ข้อมูลพิน 4 (พิน 11) |
D12 |
ข้อมูลพิน 4 (พิน 11) |
D13 |
ข้อมูลพิน 4 (พิน 11) |
+ 5V |
เชื่อมต่อกับขา Vdd ของ LCD (พิน 2) |
พื้น |
เชื่อมต่อกับขา Vss, Vee และ RW ของ LCD (พิน 1,3 และ 5) |
บอร์ด Arduino บางตัวอาจแสดงข้อผิดพลาดขณะอัปโหลดโปรแกรมหากมีสิ่งใดเชื่อมต่อกับพิน 0 และพิน 1 ดังนั้นหากคุณประสบปัญหาใด ๆ เพียงแค่ถอดปุ่มกดออกในขณะที่อัปโหลดโปรแกรม
เมื่อเชื่อมต่อเสร็จแล้วฮาร์ดแวร์ของคุณจะมีลักษณะดังนี้ด้านล่าง
โปรแกรมเครื่องคิดเลข Arduino:
โปรแกรม Arduino สมบูรณ์สำหรับโครงการนี้จะได้รับในตอนท้ายของโครงการนี้ รหัสจะแบ่งออกเป็นส่วนเล็ก ๆ ที่มีความหมายและอธิบายไว้ด้านล่าง
อย่างที่บอกว่าก่อนหน้านี้เราจะไปติดต่อจอแอลซีดีและปุ่มกดกับ Arduino ใช้ห้องสมุดมาเพิ่มใน Arduino IDE ของเราก่อน ไลบรารีสำหรับ LCD รวมอยู่ใน Arduino ของคุณแล้วดังนั้นเราไม่จำเป็นต้องกังวลเกี่ยวกับเรื่องนี้ สำหรับไลบรารีปุ่มกดคลิกที่ลิงค์เพื่อดาวน์โหลดจาก Github คุณจะได้รับไฟล์ ZIP จากนั้นเพิ่ม lib นี้ใน Arduino by Sketch -> รวมไลบรารี -> เพิ่มไฟล์. ZIP และชี้ตำแหน่งไปยังไฟล์ที่ดาวน์โหลดนี้ เมื่อเสร็จแล้วเราก็พร้อมสำหรับการเขียนโปรแกรม
แม้ว่าเราจะใช้ไลบรารีในการใช้ปุ่มกดเราก็ต้องพูดถึงรายละเอียดเล็กน้อย (ดังที่แสดงด้านล่าง) เกี่ยวกับปุ่มกดไปยัง Arduino ตัวแปร ROWS และ COLS จะบอกจำนวนแถวและคอลัมน์ของปุ่มกดของเราและคีย์แมปจะแสดงลำดับที่มีคีย์อยู่บนคีย์บอร์ด ปุ่มกดที่ฉันใช้ในโปรเจ็กต์นี้มีลักษณะดังนี้ด้านล่างของคีย์แมปก็แสดงถึงสิ่งเดียวกันเช่นกัน
ดังต่อไปนี้เราได้กล่าวถึงที่หมุดปุ่มกดมีการเชื่อมต่อโดยใช้ตัวแปรอาร์เรย์ rowPins และcolPins
const byte ROWS = 4; // สี่แถว const byte COLS = 4; // สามคอลัมน์ // กำหนดคีย์แมปคีย์อักขระ = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, { '7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; ไบต์ rowPins = {0, 1, 2, 3}; // เชื่อมต่อแป้นพิมพ์ ROW0, ROW1, ROW2 และ ROW3 กับหมุด Arduino เหล่านี้ ไบต์ colPins = {4, 5, 6, 7}; // เชื่อมต่อปุ่มกด COL0, COL1 และ COL2 กับหมุด Arduino เหล่านี้
เมื่อเราได้กล่าวถึงประเภทของปุ่มกดที่เราใช้และวิธีการเชื่อมต่อเราสามารถสร้างปุ่มกดโดยใช้รายละเอียดเหล่านี้โดยใช้บรรทัดด้านล่าง
ปุ่มกด kpd = ปุ่มกด (makeKeymap (คีย์), rowPins, colPins, ROWS, COLS); // สร้างปุ่มกด
ในทำนองเดียวกันเราต้องบอกด้วยว่าหมุดใดของ Arduino ที่ LCD เชื่อมต่ออยู่ ตามแผนภาพวงจรของเราคำจำกัดความจะเป็นดังนี้
const int rs = 8, th = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; // หมุดที่เชื่อมต่อ LCD LCD LiquidCrystal (rs, en, d4, d5, d6, d7); // สร้าง LCD
ภายในฟังก์ชั่น การตั้งค่า เราเพียงแค่แสดงชื่อของโปรเจ็กต์จากนั้นดำเนินการต่อในขณะที่วนซ้ำที่โปรเจ็กต์หลัก
โดยพื้นฐานแล้วเราต้องตรวจสอบว่ามีการพิมพ์อะไรบนแป้นพิมพ์หรือไม่ถ้าพิมพ์เราต้องรู้ว่ากำลังพิมพ์อะไรแล้วจึงแปลงเป็นตัวแปรเมื่อกด“ =” เราจะต้องคำนวณผลลัพธ์แล้วจึงแสดงในที่สุด บนจอ LCD นี่คือสิ่งที่ทำภายในฟังก์ชัน ลูป ดังที่แสดงด้านล่าง
คีย์ = kpd.getKey (); // จัดเก็บค่าคีย์ที่กดไว้ในถ่าน if (key! = NO_KEY) DetectButtons (); ถ้า (ผลลัพธ์ == จริง) CalculateResult (); DisplayResult ();
สิ่งที่เกิดขึ้นภายในแต่ละฟังก์ชั่นจะอธิบายโดยใช้บรรทัดความคิดเห็นอ่านโค้ดที่สมบูรณ์ด้านล่างนี้เพื่อทำความเข้าใจว่ามันทำงานอย่างไร หากคุณมีข้อสงสัยเกี่ยวกับบรรทัดใดบรรทัดหนึ่งโปรดใช้ส่วนความคิดเห็นหรือฟอรัม
การจำลองเครื่องคิดเลข Arduino:
นอกจากนี้เรายังสามารถลองจำลองโครงการโดยใช้ซอฟต์แวร์ Proteus Proteus ไม่มีส่วนประกอบ Arduino เป็นของตัวเอง แต่สามารถดาวน์โหลดและเพิ่มลงในไลบรารีได้อย่างง่ายดาย เมื่อคุณมีส่วนประกอบ Arduino บน Proteus แล้วเพียงแค่เพิ่ม Alphanumeric LCD และ Keypad เพื่อทำการเชื่อมต่อดังที่แสดงในแผนภาพวงจร
จากนั้นดาวน์โหลดไฟล์ hex จากที่นี่และเพิ่มลงใน Arduino โดยดับเบิลคลิกที่บอร์ดใน Proteus แล้วชี้ "ไฟล์โปรแกรม" ไปที่ไฟล์ hex ที่ดาวน์โหลดมานี้ ภาพสแนปช็อตของการจำลองแสดงอยู่ด้านล่างการทำงานที่สมบูรณ์จะแสดงในวิดีโอด้านล่าง
หมายเหตุ:ไฟล์ฐานสิบหกที่ให้มาไม่เหมือนกับต้นฉบับของโปรแกรมที่ระบุด้านล่าง ได้รับการแก้ไขตั้งแต่คีย์แมปของปุ่มกดจำลองและปุ่มกดฮาร์ดแวร์จริงแตกต่างกัน
การทำงานของเครื่องคิดเลข Arduino:
ทำการเชื่อมต่อตามแผนภาพวงจรและอัปโหลดรหัสด้านล่าง หากแสดงข้อผิดพลาดตรวจสอบให้แน่ใจว่าคุณได้เพิ่มไลบรารีตามคำสั่งที่ระบุข้างต้น คุณยังสามารถลองใช้การจำลองเพื่อตรวจสอบว่าปัญหาเกิดจากฮาร์ดแวร์ของคุณหรือไม่ หากทุกอย่างเสร็จสิ้นตามที่ควรจะเป็นฮาร์ดแวร์ของคุณจะมีลักษณะดังนี้ด้านล่างพร้อมกับ LCD ที่แสดงสิ่งนี้
เนื่องจากปุ่มกดที่ใช้ที่นี่ไม่มีเครื่องหมายที่ถูกต้องฉันจึงถือว่า Alphabets เป็นตัวดำเนินการตามรายการด้านล่าง
ตัวอักษรบนปุ่มกด |
สันนิษฐานว่าเป็น |
“ A” |
เพิ่มเติม (+) |
“ B” |
การลบ (-) |
"ค" |
การคูณ (*) |
“ D” |
แผนก (/) |
“ *” |
ชัดเจน (C) |
“ #” |
เท่ากับ (=) |
คุณสามารถใช้เครื่องหมายเพื่อเขียนว่าแต่ละปุ่มหมายถึงอะไร
เมื่อเสร็จแล้วคุณสามารถเริ่มใช้เครื่องคิดเลขได้โดยตรง พิมพ์ตัวเลขและจะปรากฏในบรรทัดที่สองกดตัวถูกดำเนินการและพิมพ์หมายเลขที่สองของคุณในที่สุดกดปุ่ม“ #” เพื่อรับผลลัพธ์ของคุณ คุณยังสามารถลองสร้างเครื่องคำนวณ Arduino ที่ใช้หน้าจอสัมผัสนี้ได้