สารบัญ:

การแข่งขันเครื่องคิดเลข TinkerCad: 8 ขั้นตอน
การแข่งขันเครื่องคิดเลข TinkerCad: 8 ขั้นตอน

วีดีโอ: การแข่งขันเครื่องคิดเลข TinkerCad: 8 ขั้นตอน

วีดีโอ: การแข่งขันเครื่องคิดเลข TinkerCad: 8 ขั้นตอน
วีดีโอ: สอน เขียนโปรแกรม Tinkercad+Arduino | Uno R3 สร้างเครื่องคิดเลข KEYPAD #input #output #EP20 2024, พฤศจิกายน
Anonim
เครื่องคิดเลข TinkerCad Contest
เครื่องคิดเลข TinkerCad Contest

สวัสดี เมื่อเร็ว ๆ นี้ฉันได้สำรวจวิธีการใช้โค้ดประเภทต่างๆ ในวงจร ฉันพบว่าการสร้างเครื่องคิดเลขเป็นวิธีที่ดีในการใช้ "เคส" และโค้ดรูปแบบอื่นๆ ที่ฉันพบว่าน่าสนใจ ในอดีต ฉันเคยทำเครื่องคิดเลขจากโค้ดโดยตรง แต่การทำวงจรสำหรับมันทำให้ฉันสนใจ โดยเฉพาะในช่วงกักตัวที่ฉันใช้คอมพิวเตอร์เกือบทั้งวัน โครงการนี้คือการนำการดำเนินการทางคณิตศาสตร์ไปใช้บนหน้าจอ LCD

ขั้นตอนที่ 1: วัสดุ

สำหรับวงจร:

  • จอแอลซีดี 16 x 2
  • Arduino Uno R3
  • ปุ่มกด 4x4
  • เขียงหั่นขนมขนาดเล็ก
  • โพเทนชิออมิเตอร์ (250 kΩ)
  • ตัวต้านทาน (1kΩ)
  • x26 สายจัมเปอร์

ขั้นตอนที่ 2: การเชื่อมต่อปุ่มกด 4x4

การเชื่อมต่อปุ่มกด 4x4
การเชื่อมต่อปุ่มกด 4x4

เชื่อมต่อพิน 4 แถวบนปุ่มกด 4x4 กับพิน Arduino 4-7 และเชื่อมต่อพิน 4 คอลัมน์กับพิน Arduino 0-3

ขั้นตอนที่ 3: มอบพลังงานให้กับ Breadboard และเชื่อมต่อ LCD

ให้พลังงานกับเขียงหั่นขนมและเชื่อมต่อ LCD
ให้พลังงานกับเขียงหั่นขนมและเชื่อมต่อ LCD

ฉันใช้แรงดันไฟฟ้า 5 สำหรับเขียงหั่นขนม ฉันเชื่อมต่อพลังงานและกราวด์กับเขียงหั่นขนม LCD ถูกวางไว้บนเขียงหั่นขนม และวางเพื่อให้หมุดทั้งหมดเชื่อมต่อกับเขียงหั่นขนม

ขั้นตอนที่ 4: เชื่อมต่อพลังงานและกราวด์กับ LCD

เชื่อมต่อสายไฟและกราวด์กับ LCD
เชื่อมต่อสายไฟและกราวด์กับ LCD

จะต้องมีกราวด์ 3 พินเพื่อเชื่อมต่อกับ LCD ตัวหนึ่งจะเชื่อมต่อกับกราวด์ด้วยตัวของมันเองของ LCD อีกตัวหนึ่งจะเชื่อมต่อกับ LED ของ LCD และอันสุดท้ายจะเชื่อมต่อกับ RW VCC ของ LCD และไฟ LED จะต้องมีการเชื่อมต่อพลังงาน อย่างไรก็ตาม พลังงานสำหรับ LED จะต้องใช้ตัวต้านทานต่อในกรณีนี้ ฉันใช้ตัวต้านทาน1kΩ

ขั้นตอนที่ 5: การเชื่อมต่อโพเทนชิออมิเตอร์

การเชื่อมต่อโพเทนชิออมิเตอร์
การเชื่อมต่อโพเทนชิออมิเตอร์

เชื่อมต่อโพเทนชิออมิเตอร์กับเขียงหั่นขนมด้วย 3 คอลัมน์ฟรี มันจะมี 3 พิน คอลัมน์ที่มีเทอร์มินัล 1 พินจะต้องกราวด์ให้ คอลัมน์ที่มีขั้ว 2 ขาจะต้องได้รับพลังงาน จากนั้นที่ปัดน้ำฝนจะมีสายจัมเปอร์อยู่ในคอลัมน์ซึ่งเชื่อมต่อกับ VO ของ LCD

ขั้นตอนที่ 6: เชื่อมต่อ Arduino กับ LCD

การเชื่อมต่อ Arduino กับ LCD
การเชื่อมต่อ 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: ผลลัพธ์

ผลลัพธ์
ผลลัพธ์
ผลลัพธ์
ผลลัพธ์

ฉันหวังว่าคุณทุกคนจะสนุกกับคำแนะนำนี้ ขอบคุณสำหรับการอ่าน!

สายม.

แนะนำ: