สารบัญ:

นาฬิกาแขวนแม่เหล็กที่ชวนให้หลงใหล: 24 ขั้นตอน (พร้อมรูปภาพ)
นาฬิกาแขวนแม่เหล็กที่ชวนให้หลงใหล: 24 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: นาฬิกาแขวนแม่เหล็กที่ชวนให้หลงใหล: 24 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: นาฬิกาแขวนแม่เหล็กที่ชวนให้หลงใหล: 24 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: ต้องดู!! ทำไมอยู่ๆถึงรู้สึกคันมือ? 2024, กรกฎาคม
Anonim
นาฬิกาแขวนแม่เหล็กที่ชวนให้หลงใหล
นาฬิกาแขวนแม่เหล็กที่ชวนให้หลงใหล
นาฬิกาแขวนแม่เหล็กที่ชวนให้หลงใหล
นาฬิกาแขวนแม่เหล็กที่ชวนให้หลงใหล

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

นาฬิกาแขวนผนังแบบมินิมอลนี้ซ่อนเฟืองวงแหวนพิมพ์ 3 มิติซึ่งขับเคลื่อนด้วยสเต็ปเปอร์มอเตอร์ราคาไม่แพงที่หมุนแม่เหล็กด้านหลังแผ่นไม้อัดวอลนัทแบบคลาสสิก

เริ่มแรกโดยได้รับแรงบันดาลใจจาก STORY Clock ฉันต้องการนาฬิกาที่ระบุเวลาของวันโดยใช้ตลับลูกปืนเท่านั้น เทียบกับการอ่านข้อมูลดิจิทัลและลูกบอลที่เคลื่อนที่ช้าซึ่งผลิตภัณฑ์ใช้

ภาพ
ภาพ

ขั้นตอนที่ 1: เครื่องมือและวัสดุ

เครื่องมือและวัสดุ
เครื่องมือและวัสดุ
เครื่องมือและวัสดุ
เครื่องมือและวัสดุ
เครื่องมือและวัสดุ
เครื่องมือและวัสดุ
เครื่องมือและวัสดุ
เครื่องมือและวัสดุ

วัสดุ:

  • ไม้อัด/พาร์ติเคิลบอร์ด 13 x 13 x 2 นิ้ว (ฉันติดเศษไม้ 3 ชิ้นเข้าด้วยกัน)
  • ฮาร์ดบอร์ด 13 x 13 นิ้ว
  • Arduino นาโน
  • นาฬิกาเรียลไทม์
  • สเต็ปเปอร์มอเตอร์และไดรเวอร์
  • เซนเซอร์ Hall Effect
  • แม่เหล็ก
  • สายไฟ
  • อะแดปเตอร์ AC
  • ปลั๊ก
  • สกรูเครื่องคละ
  • สกรูไม้สารพัน
  • ชิ้นส่วนที่พิมพ์ 3 มิติ (ขั้นตอนสุดท้าย)
  • วีเนียร์ (12 x 12 นิ้ว - หน้า ยาว 40 นิ้ว)
  • สเปรย์แลคเกอร์
  • สีสเปรย์สีดำ

เครื่องมือ:

  • เครื่องพิมพ์ 3 มิติ
  • เข็มทิศ
  • มีด X-acto
  • กาว
  • ที่หนีบ
  • จิ๊กตัดวงกลม
  • สับเลื่อย
  • เครื่องขัดดิสก์
  • วงล้อหนีบ
  • สิ่ว
  • ไม้บรรทัด
  • แซนเดอร์
  • สว่าน
  • ไขควง
  • หัวแร้ง
  • ปืนกาวร้อน

ขั้นตอนที่ 2: ติดกรอบไม้เข้าด้วยกัน

กาวกันโครงไม้
กาวกันโครงไม้
กาวกันโครงไม้
กาวกันโครงไม้
กาวกันโครงไม้
กาวกันโครงไม้
กาวกันโครงไม้
กาวกันโครงไม้

กาวไม้สามชิ้นที่จะประกอบเป็นกรอบของนาฬิกา ฉันใช้แผ่นไม้อัดรีเคลมจากโครงเตียงเก่า

ขั้นตอนที่ 3: ตัดเฟรมโดยใช้จิ๊กตัดวงกลม

