สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
สำหรับวิศวกรรมคอมพิวเตอร์เกรด 11 ฉันต้องตัดสินใจเกี่ยวกับโครงการสุดท้าย ตอนแรกฉันไม่รู้ว่าต้องทำอะไรเพราะต้องมีส่วนประกอบฮาร์ดแวร์บางอย่างรวมอยู่ด้วย ผ่านไปสองสามวัน เพื่อนร่วมชั้นบอกให้ฉันทำโปรเจ็กต์โดยใช้แอดเดอร์สี่บิตที่เราสร้างขึ้นเมื่อไม่กี่เดือนก่อน หลังจากวันนั้น โดยใช้แอดเดอร์สี่บิตของฉัน ฉันสามารถสร้างตัวแปลงไบนารีเป็นทศนิยมได้
การสร้างโปรเจ็กต์นี้ต้องใช้การวิจัยจำนวนมาก ซึ่งรวมถึงความเข้าใจเป็นหลักว่า Adder เต็มรูปแบบและครึ่งหนึ่งทำงานอย่างไร
ขั้นตอนที่ 1: วัสดุที่จำเป็น
สำหรับโครงการนี้ คุณจะต้องมีเอกสารดังต่อไปนี้:
- Arduino UNO
- สี่เขียงหั่นขนม
- แบตเตอรี่เก้าโวลต์
- เจ็ดประตู XOR (2 ชิป XOR)
- เจ็ดและประตู (2 และชิป)
- สาม OR เกท (ชิป 1 OR)
- ไฟ LED ห้าดวง
- ตัวต้านทาน 330 โอห์มแปดตัว
- จอ LCD
- สี่สายชาย-หญิง
- สายชาย-ชายจำนวนมาก
- เครื่องปอกสายไฟ
- แอโนด RGB LED ทั่วไป
ราคา (ไม่รวมสายไฟ): $79.82
ต้นทุนวัสดุทั้งหมดพบได้ในอุปกรณ์อิเล็กทรอนิกส์ของ ABRA
ขั้นตอนที่ 2: ทำความเข้าใจ Adder 4 บิต
ก่อนที่เราจะเริ่มต้น คุณต้องเข้าใจวิธีการทำงานของแอดเดอร์สี่บิตก่อน เมื่อเราดูวงจรนี้ครั้งแรก คุณจะสังเกตเห็นว่ามีวงจรบวกครึ่งและวงจรบวกเต็มสามวงจร เนื่องจากแอดเดอร์สี่บิตเป็นการรวมกันของแอดเดอร์แบบเต็มและครึ่ง ฉันได้โพสต์วิดีโอที่อธิบายวิธีการทำงานของแอดเดอร์ทั้งสองประเภท
www.youtube.com/watch?v=mZ9VWA4cTbE&t=619s
ขั้นตอนที่ 3: สร้าง Adder 4 บิต
การอธิบายวิธีสร้างแอดเดอร์แบบสี่บิตนั้นยากมาก เนื่องจากต้องใช้การเดินสายจำนวนมาก จากภาพเหล่านี้ ฉันสามารถให้เทคนิคบางอย่างแก่คุณเพื่อสร้างวงจรนี้ ประการแรก วิธีที่คุณจัดเรียงชิปลอจิกนั้นสำคัญมาก เพื่อให้ได้วงจรที่เรียบร้อย ให้สั่งชิปของคุณตามลำดับนี้: XOR, AND, OR, AND, XOR การมีลำดับนี้ ไม่เพียงแต่วงจรของคุณจะเรียบร้อย แต่ยังง่ายต่อการจัดระเบียบอีกด้วย
เคล็ดลับที่ยอดเยี่ยมอีกประการหนึ่งคือการสร้างแอดเดอร์ทีละตัวและจากด้านขวาไปด้านซ้าย ข้อผิดพลาดทั่วไปที่หลายคนทำคือทำ adders ทั้งหมดพร้อมกัน การทำเช่นนี้อาจทำให้สายไฟเลอะได้ ข้อผิดพลาดหนึ่งครั้งในตัวบวก 4 บิตอาจทำให้สิ่งทั้งหมดไม่ทำงาน
ขั้นตอนที่ 4: จัดหาพลังงานและกราวด์ให้กับวงจร
ใช้แบตเตอรี่ขนาด 9 โวลต์ จ่ายไฟและกราวด์ให้กับเขียงหั่นขนมซึ่งจะมีแอดเดอร์สี่บิต สำหรับเขียงหั่นขนม 3 ตัวที่เหลือ ให้จ่ายไฟและกราวด์ผ่าน Arduino UNO
ขั้นตอนที่ 5: การเดินสายไฟ LED
สำหรับโครงการนี้ ไฟ LED ห้าดวงจะใช้เป็นอุปกรณ์อินพุตและเอาต์พุต ในฐานะอุปกรณ์ส่งออก ไฟ LED จะส่องสว่างเลขฐานสอง ขึ้นอยู่กับอินพุตที่ใส่ลงในตัวบวกสี่บิต เป็นอุปกรณ์อินพุต ขึ้นอยู่กับว่าไฟ LED ใดเปิดและปิด เราจะสามารถฉายเลขฐานสองที่แปลงแล้วบนจอ LCD เป็นเลขฐานสิบ ในการต่อ LED คุณจะต้องเชื่อมต่อหนึ่งในผลรวมที่เกิดจากตัวบวกสี่บิตกับขาแอโนดของ LED (ขายาวของ LED) อย่างไรก็ตาม ให้วางตัวต้านทาน 330 โอห์มระหว่างสองตัวนี้ จากนั้นต่อขาแคโทดของ LED (ขาสั้นของ LED) เข้ากับรางกราวด์ ระหว่างตัวต้านทานและสายรวม ให้ต่อสายตัวผู้กับตัวผู้เข้ากับพินดิจิตอลใดๆ บน Arduino UNO ทำซ้ำขั้นตอนนี้สำหรับผลรวมสามส่วนที่เหลือและการดำเนินการ หมุดดิจิทัลที่ฉันใช้คือ 2, 3, 4, 5 และ 6
ขั้นตอนที่ 6: การเดินสายไฟ LED RGB ขั้วบวกทั่วไป
สำหรับโครงการนี้ จุดประสงค์ของ RGB LED นี้คือการเปลี่ยนสีทุกครั้งที่มีการสร้างตัวเลขทศนิยมใหม่บนจอ LCD เมื่อคุณดูที่ไฟ LED RGB ขั้วบวกทั่วไป คุณจะสังเกตเห็นว่ามี 4 ขา; ขาไฟแดง ขาไฟ (ขั้วบวก) ขาไฟเขียว ขาไฟสีฟ้า ขาจ่ายไฟ (แอโนด) จะต่อกับรางจ่ายไฟรับไฟ 5 โวลต์ เชื่อมต่อขาสามสีที่เหลือด้วยตัวต้านทาน 330 โอห์ม ที่ปลายอีกด้านของตัวต้านทาน ให้ใช้สายตัวผู้กับตัวผู้เพื่อเชื่อมต่อกับพิน PWM dgital บน Arduino พินดิจิตอล PWM คือพินดิจิตอลใดๆ ที่มีเส้นขยุกขยิกอยู่ข้างๆ พิน PWM ที่ฉันใช้คือ 9, 10 และ 11
ขั้นตอนที่ 7: การเดินสายไฟจอ LCD
สำหรับโครงการนี้ จอ LCD จะฉายเลขฐานสองที่แปลงแล้วเป็นทศนิยม เมื่อเราดูที่จอ LCD คุณจะสังเกตเห็นหมุดตัวผู้ 4 ตัว พินเหล่านั้นคือ VCC, GND, SDA และ SCL สำหรับ VCC ให้ใช้สายตัวผู้กับตัวเมียเพื่อเชื่อมต่อพิน VCC กับรางจ่ายไฟบนเขียงหั่นขนม สิ่งนี้จะให้พิน VCC 5 โวลต์ สำหรับพิน GND ให้เชื่อมต่อเข้ากับรางกราวด์ด้วยสายตัวผู้กับตัวเมีย ด้วยหมุด SDA และ SCL ให้เชื่อมต่อเข้ากับพินแบบอะนาล็อกด้วยสายตัวผู้ถึงตัวเมีย ฉันเชื่อมต่อพิน SCL กับพินอะนาล็อก A5 และพิน SDA กับพินอะนาล็อก A4
ขั้นตอนที่ 8: การเขียนโค้ด
ฉันได้อธิบายส่วนการสร้างของโปรเจ็กต์นี้แล้ว มาเริ่มโค้ดกันเลย ประการแรก เราต้องดาวน์โหลดและนำเข้าไลบรารีต่อไปนี้ก่อน ไลบรารี LiquidCrystal_I2C และไลบรารีสาย
#รวม #รวม
เมื่อคุณทำสิ่งนี้เสร็จแล้ว คุณต้องประกาศตัวแปรที่จำเป็นทั้งหมด ในโค้ดประเภทใดก็ตาม คุณต้องประกาศตัวแปรของคุณก่อน
const int ตัวเลข 1 = 2;
const int digit2 = 3;
const int digit3 = 4;
const int digit4 = 5;
const int ตัวเลข 5 = 6;
int digitsum1 = 0;
int digitsum2 = 0;
int digitsum3 = 0;
int digitsum4 = 0;
int digitsum5 = 0;
char array1="ไบนารีเป็นทศนิยม";
ถ่าน array2="แปลง";
int tim = 500; //ค่าของเวลาหน่วง
const int redPin = 9;
const int greenPin = 10;
const int bluePin = 11;
#define COMMON_ANODE
LiquidCrystal_I2C จอแอลซีดี (0x27, 16, 2);
ในการตั้งค่าเป็นโมฆะ () คุณประกาศประเภทพินสำหรับตัวแปรทั้งหมดของคุณ คุณจะใช้การเริ่มต้นแบบอนุกรมเพราะเรากำลังใช้ analogWrite()
การตั้งค่าเป็นโมฆะ ()
{
Serial.begin(9600);
โหมดพิน (หลัก 1, อินพุต);
pinMode (ตัวเลข 2, INPUT);
pinMode (ตัวเลข 3, INPUT);
pinMode (ตัวเลข 4, INPUT);
pinMode (ตัวเลข 5, INPUT);
lcd.init();
LCD.backlight();
โหมดพิน (redPin, เอาต์พุต);
โหมดพิน (กรีนพิน, เอาต์พุต);
โหมดพิน (บลูพิน, เอาต์พุต);
ใน void setup() ฉันสร้าง for loop เพื่อสร้างข้อความที่บอกชื่อโปรเจ็กต์นี้ สาเหตุที่ไม่อยู่ใน void loop() คือถ้าอยู่ใน void นั้น ข้อความจะวนซ้ำไปเรื่อยๆ
lcd.setCursor(15, 0); // ตั้งค่าเคอร์เซอร์ไปที่คอลัมน์ 15, บรรทัด 0
สำหรับ (int positionCounter1 = 0; positionCounter1 <17; positionCounter1++)
{
lcd.scrollDisplayLeft(); //เลื่อนเนื้อหาของหน้าจอไปทางซ้ายหนึ่งช่อง
lcd.print(array1[positionCounter1]); // พิมพ์ข้อความไปยัง LCD
ล่าช้า(ทิม); //รอ 250 ไมโครวินาที
}
lcd.clear(); //ล้างหน้าจอ LCD และจัดตำแหน่งเคอร์เซอร์ที่มุมซ้ายบน
lcd.setCursor(15, 1); // กำหนดเคอร์เซอร์ไปที่คอลัมน์ 15, บรรทัดที่ 1
สำหรับ (int positionCounter = 0; positionCounter <9; positionCounter++)
{
lcd.scrollDisplayLeft(); //เลื่อนเนื้อหาของหน้าจอไปทางซ้ายหนึ่งช่อง
lcd.print(array2[positionCounter]);// พิมพ์ข้อความไปยัง LCD
หน่วงเวลา(tim);//รอ 250 ไมโครวินาที
}
lcd.clear(); //ล้างหน้าจอ LCD และจัดตำแหน่งเคอร์เซอร์ที่มุมซ้ายบน
}
ตอนนี้เราเสร็จสิ้นการตั้งค่า void () แล้ว มาที่ void loop() กัน ใน void loop ฉันได้สร้างคำสั่ง if-else ขึ้นเพื่อให้แน่ใจว่าเมื่อไฟเปิดหรือปิด ไฟจะแสดงตัวเลขทศนิยมบนจอแสดงผล ฉันได้แนบเอกสารที่แสดงว่ามีอะไรอยู่ภายใน void loop ของฉันและ voids อื่นๆ อีกมากมายที่ฉันสร้างขึ้น คลิกที่นี่เพื่อเยี่ยมชมเอกสาร
ตอนนี้สิ่งที่คุณต้องทำคือเรียกใช้โค้ดและสนุกกับตัวแปลงไบนารีเป็นทศนิยมใหม่