สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
สวัสดี เมื่อเร็ว ๆ นี้ฉันได้สำรวจวิธีการใช้โค้ดประเภทต่างๆ ในวงจร ฉันพบว่าการสร้างเครื่องคิดเลขเป็นวิธีที่ดีในการใช้ "เคส" และโค้ดรูปแบบอื่นๆ ที่ฉันพบว่าน่าสนใจ ในอดีต ฉันเคยทำเครื่องคิดเลขจากโค้ดโดยตรง แต่การทำวงจรสำหรับมันทำให้ฉันสนใจ โดยเฉพาะในช่วงกักตัวที่ฉันใช้คอมพิวเตอร์เกือบทั้งวัน โครงการนี้คือการนำการดำเนินการทางคณิตศาสตร์ไปใช้บนหน้าจอ LCD
ขั้นตอนที่ 1: วัสดุ
สำหรับวงจร:
- จอแอลซีดี 16 x 2
- Arduino Uno R3
- ปุ่มกด 4x4
- เขียงหั่นขนมขนาดเล็ก
- โพเทนชิออมิเตอร์ (250 kΩ)
- ตัวต้านทาน (1kΩ)
- x26 สายจัมเปอร์
ขั้นตอนที่ 2: การเชื่อมต่อปุ่มกด 4x4
เชื่อมต่อพิน 4 แถวบนปุ่มกด 4x4 กับพิน Arduino 4-7 และเชื่อมต่อพิน 4 คอลัมน์กับพิน Arduino 0-3
ขั้นตอนที่ 3: มอบพลังงานให้กับ Breadboard และเชื่อมต่อ LCD
ฉันใช้แรงดันไฟฟ้า 5 สำหรับเขียงหั่นขนม ฉันเชื่อมต่อพลังงานและกราวด์กับเขียงหั่นขนม LCD ถูกวางไว้บนเขียงหั่นขนม และวางเพื่อให้หมุดทั้งหมดเชื่อมต่อกับเขียงหั่นขนม
ขั้นตอนที่ 4: เชื่อมต่อพลังงานและกราวด์กับ LCD
จะต้องมีกราวด์ 3 พินเพื่อเชื่อมต่อกับ LCD ตัวหนึ่งจะเชื่อมต่อกับกราวด์ด้วยตัวของมันเองของ LCD อีกตัวหนึ่งจะเชื่อมต่อกับ LED ของ LCD และอันสุดท้ายจะเชื่อมต่อกับ RW VCC ของ LCD และไฟ LED จะต้องมีการเชื่อมต่อพลังงาน อย่างไรก็ตาม พลังงานสำหรับ LED จะต้องใช้ตัวต้านทานต่อในกรณีนี้ ฉันใช้ตัวต้านทาน1kΩ
ขั้นตอนที่ 5: การเชื่อมต่อโพเทนชิออมิเตอร์
เชื่อมต่อโพเทนชิออมิเตอร์กับเขียงหั่นขนมด้วย 3 คอลัมน์ฟรี มันจะมี 3 พิน คอลัมน์ที่มีเทอร์มินัล 1 พินจะต้องกราวด์ให้ คอลัมน์ที่มีขั้ว 2 ขาจะต้องได้รับพลังงาน จากนั้นที่ปัดน้ำฝนจะมีสายจัมเปอร์อยู่ในคอลัมน์ซึ่งเชื่อมต่อกับ VO ของ LCD
ขั้นตอนที่ 6: เชื่อมต่อ Arduino กับ LCD
พิน 8-13 บน Arduino จะเชื่อมต่อกับ LCD พิน 8-11 บน Arduino จะเชื่อมต่อกับ D8 (7-4) ตามลำดับ จากนั้นพิน 12 ของ Arduino จะเชื่อมต่อกับ Enable ของ LCD และพิน 13 บน Arduino จะเชื่อมต่อกับรีจิสเตอร์ของ LCD
ขั้นตอนที่ 7: ใช้รหัส
จำเป็นต้องใช้รหัสเพื่อใช้การดำเนินการทางคณิตศาสตร์กับปุ่มกดและ LCD ต่อไปนี้จะเป็นรหัสที่ฉันใช้ อย่างไรก็ตาม ฉันยังคงสามารถดำเนินการเปลี่ยนแปลงหลายรายการเพื่อให้สะอาดและดีขึ้นได้ ดังนั้นอย่าลังเลที่จะเล่นกับมันเล็กน้อย
#รวม #รวม
LiquidCrystal LCD (13, 12, 11, 10, 9, 8);
ยาวก่อน = 0;
วินาทียาว = 0;
ผลรวมสองเท่า = 0;
ตำแหน่ง int = 0;
ถ่าน customKey;
ไบต์ const ROWS = 4;
const ไบต์ COLS = 4;
ปุ่มถ่าน [ROWS][COLS] = {
{'1', '2', '3', '/'}, {'4', '5', '6', '*'}, {'7', '8', '9', '-'}, {'C', '0', '=', '+'} };
ไบต์ rowPins[ROWS] = {7, 6, 5, 4};
ไบต์ colPins[COLS] = {3, 2, 1, 0};
ปุ่มกด customKeypad = ปุ่มกด (makeKeymap (คีย์), rowPins, colPins, ROWS, COLS);
การตั้งค่าเป็นโมฆะ (){
lcd.begin(16, 2);
lcd.setCursor(5, 0);
lcd.clear(); }
วงเป็นโมฆะ () {
customKey = customKeypad.getKey();
สวิตช์ (customKey) {
กรณี '0' … '9':
lcd.setCursor(0, 0);
แรก = แรก * 10 + (customKey - '0');
lcd.print (ก่อน);
ตำแหน่ง++;
หยุดพัก;
กรณี '+':
แรก = (รวม != 0 ? ทั้งหมด: แรก);
lcd.setCursor(โพซิท, 0);
lcd.print("+");
ตำแหน่ง++;
วินาที = SecondNumber();
รวม = แรก + วินาที;
lcd.setCursor(1, 1);
lcd.print (รวม);
แรก = 0
วินาที = 0;
ตำแหน่ง=0;
หยุดพัก;
กรณี '-':
แรก = (รวม != 0 ? ทั้งหมด: แรก);
lcd.setCursor(โพซิท, 0);
lcd.print("-");
ตำแหน่ง++;
วินาที = SecondNumber();
รวม = แรก - วินาที;
lcd.setCursor(1, 1);
lcd.print (รวม);
แรก = 0, วินาที = 0;
ตำแหน่ง=0;
หยุดพัก;
กรณี '*':
แรก = (รวม != 0 ? ทั้งหมด: แรก);
lcd.setCursor(โพซิท, 0);
lcd.print("*");
ตำแหน่ง++;
วินาที = SecondNumber();
รวม = แรก * วินาที;
lcd.setCursor(1, 1);
lcd.print (รวม);
แรก = 0, วินาที = 0;
ตำแหน่ง=0;
หยุดพัก;
กรณี '/':
แรก = (รวม != 0 ? ทั้งหมด: แรก);
lcd.setCursor(โพซิท, 0);
lcd.print("/");
ตำแหน่ง++;
วินาที = SecondNumber(); lcd.setCursor(1, 1);
วินาที == 0 ? lcd.print("Error"): total = (float)first / (float)วินาที;
lcd.print (รวม);
แรก = 0
วินาที = 0;
ตำแหน่ง=0;
หยุดพัก;
กรณี 'C':
รวม = 0;
แรก = 0;
วินาที = 0;
ตำแหน่ง = 0;
lcd.clear();
หยุดพัก; }
}
SecondNumber ยาว () {
ในขณะที่(1) {
customKey = customKeypad.getKey();
if(customKey >= '0' && customKey <= '9') {
วินาที = วินาที * 10 + (customKey - '0');
lcd.setCursor(โพซิท, 0);
lcd.print(วินาที); }
ถ้า (customKey == 'C') {
รวม = 0;
แรก = 0;
วินาที = 0;
ตำแหน่ง = 0;
lcd.clear();
หยุดพัก; }
ถ้า (customKey == '='){
lcd.setCursor(0, 1);
lcd.print("=");
ตำแหน่ง = รวม;
lcd.clear();
lcd.setCursor(0, 1);
lcd.print("=");
หยุดพัก; }
}
กลับวินาที;}
ขั้นตอนที่ 8: ผลลัพธ์
ฉันหวังว่าคุณทุกคนจะสนุกกับคำแนะนำนี้ ขอบคุณสำหรับการอ่าน!
สายม.