ตัดกรอบโดยใช้จิ๊กตัดวงกลม
ตัดกรอบโดยใช้จิ๊กตัดวงกลม
ตัดกรอบโดยใช้จิ๊กตัดวงกลม
ตัดกรอบโดยใช้จิ๊กตัดวงกลม
ตัดกรอบโดยใช้จิ๊กตัดวงกลม
ตัดกรอบโดยใช้จิ๊กตัดวงกลม
ตัดกรอบโดยใช้จิ๊กตัดวงกลม
ตัดกรอบโดยใช้จิ๊กตัดวงกลม

ทำเครื่องหมายที่กึ่งกลางของกระดานและติดตั้งเข้ากับจิ๊กตัดวงกลม ตัดวงกลมห้าวงด้วยเส้นผ่านศูนย์กลางต่อไปนี้:

  • 12 นิ้ว
  • 11 1/4 นิ้ว
  • 9 1/4 นิ้ว
  • 7 1/4 นิ้ว
  • 5 3/8 นิ้ว

ขั้นตอนที่ 4: พิมพ์และประกอบ Gears

พิมพ์และประกอบ Gears
พิมพ์และประกอบ Gears
พิมพ์และประกอบ Gears
พิมพ์และประกอบ Gears

เฟืองวงแหวนแบ่งออกเป็นส่วนๆ เพื่อให้สามารถพิมพ์บนเครื่องพิมพ์ขนาดเล็กและประกอบเข้าด้วยกันได้ ชิ้นส่วนทั้งหมดถูกพิมพ์ด้วย ABS เพื่อช่วยในกระบวนการหลอมรวมที่แสดงในขั้นตอนต่อไป ทรายขอบและพื้นผิวของชิ้นส่วนทั้งหมด

พิมพ์จำนวนชิ้นส่วนที่พบในขั้นตอนที่ 22 ดังต่อไปนี้:

  • แม่เหล็กเซ็กเมนต์วงแหวนเกียร์ 1 ชั่วโมง
  • พื้นฐานเซกเมนต์วงแหวนเกียร์ 6 ชั่วโมง
  • 1 - วงแหวนยึดส่วนยึดแบบสเต็ปเปอร์
  • พื้นฐานส่วนแหวนยึด 6 ชั่วโมง
  • 1 - ที่วางเซนเซอร์ Hall Effect แบบชั่วโมง
  • 1 - แม่เหล็กส่วนวงแหวนเฟืองนาที
  • 7 - นาที Ring Gear Segment พื้นฐาน
  • 1 - ขายึดส่วนแหวนยึดแบบนาที
  • 6 - พื้นฐานส่วนแหวนยึดนาที
  • 1 - ที่วางเซนเซอร์ Hall Effect แบบนาที
  • 2 - เดือยเกียร์
  • 1 - แท่นยึดอุปกรณ์อิเล็กทรอนิกส์

ขั้นตอนที่ 5: ส่วน "กาว" เข้าด้วยกัน

ภาพ
ภาพ
ภาพ
ภาพ
ภาพ
ภาพ

ในขวดแก้วที่มีอะซิโตน ให้ละลายพิมพ์วัสดุรองรับเก่าที่ล้มเหลว ฯลฯ ทาสีส่วนผสมอะซิโตนในแต่ละตะเข็บเพื่อหลอมรวมชิ้นส่วนเข้าด้วยกัน เมื่อบ่มแล้วให้ทรายแต่ละตะเข็บเรียบ

ขั้นตอนที่ 6: ตัดการบรรเทาในกรอบ

ตัดบรรเทาในกรอบ
ตัดบรรเทาในกรอบ
ตัดบรรเทาในกรอบ
ตัดบรรเทาในกรอบ
ตัดบรรเทาในกรอบ
ตัดบรรเทาในกรอบ

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

ขั้นตอนที่ 7: ตัดระยะห่างสำหรับเซนเซอร์ Hall Effect

ระยะการตัดสำหรับเซนเซอร์ Hall Effect
ระยะการตัดสำหรับเซนเซอร์ Hall Effect
ระยะการตัดสำหรับเซนเซอร์ Hall Effect
ระยะการตัดสำหรับเซนเซอร์ Hall Effect
ระยะการตัดสำหรับเซนเซอร์ Hall Effect
ระยะการตัดสำหรับเซนเซอร์ Hall Effect

ตัดรูช่องว่างผ่านวงแหวนด้านในสำหรับเซ็นเซอร์เอฟเฟกต์ Hall แบบนาที และช่องเสียบสำหรับเซ็นเซอร์เอฟเฟกต์ Hall แบบชั่วโมง ฉันใช้สิ่ว ตะไบ และเลื่อยมือเล็กๆ เพื่อตัดช่องว่างเหล่านี้

ขั้นตอนที่ 8: กาววงแหวนรอบนอก

กาววงแหวนรอบนอก
กาววงแหวนรอบนอก

กาวและเทปกาวที่วงแหวนรอบนอกขนาดของวงแหวนยึดนาที

ขั้นตอนที่ 9: ตัดสกรูปรับเซนเซอร์ Hall Effect

ตัดสกรูปรับเซนเซอร์ Hall Effect
ตัดสกรูปรับเซนเซอร์ Hall Effect

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

ขั้นตอนที่ 10: กาววงแหวนกับ Hardboard

กาวติดบนฮาร์ดบอร์ด
กาวติดบนฮาร์ดบอร์ด
กาวติดบนฮาร์ดบอร์ด
กาวติดบนฮาร์ดบอร์ด
กาวติดบนฮาร์ดบอร์ด
กาวติดบนฮาร์ดบอร์ด

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

ใช้เครื่องขัดดิสก์เพื่อตัดฮาร์ดบอร์ดให้มีขนาดเท่ากับวงแหวนรอบนอก

ขั้นตอนที่ 11: กาวแผ่นด้านใน

แผ่นกาวด้านใน
แผ่นกาวด้านใน
แผ่นกาวด้านใน
แผ่นกาวด้านใน

กาวแผ่นด้านในเข้าที่โดยใช้วงแหวนยึดชั่วโมงและเฟืองวงแหวนเพื่อวางแผ่นดิสก์ด้านใน

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

ติดวีเนียร์
ติดวีเนียร์
ติดวีเนียร์
ติดวีเนียร์
ติดวีเนียร์
ติดวีเนียร์
ติดวีเนียร์
ติดวีเนียร์

ตัดแถบแผ่นไม้อัดให้กว้างกว่านาฬิกาให้ลึกและยาวพอที่จะพันรอบนาฬิกาได้ (เส้นผ่านศูนย์กลาง 3.14 * ของนาฬิกาจะคืนความยาวที่ต้องการ เพิ่มอีกหนึ่งนิ้วเพื่อให้แน่ใจว่าคุณมีเพียงพอ) ติดแผ่นไม้อัดให้พอดี ตัดให้ยาว ใช้กาวจำนวนมากกับแผ่นไม้อัดและยึดเข้าที่โดยใช้สายรัด ปล่อยให้แห้งสองสามชั่วโมงเพื่อให้แน่ใจว่ามีการยึดเกาะ

ขั้นตอนที่ 13: ตัดแต่งวีเนียร์

ตัดแต่งวีเนียร์
ตัดแต่งวีเนียร์

ใช้สิ่วคมตัดแผ่นไม้อัดส่วนเกินจากด้านหน้าและด้านหลังของนาฬิกา

ขั้นตอนที่ 14: ตัดวีเนียร์

ตัดวีเนียร์
ตัดวีเนียร์
ตัดวีเนียร์
ตัดวีเนียร์

แผ่นไม้อัดของฉันมีรอยแตกอยู่บ้าง เพื่อให้ทำงานได้ง่ายขึ้น ฉันติดเทปจิตรกรเพื่อยึดเข้าด้วยกัน ใช้มีด x-acto ในเข็มทิศ ตัดแผ่นไม้อัดให้ใหญ่กว่าหน้าปัดนาฬิกา

ขั้นตอนที่ 15: แผ่นไม้อัดกาว

กาววีเนียร์
กาววีเนียร์
กาววีเนียร์
กาววีเนียร์

ใช้วงแหวนตัดเพื่อกระจายแรงกดบนหน้าปัดนาฬิกา ใช้กาวปริมาณมากกับด้านที่ไม่ใช่เทปของแผ่นไม้อัด วางเม็ดเกรนในแนวตั้งบนหน้าปัดนาฬิกา และใช้ที่หนีบหลายๆ อันขันทีละอันทีละน้อย เพื่อให้แน่ใจว่าแผ่นไม้อัดไม่เลื่อนและมีแรงกดทับทั่วใบหน้า

ฉันใช้กระดานแบนสองสามแผ่นที่ด้านข้างของนาฬิกาและบางอันที่ด้านหลัง

ขั้นตอนที่ 16: ทรายและเสร็จสิ้น

ทรายและเสร็จสิ้น
ทรายและเสร็จสิ้น
ทรายและเสร็จสิ้น
ทรายและเสร็จสิ้น

ใช้กระดาษทรายลบแผ่นไม้อัดส่วนเกินออกจากหน้าปัดนาฬิกาและทรายโดยเริ่มจาก 220 กรวดถึง 600 กรวด

ใช้แล็กเกอร์ระหว่าง 10 ถึง 20 ชั้น สิ่งนี้จะสร้างพื้นผิวที่ตลับลูกปืนจะวิ่งตาม เนื่องด้วยฝุ่นละอองและอนุภาคอื่นๆ ในอากาศ ฉันคิดว่าเส้นจะปรากฏตามเส้นทางของตลับลูกปืนแต่ละเม็ดอย่างหลีกเลี่ยงไม่ได้ การทาเคลือบเพิ่มเติมควรล่าช้าออกไปให้นานที่สุด นอกจากนี้ยังจะทำให้การขัดสีในอนาคตง่ายขึ้นอีกด้วย ฉันจะอัปเดตขั้นตอนนี้หากมีเส้นปรากฏบนนาฬิกาของฉัน

ขั้นตอนที่ 17: ติดตั้ง Power

ติดตั้งพาวเวอร์
ติดตั้งพาวเวอร์
ติดตั้งพาวเวอร์
ติดตั้งพาวเวอร์

ใช้ดอกสว่านขนาด 27/64 นิ้ว เจาะรูที่ด้านล่างของนาฬิกาแล้วขันปลั๊กไฟให้เข้าที่

ขั้นตอนที่ 18: ประกอบอุปกรณ์อิเล็กทรอนิกส์

ประกอบอิเล็คทรอนิคส์
ประกอบอิเล็คทรอนิคส์
ประกอบอิเล็คทรอนิคส์
ประกอบอิเล็คทรอนิคส์
ประกอบอิเล็คทรอนิคส์
ประกอบอิเล็คทรอนิคส์
ประกอบอิเล็คทรอนิคส์
ประกอบอิเล็คทรอนิคส์

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

ขั้นตอนที่ 19: ประสานและเชื่อมต่ออุปกรณ์อิเล็กทรอนิกส์

บัดกรีและเชื่อมต่ออุปกรณ์อิเล็กทรอนิกส์
บัดกรีและเชื่อมต่ออุปกรณ์อิเล็กทรอนิกส์
บัดกรีและเชื่อมต่ออุปกรณ์อิเล็กทรอนิกส์
บัดกรีและเชื่อมต่ออุปกรณ์อิเล็กทรอนิกส์
บัดกรีและเชื่อมต่ออุปกรณ์อิเล็กทรอนิกส์
บัดกรีและเชื่อมต่ออุปกรณ์อิเล็กทรอนิกส์

ตามแผนภาพบล็อก ประสานส่วนประกอบทั้งหมดเข้าด้วยกัน กาวร้อนให้แหวนเข้าที่และยึดสายไฟที่หลงทางด้วยกาวร้อนเช่นกัน

ภาพ
ภาพ

ขั้นตอนที่ 20: แผ่นหลัง

แผ่นหลัง
แผ่นหลัง
แผ่นหลัง
แผ่นหลัง
แผ่นหลัง
แผ่นหลัง

สร้างแผ่นหลังโดยตัดวงกลมอีก 1/2 นิ้วให้ใหญ่กว่าหน้าปัดนาฬิกาและแหวนที่มีเส้นผ่านศูนย์กลางด้านในเท่ากับด้านหลังนาฬิกา กาววงแหวนและวงกลมพร้อมกับที่หนีบสปริง

เมื่อแห้งแล้ว ให้ขีดเส้นให้ใหญ่กว่าวงแหวนด้านใน 1/8 นิ้ว แล้วตัดแต่งให้ได้ขนาดโดยใช้เครื่องเลื่อยสายพานหรือเครื่องขัดดิสก์

ตัดช่องยาว 1 นิ้วกว้าง 1/4 นิ้วที่ด้านบนของด้านหลังโดยใช้เราเตอร์หรือดอกสว่าน เคาเตอร์ซิงค์สี่รูเพื่อยึดด้านหลังเข้ากับกรอบนาฬิกา

ใช้สีสเปรย์สีดำและติดกับนาฬิกาเมื่อแห้ง

ขั้นตอนที่ 21: รหัส Arduino

รหัส Arduino ถูกแสดงความคิดเห็นเช่นกัน โปรดทราบว่าฉันไม่ใช่โปรแกรมเมอร์ ฉันมีประสบการณ์ Arduino น้อยที่สุด (ใจดี) รหัสทำงานอย่างต่อเนื่องเพื่อตรวจสอบเพื่อดูว่าเวลาปัจจุบันตรงกับ "เวลารีเซ็ต" หรือไม่ เนื่องจากฉันคิดวิธีแปลเวลาปัจจุบันเป็นขั้นตอนไม่ได้ มันจึงแก้ไขตัวเองวันละครั้งเท่านั้น (ค่าเริ่มต้นคือเที่ยงคืน) เวลาเที่ยงคืนเกียร์จะหมุนไปที่ตำแหน่งเที่ยงคืน จากนั้นรอจนถึง 00:01 น. เพื่อเคลื่อนไปยังเวลานั้นจากนั้นจึงเดินต่อจากที่นั่น ในขณะที่มันนั่งอยู่ นาฬิกาจะสูญเสียไปเพียง 5 วินาทีในระยะเวลา 24 ชั่วโมงเท่านั้น

คุณจะต้องติดตั้งไลบรารี Stepper และ RTClib

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

#รวม

#รวม "RTClib.h" RTC_DS1307 rtc; #define oneRotation 2038 // จำนวนขั้นตอนในการหมุนหนึ่งครั้งของสเต็ปเปอร์มอเตอร์ 28BYJ-48 Stepper hourHand(oneRotation, 3, 5, 4, 6); Stepper นาทีมือ (oneRotation, 7, 9, 8, 10); #define hourStopSensor 12 #define minutesStopSensor 11 int endStep = 0; // เวลาจัดการความเร็วของนาฬิกา int setDelay1 = 168; int setDelay2 = 166; int setDelay3 = 5; // เวลาปัจจุบันในการทำคณิตศาสตร์ด้วย ลอย ชม = 0; ลอย mn = 0; ลอย sc = 0; // ตั้งเวลาของวันเพื่อรีเซ็ตนาฬิกา (รูปแบบ 24 ชั่วโมง) int รีเซ็ตชั่วโมง = 0; int resetMinute = 0; // ตัวแปรเพื่อตั้งเวลาที่ถูกต้องเมื่อเริ่มต้นและรีเซ็ต float setTimeStepHour = 0; float setTimeStepMinute = 0; float handDelay = 0; float hourTest = 0; ลอยนาทีทดสอบ = 0; การตั้งค่าเป็นโมฆะ () { Serial.begin (115200); // ตั้งค่านาฬิกาตามเวลาจริงและรีเซ็ตเซ็นเซอร์เอฟเฟกต์ฮอลล์ pinMode(hourStopSensor, INPUT_PULLUP); pinMode(minuteStopSensor, INPUT_PULLUP); rtc.begin(); // Uncomment บรรทัดด้านล่างเพื่อตั้งเวลา // rtc.adjust(DateTime(2020, 2, 19, 23, 40, 30)); // rtc.adjust(DateTime(F(_DATE_), F(_TIME_)))); // ตั้งค่าความเร็วสูงสุดของสเต็ปเปอร์มอเตอร์ hourHand.setSpeed(15); นาที Hand.setSpeed(15); // วนซ้ำจนถึงเข็มนาทีและเข็มชั่วโมงตอนเที่ยงขณะที่ (digitalRead (hourStopSensor) == LOW || digitalRead (minuteStopSensor) == LOW) { if (digitalRead (hourStopSensor) == LOW) { hourHand.step (2); } อื่น ๆ { ล่าช้า (3); } if (digitalRead (minuteStopSensor) == ต่ำ) { minutesHand.step(3); } อื่น ๆ { ล่าช้า (4); } } while (digitalRead(hourStopSensor) != LOW || digitalRead(minuteStopSensor) != LOW) { if (digitalRead(hourStopSensor) != LOW) { hourHand.step(2); } อื่น ๆ { ล่าช้า (3); } if (digitalRead(minuteStopSensor) != LOW) { minutesHand.step(3); } อื่น ๆ { ล่าช้า (4); } } // รับเวลาปัจจุบัน DateTime now = rtc.now(); ชม = ตอนนี้ชั่วโมง (); mn = ตอนนี้นาที (); sc = ตอนนี้วินาที (); // เปลี่ยนเป็นรูปแบบ 12 ชั่วโมงถ้า (hr >= 12) { hr = hr - 12; } // ดูว่ามือใดต้องเดินข้ามใบหน้าต่อไปและใช้ระยะทางนั้น // เพื่อปรับเวลาที่ตั้งไว้ hourTest = ชม. / 12; นาทีทดสอบ = mn / 60; ถ้า (hourTest > minutesTest) { handDelay = hourTest; } อื่น { handDelay = นาทีทดสอบ; } // ตั้งค่าชั่วโมงปัจจุบัน setTimeStepHour = (ชม * 498) + (mn * 8.3) + ((sc + (handDelay * 36)) *.1383); // ตั้งค่านาทีปัจจุบัน setTimeStepMinute = (mn * 114) + ((sc + (handDelay * 45)) * 1.9); // ทดสอบว่ามือใดต้องการก้าวเพิ่มเติมและตั้งค่าให้นับจำนวนก้าวที่ยาวที่สุดสำหรับลูป for ถ้า (setTimeStepHour > setTimeStepMinute) { endStep = setTimeStepHour; } อื่น ๆ { endStep = setTimeStepMinute; } สำหรับ (int i = 0; i <= endStep; i++) { if (i < setTimeStepHour) { hourHand.step (2); } อื่น ๆ { ล่าช้า (3); } ถ้า (i < setTimeStepMinute) { นาที Hand.step(3); } อื่น ๆ { ล่าช้า (4); } } // ตั้งนาฬิกาให้ทำงาน RPM hourHand.setSpeed(1); นาทีHand.setSpeed(1); } วงเป็นโมฆะ () { // เริ่มการวนรอบของนาฬิกา สำหรับ (int i = 0; i < 22; i++) {minuteHand.step(1); ล่าช้า (setDelay1); // ทดสอบเวลารีเซ็ต ถ้าพร้อมจะรีเซ็ต ก็พัง ถ้า (rtc.now().hour() == resetHour && rtc.now().minute() == resetMinute) { break; } } ล่าช้า (setDelay3); สำหรับ (int i = 0; i <38; i++) { hourHand.step(1); ล่าช้า (setDelay1); // ทดสอบเวลารีเซ็ต ถ้าพร้อมจะรีเซ็ต ก็พัง ถ้า (rtc.now().hour() == resetHour && rtc.now().minute() == resetMinute) { break; } สำหรับ (int i = 0; i <20; i++) {minuteHand.step(1); ล่าช้า (setDelay2); // ทดสอบเวลารีเซ็ต ถ้าพร้อมจะรีเซ็ต ก็พัง ถ้า (rtc.now().hour() == resetHour && rtc.now().minute() == resetMinute) { break; } } } // รีเซ็ตนาฬิกาเมื่อถึงเวลารีเซ็ต ถ้า (rtc.now().hour() == resetHour && rtc.now().minute() == resetMinute) { // เปลี่ยนความเร็วของนาฬิกา hourHand.setSpeed(10); นาที Hand.setSpeed(10); // วนไปจนนาทีและเข็มชั่วโมงถึงเที่ยงวัน ในขณะที่ (digitalRead (hourStopSensor) == LOW || digitalRead (minuteStopSensor) == LOW) { if (digitalRead (hourStopSensor) == LOW) { hourHand.step (2); } อื่น ๆ { ล่าช้า (3); } if (digitalRead (minuteStopSensor) == ต่ำ) { minutesHand.step(3); } อื่น ๆ { ล่าช้า (4); } } while (digitalRead(hourStopSensor) != LOW || digitalRead(minuteStopSensor) != LOW) { if (digitalRead(hourStopSensor) != LOW) { hourHand.step(2); } อื่น ๆ { ล่าช้า (3); } if (digitalRead(minuteStopSensor) != LOW) { minutesHand.step(3); } อื่น ๆ { ล่าช้า (4); } } // รอที่นี่จนกว่าเวลารีเซ็ตจะผ่านไป ในขณะที่ (rtc.now().minute() == resetMinute) { delay(1000); } // รับเวลาปัจจุบัน DateTime now = rtc.now(); ชม = ตอนนี้ชั่วโมง (); mn = ตอนนี้นาที (); sc = ตอนนี้วินาที (); // เปลี่ยนเป็นรูปแบบ 12 ชั่วโมงหาก (hr>= 12) { hr = hr - 12; } // ดูว่ามือใดต้องเดินข้ามใบหน้าต่อไปและใช้ระยะทางนั้น // เพื่อปรับเวลาที่ตั้งไว้ hourTest = ชม. / 12; นาทีทดสอบ = mn / 60; ถ้า (hourTest > minutesTest) { handDelay = hourTest; } อื่น { handDelay = นาทีทดสอบ; } // ตั้งค่าชั่วโมงปัจจุบัน setTimeStepHour = (ชม * 498) + (mn * 8.3) + ((sc + (handDelay * 36)) *.1383); // ตั้งค่านาทีปัจจุบัน setTimeStepMinute = (mn * 114) + ((sc + (handDelay * 45)) * 1.9); // ทดสอบว่ามือใดต้องการก้าวเพิ่มเติมและตั้งค่าให้นับจำนวนก้าวที่ยาวที่สุดสำหรับลูป for ถ้า (setTimeStepHour > setTimeStepMinute) { endStep = setTimeStepHour; } อื่น ๆ { endStep = setTimeStepMinute; } สำหรับ (int i = 0; i <= endStep; i++) { if (i < setTimeStepHour) { hourHand.step (2); } อื่น ๆ { ล่าช้า (3); } ถ้า (i < setTimeStepMinute) { นาที Hand.step(3); } อื่น ๆ { ล่าช้า (4); } } hourHand.setSpeed(1); นาทีHand.setSpeed(1); } }

ขั้นตอนที่ 22: ไฟล์ STL

คุณจะต้องพิมพ์ไฟล์ในปริมาณต่อไปนี้:

  • แม่เหล็กเซ็กเมนต์วงแหวนเกียร์ 1 ชั่วโมง
  • พื้นฐานเซกเมนต์วงแหวนเกียร์ 6 ชั่วโมง
  • 1 - ขายึดส่วนแหวนยึดแบบหมุนได้ 1 ชั่วโมง
  • พื้นฐานส่วนแหวนยึด 6 ชั่วโมง
  • 1 - ที่วางเซ็นเซอร์ Hall Effect แบบชั่วโมง
  • 1 - แม่เหล็กส่วนวงแหวนเฟืองนาที
  • 7 - นาที Ring Gear Segment พื้นฐาน
  • 1 - ขายึดส่วนแหวนยึดแบบนาที
  • 6 - พื้นฐานส่วนแหวนยึดนาที
  • 1 - ที่วางเซนเซอร์ Hall Effect แบบนาที
  • 2 - เดือยเกียร์
  • 1 - แท่นยึดอุปกรณ์อิเล็กทรอนิกส์

ขั้นตอนที่ 23: ไฟล์ Solidworks

ไฟล์เหล่านี้เป็นไฟล์ Solidworks ดั้งเดิมที่ใช้สร้าง STL ที่พบในขั้นตอนก่อนหน้า อย่าลังเลที่จะแก้ไขและเปลี่ยนไฟล์ของฉันตามที่เห็นสมควร

ขั้นตอนที่ 24: บทสรุป

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

แนะนำ: