สารบัญ:
- ขั้นตอนที่ 1: ไดอะแกรมกล่องดำ
- ขั้นตอนที่ 2: นาฬิกาช้า
- ขั้นตอนที่ 3: เคาน์เตอร์
- ขั้นตอนที่ 4: เคาน์เตอร์ชั่วโมง
- ขั้นตอนที่ 5: ปลุก
- ขั้นตอนที่ 6: Universal Seven Segment Display Driver
- ขั้นตอนที่ 7: ลิงก์ไฟล์
- ขั้นตอนที่ 8: Arduino
- ขั้นตอนที่ 9: การกำหนดเส้นทางเคเบิล
วีดีโอ: นาฬิกาปลุกเบสิก 3: 9 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:05
โครงการของเราสร้างนาฬิกาปลุกโดยใช้บอร์ด Basy 3 FPGA, Arduino และบอร์ดไดรเวอร์ลำโพง ผู้ใช้สามารถป้อนเวลาปัจจุบันไปยังบอร์ดได้โดยใช้สวิตช์อินพุต 11 ตัวบน Basy 3 และล็อคค่าโดยใช้ปุ่มตรงกลางบนบอร์ด จากนั้นผู้ใช้สามารถป้อนเวลาปลุกโดยใช้สวิตช์เดียวกัน แต่กดปุ่มซ้ายเพื่อล็อคเวลาปลุก หากป้อนเวลาผิด สามารถกดปุ่มรีเซ็ต (ปุ่มบนสุด) ได้ และตั้งเวลานาฬิกาปัจจุบันและเวลาปลุกเป็น 00:00 น. จากนั้นผู้ใช้สามารถเริ่มนาฬิกาโดยใช้สวิตช์ด้านซ้ายสุดและเปิดนาฬิกาปลุกโดยใช้สวิตช์ถัดไป เมื่อเปิดนาฬิกาปลุก นาฬิกาปลุกจะส่งเสียงเมื่อเวลานาฬิกาและตั้งเวลาปลุกตรงกัน
ขั้นตอนที่ 1: ไดอะแกรมกล่องดำ
เราเริ่มโครงการของเราด้วยการวาดไดอะแกรมกล่องดำเพื่อแสดงภาพอินพุตและเอาต์พุตที่จำเป็นในโปรแกรมของเรา อินพุตต่อไปนี้สำหรับโปรแกรมของเรา เช่น อินพุต 5 บิต (Hour_in) ถูกกำหนดค่าเริ่มต้นเพื่อระบุเวลา 24 ชั่วโมง, อินพุต 6 บิต (Min_in) เพื่อแสดงสูงสุด 60 นาที ปุ่มรีเซ็ต (Rst_b) เพื่อให้ผู้ใช้ เปลี่ยนอินพุตเวลา, อินพุต 1 บิต (alm_en) ซึ่งโหลดอินพุตสัญญาณเตือน, อินพุต 1 บิต (alarm_sw) เพื่อปิดนาฬิกาปลุกเมื่อเปิดใช้งาน, อินพุต 1 บิต (e_sec) ที่ควบคุมเมื่อตัวนับ วินาทีจะทำงาน อินพุต 1 บิต (Led_btn) ที่ตั้งเวลาปัจจุบัน และสุดท้ายคืออินพุต 1 บิต (clk) ที่ควบคุมเวลาที่แสดงโดยบอร์ด Basy 3 เอาต์พุตคือ (alm_on) ซึ่งส่งสัญญาณไปยัง Arduino เอาต์พุต sseg ที่แสดงเวลาอินพุตบน Basys 3 และเอาต์พุตแอโนดที่ควบคุมตำแหน่งที่อินพุตจะแสดงบนจอแสดงผลทั้งเจ็ดส่วน
ขั้นตอนที่ 2: นาฬิกาช้า
ไฟล์นาฬิกาช้าหรือ clock_div2 สร้างนาฬิกาที่มีความถี่ 2 hz ถ้าเราป้อนนาฬิกานี้ไปยังตัวนับวินาที ค่าวินาทีจะเพิ่มขึ้นหนึ่งวินาที นาฬิกาช้าใช้เพื่อสร้างสัญญาณนาฬิกาที่เชื่อถือได้ซึ่งเปลี่ยนจากต่ำไปสูงหนึ่งครั้งต่อวินาที
ขั้นตอนที่ 3: เคาน์เตอร์
ตัวนับส่วนประกอบ (นาทีและวินาที):
ฟังก์ชันพื้นฐานของนาทีและวินาทีคือตัวนับ ตัวนับนาทีรับอินพุต (Vin) ซึ่งเป็นสัญญาณจากอินพุต (Min_in) แล้วนับจนกว่าจะถึงอินพุตที่ต้องการ วินาทีใช้เฉพาะอินพุตของสวิตช์ (e_Sec) เนื่องจากไม่สามารถแสดงในเจ็ดส่วนได้ และจะนับในพื้นหลังเมื่อสวิตช์สูง '1' พวกเขาทั้งคู่ส่งออกค่าไปที่ (Qout) จากนั้นจะถูกเก็บไว้ใน (ข้อมูล) ที่ส่งไปยัง SSEG ซึ่งทำในไฟล์เชื่อมโยง นอกจากนี้ เมื่อนาทีและวินาทีถึงค่า 59 จะรีเซ็ต และผลลัพธ์คือ '1' เพื่อเพิ่มนาที/ชั่วโมง นอกจากนี้ยังสามารถแมปด้วยการรีเซ็ต (rst_b) กับอินพุตของพวกเขา
ขั้นตอนที่ 4: เคาน์เตอร์ชั่วโมง
ส่วนประกอบเคาน์เตอร์ชั่วโมง
ในทำนองเดียวกัน กับตัวนับองค์ประกอบของนาทีและวินาทีที่ส่วนประกอบชั่วโมงรับอินพุต เช่น (Vin) ซึ่งเป็นสัญญาณจากการเชื่อมโยงอินพุตไฟล์ (Hour_in) และมีเอาต์พุตที่เชื่อมโยงในลักษณะเดียวกับนาทีและวินาที เมื่อค่าการนับชั่วโมงถึง 24 00 จะรีเซ็ตเป็น 00 00
ขั้นตอนที่ 5: ปลุก
ไฟล์.vhd สัญญาณเตือนประกอบด้วย d-flip-flop ซึ่งเป็นอุปกรณ์จัดเก็บข้อมูลที่สามารถจัดเก็บข้อมูลดิจิทัลได้ ไฟล์การเตือนถูกใช้เพื่อจัดเก็บเวลาที่จะเปิดใช้งานการเตือน ในการเก็บข้อมูลชั่วโมง (อินพุต 5 บิต) และนาที (อินพุต 6 บิต) เราต้องประทับตรา 11 d-flip-flop ภายในไฟล์สัญญาณเตือนของเรา ในการทำเช่นนี้ ก่อนอื่นเราต้องนำเข้าตรรกะที่ควบคุมการทำงานของ d-flip-flop และแมปส่วนประกอบ d-flip-flop ทั้ง 11 ตัวจะเก็บข้อมูลหนึ่งบิตจากอินพุตและอนุญาตให้จับคู่ข้อมูลกับเอาต์พุตของไฟล์สัญญาณเตือน เนื่องจาก d-flip-flops เก็บข้อมูล เราจึงสามารถใช้ข้อมูลดังกล่าวได้ในเวลาต่อมา แม้ว่าสวิตช์อินพุตจะมีการเปลี่ยนแปลง
ขั้นตอนที่ 6: Universal Seven Segment Display Driver
ไดรเวอร์จอแสดงผลเจ็ดส่วนสากลรับอินพุตจากชุดนาฬิกาและนาฬิกา และสามารถส่งออกไปยังจอแสดงผลเจ็ดส่วนบนบอร์ดได้ คนขับสามารถแสดงจำนวนการนับแยกกันบนกระดานได้สองครั้งในคราวเดียว เราใช้ฟังก์ชันนี้เพื่อแสดงทั้งเวลาชั่วโมงและเวลานาทีแยกกัน การแสดงเจ็ดส่วนสามารถเปิดใช้งานได้ครั้งละหนึ่งหมายเลขเท่านั้น ดังนั้นไฟล์ sseg จะต้องใช้มัลติเพล็กซ์เพื่อแสดงตัวเลขทั้งหมดของเวลาพร้อมกัน สัญญาณนาฬิกาของบอร์ดถูกป้อนเข้าสู่ sseg เพื่อให้เวลาที่ถูกต้องสำหรับมัลติเพล็กซ์ ตัวเข้ารหัสทศนิยมแบบไบนารีเป็นเลขฐานสองจำเป็นในการแปลงอินพุตเป็นไฟล์เป็นรูปแบบที่สามารถส่งออกไปยังจอแสดงผลเจ็ดส่วน เอาต์พุตสุดท้ายของไฟล์ sseg ถูกแมปกับการแสดงผลเจ็ดเซ็กเมนต์ และเวลาที่ถูกต้องจะแสดงบนจอแสดงผล
ขั้นตอนที่ 7: ลิงก์ไฟล์
ไฟล์ลิงก์เชื่อมต่อส่วนอื่นๆ ทั้งหมดของโปรแกรมและจับคู่สัญญาณไปยังตำแหน่งที่ถูกต้อง แต่ละองค์ประกอบถูกนำเข้ามาและสร้างอินสแตนซ์ภายในไฟล์ สัญญาณใช้เพื่อถ่ายโอนข้อมูลจากส่วนประกอบหนึ่งไปยังอีกส่วนประกอบหนึ่ง การแมปพอร์ตจะเป็นไปตามไดอะแกรมกล่องดำที่แสดงด้านบน ไฟล์ลิงก์ยังมีตรรกะที่ควบคุมเมื่อเปิดใช้งานการเตือน โครงการส่วนใหญ่จะแล้วเสร็จในจุดนี้ งานที่เหลือกำลังกำหนดเส้นทางแต่ละสัญญาณไปยังตำแหน่งที่เหมาะสม
ขั้นตอนที่ 8: Arduino
Arduino ใช้เพื่อเปิดใช้งานลำโพงรวมถึงควบคุมเสียงและระยะเวลาของโน้ตที่เล่นผ่านลำโพง Arduino อ่านสัญญาณดิจิตอลจากบอร์ด Basys 3 เมื่อสัญญาณนี้สูง Arduino จะส่งสัญญาณ PWM ควบคุมเสียงและระยะเวลาของการเตือน สัญญาณเอาท์พุตจาก Arduino เชื่อมต่อกับสัญญาณอินพุตของบอร์ดไดรเวอร์ลำโพงซึ่งเพิ่มระดับเสียงของลำโพง Arduino ทำกระบวนการนี้ซ้ำหลายครั้งต่อวินาทีอย่างรวดเร็ว
ขั้นตอนที่ 9: การกำหนดเส้นทางเคเบิล
บอร์ด Arduino และ Basys 3 ต้องเชื่อมต่อทางกายภาพเพื่อถ่ายโอนสัญญาณระหว่างบอร์ด สายเคเบิลแรกที่ต่อสายจะเป็นจากพินกราวด์ของ JA PMOD ของ Basys 3 ไปยังพินกราวด์ของ Arduino ถัดไปเชื่อมต่อสายจากพิน 1 ของ JA PMOD ของ Basys 3 กับพินดิจิทัล 7 ของ Arduino ถัดไป เชื่อมต่อพินกราวด์สองพินจาก Arduino กับพินกราวด์ของไดรเวอร์ลำโพง จากนั้นเชื่อมต่อเอาต์พุต 3.3 V ของ Arduino กับพิน Vcc ของไดรเวอร์ลำโพง ถัดไป เชื่อมต่อพินดิจิทัล 9 ของ Arduino กับพินอินของไดรเวอร์ลำโพง
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
เครื่อง Rube Goldberg 11 ขั้นตอน: 8 ขั้นตอน
เครื่อง 11 Step Rube Goldberg: โครงการนี้เป็นเครื่อง 11 Step Rube Goldberg ซึ่งออกแบบมาเพื่อสร้างงานง่ายๆ ในรูปแบบที่ซับซ้อน งานของโครงการนี้คือการจับสบู่ก้อนหนึ่ง