สารบัญ:

Arduino Oled Dice: 10 ขั้นตอน (พร้อมรูปภาพ)
Arduino Oled Dice: 10 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Arduino Oled Dice: 10 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Arduino Oled Dice: 10 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Arduino Tutorial: Color OLED SSD1331 display with Arduino Uno from Banggood.com 2024, มิถุนายน
Anonim
Image
Image
ฟังก์ชั่นลูกเต๋า
ฟังก์ชั่นลูกเต๋า

คำแนะนำนี้เป็นเกี่ยวกับวิธีการสร้างลูกเต๋าอิเล็กทรอนิกส์ที่ดูดีโดยใช้จอแสดงผล oled และ Arduino uno หรือที่คล้ายกัน ในตอนเริ่มต้นของโครงการนี้ ฉันตัดสินใจว่าหลังจากต้นแบบเสร็จสิ้น ฉันต้องการสร้างเวอร์ชันที่ทำเอง ดังนั้น ในที่เข้าใจยากนี้มีคำอธิบายวิธีสร้างเวอร์ชันต้นแบบและคำแนะนำที่เป็นประโยชน์หากคุณต้องการสร้างเวอร์ชันที่กำหนดเอง

วิดีโอแสดงเวอร์ชันและฟังก์ชันของลูกเต๋าที่สร้างขึ้นเองขั้นสุดท้าย

ขั้นตอนที่ 1: ฟังก์ชั่นลูกเต๋า

ลูกเต๋ามีสวิตช์เลือกเพื่อเลือกระหว่าง 1 หรือ 2 ลูกเต๋า นอกจากนี้ยังมีองค์ประกอบ piezo เพื่อสร้างเสียงเมื่อลูกเต๋าวิ่งผ่านตัวเลขสุ่มและเมื่อหยุด ตราบใดที่ยังคงกดสวิตช์หมุนลูกเต๋าจะทำงานและแสดงตัวเลขสุ่มบนจอแสดงผล เมื่อปล่อยปุ่ม มันจะเริ่มช้าลงเป็นจำนวนสุ่มจนกระทั่งหยุดและแสดงผลในที่สุด นี่คือการจำลองพฤติกรรมของลูกเต๋ากลิ้งจริง

ลูกเต๋ามีวงจรปิดอัตโนมัติเพื่อประหยัดแบตเตอรี่

หากคุณไม่ใช้ลูกเต๋าเป็นเวลา 60 วินาที เครื่องจะปิดโดยอัตโนมัติ

ในซอฟต์แวร์มีฟังก์ชันสำหรับเปิดหรือปิดเสียงโดยกดสวิตช์เลือกค้างไว้มากกว่าหนึ่งวินาที

ขั้นตอนที่ 2: ฟังก์ชั่นปิดเครื่องอัตโนมัติ

ฟังก์ชันปิดเครื่องอัตโนมัติ
ฟังก์ชันปิดเครื่องอัตโนมัติ

ลูกเต๋ามีฟังก์ชั่นปิดตัวเองเมื่อไม่ได้ใช้เพื่อประหยัดแบตเตอรี่ ดูแผนผังสำหรับวงจรปิดอัตโนมัติ

นี่คือวิธีการทำงาน:

วงจรประกอบด้วยทรานซิสเตอร์ P FET ที่ทำหน้าที่เหมือนสวิตช์ ประตูบนทรานซิสเตอร์ถูกควบคุมโดยปุ่มกดชั่วขณะมาตรฐาน (S1) เมื่อกดสวิตช์ แรงดันไฟตกที่เกทและกระแสจะเริ่มไหลผ่านทรานซิสเตอร์ ที่เกทมีทรานซิสเตอร์ตัวอื่นขนานกับสวิตช์ลงกราวด์ ทรานซิสเตอร์จะรักษาแรงดันไฟฟ้าไว้ที่เกต FET ให้ต่ำตราบเท่าที่แรงดันไฟฟ้าบนฐานสูง แรงดันไฟฟ้าพื้นฐานใช้จากไมโครคอนโทรลเลอร์และสิ่งแรกที่ร่างทำเมื่อคอนโทรลเลอร์ได้รับพลังงานคือตั้งค่าพินดิจิตอล 8 เป็นสูงและโดยซอฟต์แวร์จะล็อควงจร ตัวควบคุมแรงดันไฟฟ้า 7805 ทำให้แรงดันไฟฟ้าคงที่ที่ 5V และไดโอดสองตัวป้องกัน 9 โวลต์จากแบตเตอรี่เพื่อไปถึงไมโครคอนโทรลเลอร์ สวิตช์เดียวกันนี้ยังใช้เพื่อควบคุมอินพุตดิจิตอลบนคอนโทรลเลอร์ (พิน 7)

ในภาพสเก็ตช์ เราวัดเวลาที่ผ่านไปตั้งแต่กดปุ่มและเปรียบเทียบกับเวลา ON ที่กำหนด

ก่อนที่ไฟจะดับ ลูกเต๋า/ ลูกเต๋าจะเริ่มกะพริบและมีสัญญาณเตือนออกมาจาก piezo เพื่อให้ผู้ใช้มีเวลากดสวิตช์อีกครั้งเพื่อรีเซ็ตตัวจับเวลา

ก่อนที่ไฟจะดับ ไมโครคอนโทรลเลอร์จะเก็บหมายเลขล่าสุดไว้ในหน่วยความจำ EEPROM พร้อมกับจำนวนลูกเต๋า/ลูกเต๋าที่เลือกและสถานะเสียง ค่าเหล่านั้นจะถูกเรียกคืนเมื่อเริ่มทอยครั้งต่อไป

ขั้นตอนที่ 3: ต้นแบบ

ต้นแบบ
ต้นแบบ

ตอนนี้ได้เวลาเริ่มสร้างแล้ว

คุณต้องการ:

  • 1 เขียงหั่นขนมไร้บัดกรี
  • 1 Arduino Uno
  • 1 จอแสดงผล OLED 128x64 i2c
  • 2 ตัวเก็บประจุ 10uF
  • 1 ตัวเก็บประจุ 100nF
  • ตัวต้านทาน 2 ตัว 10Kohm
  • 2 ตัวต้านทาน 100Kohm
  • 2 ไดโอด 1n4148
  • 1 ทรานซิสเตอร์ NPN BC547b
  • 1 MosFET IRF9640
  • 1 ตัวควบคุมแรงดันไฟฟ้า L7805
  • สวิตซ์ 2 โมเมนต์
  • 1 พายโซ
  • สายจัมเปอร์
  • แบตเตอรี่ 9 โวลต์

แค่นั้นแหละ.

ปฏิบัติตามภาพด้านบนอย่างระมัดระวัง

ให้ความสนใจเป็นพิเศษกับไดโอดที่อยู่ด้านหลังตัวควบคุมแรงดันไฟฟ้าในภาพ (มองเห็นได้ยาก), D1 ในแผนผัง ด้านแอโนดของไดโอดควรเชื่อมต่อกับตัวสะสมของทรานซิเตอร์ BC547

Piezo เชื่อมต่อกับพิน 6, ปุ่มม้วนไปที่พิน 7, ปุ่มเลือกเพื่อพิน 10 และปุ่มควบคุม Power_ON เพื่อพิน 8

อย่าลืมจ่ายไฟให้กับ Arduino Uno ผ่านพิน 5V และพินกราวด์บนบอร์ด Arduino และอย่าเสียบปลั๊ก DC ที่ด้านข้าง

สเก็ตช์ใช้ U8g2lib.h สำหรับการแสดงผล คุณจะพบได้ที่นี่ https://github.com/olikraus/u8g2/ ดาวน์โหลดและติดตั้งก่อนรวบรวมโค้ด

จะติดตั้งไลบรารี่ได้อย่างไร?https://www.arduino.cc/en/Guide/Libraries

คัดลอกโค้ดและวางใน Arduino IDE แล้วอัปโหลดแบบร่าง

อย่าลืมถอดสาย USB ออกจาก Arduino เมื่อเสร็จสิ้น มิฉะนั้น ฟังก์ชันปิดเครื่องอัตโนมัติจะไม่ทำงาน เนื่องจาก USB/คอมพิวเตอร์กำลังเปิดเครื่องควบคุม

ขั้นตอนที่ 4: เวอร์ชันที่กำหนดเอง

เวอร์ชันที่กำหนดเอง
เวอร์ชันที่กำหนดเอง
เวอร์ชันที่กำหนดเอง
เวอร์ชันที่กำหนดเอง
เวอร์ชันที่กำหนดเอง
เวอร์ชันที่กำหนดเอง
เวอร์ชันที่กำหนดเอง
เวอร์ชันที่กำหนดเอง

ส่วนที่เหลือของคำแนะนำนี้เป็นเรื่องเกี่ยวกับเคล็ดลับและทริกซ์ หากคุณต้องการแปลงเป็นเวอร์ชันที่มีประโยชน์และกำหนดเองมากขึ้น

ในการวาดแผนผังที่สมบูรณ์สำหรับเวอร์ชันที่กำหนดเอง ฉันใช้ซอฟต์แวร์แผนผังและ PCB ออนไลน์ฟรี EASYEDA คุณพบได้ที่นี่

เมื่อสั่งซื้อส่วนประกอบ คุณต้องแน่ใจว่าไมโครคอนโทรลเลอร์มี Arduino bootloader บนชิป หากไม่มี คุณต้องเตรียมชิปก่อน มีการสอนมากมายบนเว็บเกี่ยวกับวิธีการทำ

ฉันได้เพิ่มส่วนประกอบพิเศษที่ไม่ได้ใช้ในโปรเจ็กต์นี้ แต่มีไว้สำหรับโปรเจ็กต์ในอนาคต U4, U5, R4, S2.

ส่วนหัว PGM ในแผนผังใช้สำหรับตั้งโปรแกรมชิป หากคุณต้องการตั้งโปรแกรมชิปโดยใช้พอร์ต PGM คุณต้องมีอะแดปเตอร์ USB เป็นซีเรียล

USB เข้ากับบอร์ด UART แบบอนุกรม

คุณสามารถอัปโหลดภาพร่างไปยังคอนโทรลเลอร์ได้โดยใช้บอร์ด Arduino จากนั้นย้ายชิปไปที่ PCB แทน

EASYEDA ยังมีฟังก์ชันในการสร้าง PCB ให้กับคุณอีกด้วย

ก่อนที่ฉันจะเริ่มแปลงแผนผังเป็นเลย์เอาต์ PCB ฉันเลือกกล่องที่มีขนาดและห้องที่เหมาะสมสำหรับแบตเตอรี่ 9 โวลต์ที่สามารถเปลี่ยนแปลงได้จากภายนอก

เหตุผลก็คือฉันต้องการขนาดและตำแหน่งที่จะวางรูบน PCB สำหรับสกรูก่อนที่ฉันจะเริ่มทำเลย์เอาต์ ดังนั้น PCB สุดท้ายจะพอดีกับกล่องอย่างสมบูรณ์แบบ

ฉันวัดขนาดภายในนอกกล่องอย่างระมัดระวัง จากนั้นจึงแปลงการออกแบบเป็นบอร์ดขนาดที่กำหนดเองโดยใช้ซอฟต์แวร์เดียวกัน จากนั้นคลิกปุ่มสร้างและสั่งซื้อ

ขั้นตอนที่ 5: การบัดกรี

บัดกรี
บัดกรี
บัดกรี
บัดกรี

เนื่องจากฉันต้องสั่งซื้อ PCB มากกว่าหนึ่งแผ่นเพื่อให้ได้ราคาที่เหมาะสม ฉันจึงออกแบบให้ใช้งานได้หลากหลาย เพื่อที่ฉันจะได้ใช้บอร์ดและกล่องเดียวกันสำหรับโครงการในอนาคต ฉันเพิ่มพินเพิ่มเติมสำหรับพอร์ตอนาล็อกและดิจิทัลพร้อมกับปุ่มพิเศษ ในโครงการนี้ ฉันใช้ S1 เพื่อเพิ่มพลังให้วงจรและทอยลูกเต๋า และ S3 เป็น Select เมื่อคุณได้รับ PCB ก็ถึงเวลาบัดกรีส่วนประกอบทั้งหมดให้ถูกที่ บน PCB ของฉัน จอแสดงผลและปุ่มต่างๆ จะติดตั้งอยู่ที่ด้านหลังเพื่อลดขนาดและสามารถเข้าถึงได้จากภายนอก

ตอนที่ฉันกำลังสร้างลูกเต๋า ฉันรู้ว่าคงจะดีถ้าคุณสามารถเขย่ากล่องเพื่อเพิ่มพลังและทอยลูกเต๋าได้ หากคุณต้องการคุณสมบัตินั้น คุณต้องทำการปรับเปลี่ยนวงจรเล็กน้อย

การปรับเปลี่ยน:

เปลี่ยนสวิตช์ม้วน (S1) เป็นเซ็นเซอร์สวิตช์เอียงและเพิ่มตัวเก็บประจุ 100uF ขนานกับสวิตช์เพื่อให้ระดับบนเกต FET ต่ำนานเพียงพอเพื่อให้ไมโครคอนโทรลเลอร์มีเวลาเริ่มต้นและตั้งค่าพอร์ตดิจิตอลเอาท์สูง และล็อควงจร "เปิดเครื่อง"

คุณต้องติดตั้งเซ็นเซอร์ความเอียงบนหมุดส่วนขยาย เพื่อให้สามารถงอและปรับมุมเพื่อให้สวิตช์ปิดเมื่อกล่องวางอยู่บนโต๊ะ

เซ็นเซอร์เอียง

ขั้นตอนที่ 6: ตัดรูที่จำเป็นในกล่องออก

ตัดรูที่จำเป็นในกล่อง
ตัดรูที่จำเป็นในกล่อง
ตัดรูที่จำเป็นในกล่อง
ตัดรูที่จำเป็นในกล่อง

เมื่อทำ PCB เสร็จแล้ว ก็ถึงเวลาเจาะรูลงในกล่อง ในการตัดรูสี่เหลี่ยมสำหรับจอแสดงผล ฉันใช้ไมโครมิลเลอร์ แต่คุณสามารถใช้จิ๊กซอว์ขนาดเล็กหรือที่คล้ายกันได้

ขั้นตอนที่ 7: แผงด้านหน้า

แผงด้านหน้า
แผงด้านหน้า
แผงด้านหน้า
แผงด้านหน้า

จากนั้นคุณต้องมีแผงด้านหน้าที่ดี ฉันกำลังวาดแผงใน "ซอฟต์แวร์วาดภาพอัจฉริยะ" แต่คุณสามารถใช้ซอฟต์แวร์วาดภาพเกือบทุกชนิดที่คุณชอบ

เมื่อคุณวาดภาพเสร็จแล้ว ให้พิมพ์บนเครื่องพิมพ์เลเซอร์สีมาตรฐานหรือที่คล้ายกัน แต่บนกระดาษที่หนากว่าปกติเล็กน้อย นำแผ่นพลาสติกที่มีกาวทั้งสองด้าน นำแผ่นป้องกันด้านหนึ่งออกแล้ววางแผงอย่างระมัดระวัง คุณสามารถหาฟิล์มพลาสติกนี้ได้ตามร้านขายกระดาษส่วนใหญ่

ขั้นตอนที่ 8: การตัดรูในแผง

ตัดรูในแผง
ตัดรูในแผง
ตัดรูในแผง
ตัดรูในแผง
ตัดรูในแผง
ตัดรูในแผง
ตัดรูในแผง
ตัดรูในแผง

ตัดรูในแผงด้วยมีดกระดาษคม สำหรับรูกระดุมแบบกลม ให้ใช้ที่เจาะรู ตอนนี้แผงหน้าปัดดูเหมือนสติกเกอร์ธรรมดา แต่ก่อนที่คุณจะวางลงบนกล่อง คุณต้องพ่นเคลือบด้วยชั้นแล็กเกอร์ปกป้องก่อน เมื่อแผงแห้งแล้ว ให้วางอย่างระมัดระวังบนกล่อง

ขั้นตอนที่ 9: จุดสิ้นสุดของโครงการ

จุดสิ้นสุดของโครงการ
จุดสิ้นสุดของโครงการ
จุดสิ้นสุดของโครงการ
จุดสิ้นสุดของโครงการ

เมื่อฉันถึงจุดสิ้นสุดของโปรเจ็กต์นี้ ฉันโชคไม่ดีที่พบว่าบางครั้งลูกเต๋าค้างเมื่อฉันเขย่ามันและจำเป็นต้องเริ่มต้นใหม่

ฉันไม่เคยมีปัญหานี้ระหว่างการสร้างต้นแบบดังนั้นฉันจึงสับสนเล็กน้อย แต่ฉันพบว่านี่เป็นเพราะสัญญาณรบกวนที่ฉายบนหมุด SDA หรือ SCL ของจอแสดงผล

วิธีแก้ไขคือเพิ่มตัวต้านทานพิเศษ 1k ในแต่ละพินเป็น 5V เมื่อดึงขึ้น ดูรูป หลังจากนั้นลูกเต๋าทำงานได้อย่างสมบูรณ์ตามที่คาดไว้

ขั้นตอนที่ 10: เขย่าและม้วน

มีความสุข.

แนะนำ: