DIY นาฬิกาอิเล็กทรอนิกส์โดยใช้ Arduino นาฬิกาแขวนขนาดใหญ่พร้อมความสว่างอัตโนมัติบน Arduino ตัวอย่างโครงการที่มีโมดูลนาฬิกา i2C และจอแสดงผล

ฉันจำเป็นต้องสร้างบางสิ่งที่ยิ่งใหญ่กว่านี้ นาฬิกาแขวนพร้อมปรับความสว่างอัตโนมัติ

นาฬิกาเหล่านี้เหมาะสำหรับห้องขนาดใหญ่ เช่น โถงทางเดินในสำนักงานหรืออพาร์ตเมนต์ขนาดใหญ่

การทำนาฬิกาแขวนขนาดใหญ่นั้นไม่ใช่เรื่องยากโดยใช้คำแนะนำเหล่านี้


ในการประมาณขนาดของนาฬิกา คุณสามารถสันนิษฐานได้ว่าส่วนหนึ่งของนาฬิกาจะมีขนาดเท่ากับกระดาษ A4 ซึ่งจะทำให้ง่ายต่อการใช้กรอบรูปในขนาดที่เหมาะสม

ขั้นตอนที่ 1. ส่วนประกอบของนาฬิกาแขวนขนาดใหญ่

สายไฟ, บัดกรี, หัวแร้ง, แถบ LED อาร์ดูโน่ นาโน ตัวแปลงไฟ DC-DC LM2596
แถบ LED WS2811 ยาว 4 เมตร เซ็นเซอร์วัดแสง นาฬิกาเรียลไทม์ DS3231
ไมโครสวิตช์

สิ่งที่ฉันใช้สำหรับโครงการนี้:

ขั้นตอนที่ 8 ตั้งโปรแกรมนาฬิกา

หลังจากเล่นซอไปรอบๆ ฉันก็หานาฬิกาที่ตอบโจทย์ความต้องการของฉันได้อย่างสมบูรณ์ ฉันแน่ใจว่าคุณสามารถทำได้ดีกว่าฉัน

โค้ดได้รับการแสดงความคิดเห็นอย่างดี และคุณจะเข้าใจได้ไม่ยาก นอกจากนี้ ข้อความการดีบักก็มีการแสดงความคิดเห็นเป็นอย่างดีเช่นกัน

หากต้องการเปลี่ยนสีนาฬิกาแขวนที่ใช้ต้องเปลี่ยนตัวแปรในบรรทัดที่ 22 ( int ledColor = 0x0000FF; // สีที่ใช้ (เป็นฐานสิบหก)- คุณสามารถดูรายการสีและรหัสฐานสิบหกได้ในหน้า: https://github.com/FastLED/FastLED/wiki/Pixel-refe…

หากคุณมีปัญหาในการดาวน์โหลด ให้ใช้มิเรอร์: http://bit.ly/1Qjtgg0

สามารถดาวน์โหลดร่างสุดท้ายของฉันได้

ขั้นตอนที่ 9 สร้างตัวเลขโดยใช้โพลีสไตรีน

ฐานเครื่องตัด การทำงานของเครื่องตัด แบบฟอร์มทั่วไปเครื่องตัด
ผลลัพธ์ของเครื่องตัด

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

คุณสามารถดูว่าฉันทำมันได้อย่างไรในภาพด้านบน

ในการจ่ายไฟให้เครื่องตัดฉันใช้แหล่งจ่ายไฟ 12v

จากการตัดคุณควรได้สี่ส่วน นาฬิกาใหญ่ซึ่งหนึ่งในนั้นปรากฏอยู่ในรูปภาพ

ขั้นตอนที่ 10 ติดตัวเลขและปิดทุกอย่างด้วยตัวกระจายแสง นาฬิกาแขวนขนาดใหญ่ชิ้นสุดท้าย

เปล่งประกายระหว่างวัน เรืองแสงในเวลากลางคืน

หลังจากตัดตัวเลขและจุดทั้งสี่ของนาฬิกาแขวนออกแล้ว ให้ทากาวทั้งหมดลงบนกระดาษแข็งด้วย แถบ LED(ฉันใช้เทปสองหน้าเพื่อให้กระบวนการง่ายขึ้น)

เพื่อปัดเป่าความยาก ไฟ LEDฉันใช้กระดาษสองแผ่นทับตัวเลขโพลีสไตรีน เพื่อความสะดวกและสวยงาม ฉันจึงใช้กระดาษขนาด A2 พับครึ่ง

หลังจากทำตามขั้นตอนทั้งหมดนี้แล้ว ฉันจึงวางนาฬิกาแขวนขนาดใหญ่ที่ได้ผลลัพธ์ไว้ในกรอบรูปขนาดใหญ่ที่เข้ากัน

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

ติดต่อกับ


นาฬิกาดังกล่าวจะดูดั้งเดิมมากบนผนัง มีเข็ม LED ที่เลียนแบบนาฬิกาอะนาล็อก นาฬิกาแอลอีดีตรงกลางและแสง RGB พื้นหลังที่สวยงาม การทำโปรเจ็กต์แบบโฮมเมดนั้นแทบจะเรียกได้ว่าง่าย แต่เวลาและความพยายามที่ใช้ไปจะไม่สูญเปล่า

วัสดุเคส:
- แผ่นอะครีลิคสีดำ 300x300x3 มม. 3 แผ่น
- ไฟแบ็คไลท์อะคริลิคใส 300x300x3 มม. 1 ชิ้น
- น้ำยาขัดเงาแผ่นอะครีลิค
- กาว
- ปลอกสเปเซอร์ 15 มม. เกลียว m3 20 ชิ้น
- สกรู M3 พร้อมแหวนรอง 20 ชิ้น
- กรอบรูป 300x300 มม. 1 ชิ้น

วัสดุอิเล็กทรอนิกส์:
- กะการลงทะเบียน CD74HC595 8ชิ้น
- แอลอีดีไดร์เวอร์ TLC5940 1 ชิ้น
- นาฬิกาเรียลไทม์ (RTC) DS1307 1 ชิ้น
- ตัวควบคุมเชิงเส้น LM317 1 ชิ้น
- ทรานซิสเตอร์แบบไบโพลาร์ BD139 8ชิ้น
- ตัวเก็บประจุด้วยไฟฟ้า 1 ยูเอฟ 2 ชิ้น
- คาปาซิเตอร์ 0.1 uF 1 ตัว
- ตัวต้านทาน 120 โอห์ม 60 ชิ้น
- ตัวต้านทาน 10 kOhm 9 ชิ้น
- ตัวต้านทาน 2 kOhm 1 ตัว
- ตัวต้านทาน 1 kOhm 9 ชิ้น
- ตัวต้านทาน 330 โอห์ม 1 ตัว
- ไฟ LED 480 ชิ้น
- แอลอีดี 4 หลัก ตัวบ่งชี้ดิจิตอล(มีขั้วบวกทั่วไป) 1 ชิ้น
- แถบ LED RGB(มีขั้วบวกร่วม) 1 ชิ้น (ยาวถึงเส้นรอบวงหน้าปัด)
- โมดูล Arduino Mega ADK (Rev3) 1 ชิ้น
- แบตเตอรี่ 12V 1 ชิ้น

ขั้นตอนแรก. การผลิตร่างกาย.
เริ่มต้นด้วยการตัดและเจาะแผ่นอะคริลิกตามแบบ จากนั้น แผ่นสีดำด้านหน้าของตัวเครื่องจะติดกาวเข้ากับส่วนที่เชื่อมต่อ (โปร่งใส) และติดกับแผ่นสำหรับไฟ LED

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

ขั้นตอนที่สาม ไฟ LED แทรก
ก่อนอื่น LED จะถูกแทรกเข้าไปในรูแถวแรก (1 แถวต้องใช้ LED 60 ดวง) แคโทดถูกบัดกรีเข้าด้วยกันรอบๆ แผ่นโดยใช้ลวดทองแดง 0.8 มม. และขั้วบวกจะโค้งงอไปด้านข้าง ขั้นตอนนี้ทำซ้ำใน 7 แถวที่เหลือ ตอนนี้แอโนดถูกจัดเรียงเป็นคอลัมน์เดียวแล้ว พวกมันก็ถูกบัดกรีเข้าด้วยกันด้วย ผลลัพธ์ที่ได้คือเมทริกซ์จำนวน 8 แถวและ 60 คอลัมน์

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

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

ขั้นตอนที่หก จ่าย.
จากเขียงหั่นขนมชิ้นหนึ่ง ขนาดใหญ่ขึ้นเกินความจำเป็นให้ตัดเป็น 2 ชิ้นให้พอดีกับกรอบรูป จากนั้นพวกเขาก็สร้างตัวเชื่อมต่อหลายตัวดังที่เห็นในภาพด้านล่าง

ขั้นตอนที่เจ็ด ประกอบนาฬิกา.
ต่อไปจะติดตั้งชิ้นส่วนทั้งหมดเข้ากับตัวเครื่องตามแผนภาพที่แนบมาด้านล่าง ผู้เขียนได้ติดตั้งแบตเตอรี่แบบชาร์จได้ขนาด 1,000mAh ไว้ในนาฬิกาเพื่อให้สามารถทำงานได้โดยไม่ต้องมีแบตเตอรี่ สายเคเบิลภายนอก- ติดตั้งบน Arduino รหัสโปรแกรมที่แนบมาที่ด้านล่างของบทความ ดังนั้นจึงมีการติดตั้งไลบรารีสำหรับโมดูลนาฬิกาเรียลไทม์และไดรเวอร์ LED TLC5940 ซึ่งแนบอยู่ใต้บทความด้วย แผนภาพความละเอียดที่ดี:

หนึ่งในโปรเจ็กต์แรกๆ ที่ผู้เริ่มต้นสร้างโดยใช้บอร์ด Arduino คือ นาฬิกาธรรมดา, นับเวลาถอยหลัง โดยพื้นฐานแล้ว นาฬิกาดังกล่าวจะขึ้นอยู่กับโมดูล RTC (นาฬิกาเรียลไทม์) ที่เชื่อมต่อกับ Arduino ในตลาดวันนี้ ชิ้นส่วนอิเล็กทรอนิกส์มีอยู่ รุ่นที่แตกต่างกัน RTC ที่มีความแม่นยำและราคาแตกต่างกัน รุ่นทั่วไป ได้แก่ DS1302, DS1307, DS3231



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


หลักการทำงานของนาฬิกาดังกล่าวค่อนข้างง่าย ทุกครั้งที่คุณเปิดนาฬิกา Arduino นี้ คุณจะต้องตั้งเวลาปัจจุบันเหมือนกับเวลาอื่นๆ นาฬิกาอะนาล็อก- เป็นการดีกว่าที่จะไม่ใช้นาฬิกาดังกล่าวกับคุณอย่างแน่นอน ชีวิตประจำวันเมื่อมีการใช้งานเป็นเวลานานโดยไม่ต้องรีบูตเครื่องและ การปรับแต่งเพิ่มเติมเนื่องจากยกเลิกการซิงโครไนซ์กับ เวลาปัจจุบันในระหว่างการดำเนินงานระยะยาวอาจมีนัยสำคัญ


นาฬิกานี้สามารถประกอบบนเขียงหั่นขนมทั่วไปได้เนื่องจากไม่ต้องใช้ส่วนประกอบมากมาย ลิงค์หลักของเราที่นี่คือบอร์ด Arduino Uno หากต้องการแสดงเวลาคุณสามารถใช้จอ LCD ขนาด 16x2 หากต้องการเปลี่ยนการตั้งค่าเวลา คุณต้องเชื่อมต่อสองปุ่ม (สำหรับชั่วโมงและนาที) ปุ่มต่างๆ เชื่อมต่อกับ Aduino ผ่านตัวต้านทาน 10KΩ หากต้องการเปลี่ยนความสว่างของจอแสดงผล คุณจะต้องมีโพเทนชิออมิเตอร์ 10 kOhm แผนภาพการเชื่อมต่อของส่วนประกอบทั้งหมดเหล่านี้กับ บอร์ดอาร์ดูโน่ Uno แสดงไว้ด้านล่าง



ตอนนี้คุณต้องตั้งโปรแกรม Arduino รหัสง่ายๆ (ภาพร่าง) ที่ให้คุณแสดงเวลาบนหน้าจอ LCD มีดังต่อไปนี้


#รวม จอแอลซีดีคริสตัลเหลว (12,11,5,4,3,2); อินท์เอช=12; อินท์เอ็ม; อินท์ส; ธง int; เวลาอินท์; const inths=8; const int ms=9; สถานะ int1; int state2; การตั้งค่าเป็นโมฆะ() ( lcd.begin(16,2); ) void loop() ( lcd.setCursor(0,0); s=s+1; lcd.print("TIME:"); lcd.print(h ); lcd.print("); lcd.print(");<12)lcd.print("AM"); if(flag==12)lcd.print("PM"); if(flag>12)lcd.print("PM"); ถ้า(ธง==24)ธง=0; ล่าช้า (1,000); จอแอลซีดี.ชัดเจน(); ถ้า(s==60)( s=0; m=m+1; ) ถ้า(m==60) ( m=0; h=h+1; flag=ธง+1; ) ถ้า(h==13 ) (h=1; ) lcd.setCursor(0,1); lcd.print("ขอให้มีวันที่ดี"); //-------เวลา // การตั้งค่า--------// state1=digitalRead(hs); ถ้า (state1==1) (h=h+1; flag=flag+1; if(flag<12)lcd.print("AM"); if(flag==12)lcd.print("PM"); if(flag>12)lcd.print("PM"); ถ้า(ธง==24)ธง=0; ถ้า(h==13)h=1; ) state2=digitalRead(ms); ถ้า(state2==1)( s=0; m=m+1; ) )

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

ขอให้เป็นวันที่ดี. ในบทความวันนี้ เราจะสร้างนาฬิกาไบนารี่ที่ผิดปกติโดยใช้ ใช้ Arduino ของพวกเขา มือ- เมื่อเข้าใจถึงกระบวนการสร้างเช่นนี้แล้ว งานฝีมือในอนาคตคุณจะสามารถทำซ้ำนาฬิกาไบนารีของการออกแบบใดก็ได้

ขั้นตอนที่ 1: นาฬิกาไบนารี่คืออะไร

ก่อนอื่น เรามาจำไว้ว่าเลขฐานสองคืออะไร - นี่คือตัวเลขที่เป็นตัวแทน ระบบไบนารี่แคลคูลัส, ค่าตัวเลขที่ใช้อักขระสองตัวเท่านั้น: 0 (ศูนย์) และ 1 (หนึ่ง)

นาฬิกาไบนารีเป็นนาฬิกาที่แสดงเวลาในรูปแบบไบนารี่ โครงการใช้ไฟ LED 6 คอลัมน์เพื่อแสดงศูนย์และคอลัมน์ แต่ละคอลัมน์จะแสดงหนึ่งหลัก/หลัก ซึ่งเป็นรูปแบบที่เรียกว่า เลขทศนิยมไบนารี(ดีดีซี). แต่ละบรรทัดแสดงถึงกำลังของสอง ตั้งแต่ 2^0 (หรือ 1) ถึง 2^3 (หรือ 8) ดังนั้นสิ่งที่คุณต้องทำเมื่ออ่านข้อมูลจากนาฬิกาคือการรวมค่าของคอลัมน์โดยที่ไฟ LED เปิดอยู่ ตัวอย่างเช่น ในคอลัมน์แรก ไฟ LED ที่ 4 และ 1 จะเปิดขึ้น เพิ่ม 8 ต่อ 1 และรับ 9 (จำนวนวินาทีคือ 9) คอลัมน์ถัดไปคือหนึ่งในสิบของวินาที มีเพียงไฟ LED ดวงที่ 3 เท่านั้นที่สว่างอยู่ในนั้น ความหมายทั่วไปจะเท่ากับ 49 วินาที ซึ่งเท่ากันทุกประการกับนาทีและชั่วโมง โปรดทราบว่านาฬิกาจะแสดงเวลาในรูปแบบ 24 ชั่วโมง

ขั้นตอนที่ 2: ส่วนประกอบ

  • อาร์ดูโน่ มือโปร มินิ 328 5 วีฉันใช้บอร์ดนี้ แต่จริงๆ แล้วคุณสามารถใช้บอร์ดอื่นได้ หากคุณไม่เคยใช้ โปรมินิแล้วคุณอาจจะต้องการ ซี.พี.2102 (โปรแกรมเมอร์)เพื่อเชื่อมต่อบอร์ดกับคอมพิวเตอร์

  • ดี.เอส.1302 - โมดูลนาฬิกาเรียลไทม์;

  • ไฟ LED “อุ่น” กระจาย 20 10 มม(ฉันแนะนำให้คุณนำไปสำรอง);

  • ตัวต้านทาน 20 ตัวที่มีค่าความต้านทาน10Ω;

  • ปุ่มชั้นเชิง 2 ปุ่ม;

  • ตัวต้านทาน 2 ตัวที่มีค่าความต้านทาน 10kΩ (ใช้เป็นตัวต้านทานโหลด)

ขั้นตอนที่ 3: การสร้างต้นแบบ

มาเริ่มสร้างต้นแบบแห่งอนาคตกันดีกว่า งานฝีมือ- โดยพื้นฐานแล้วมันไม่ใช่ เงื่อนไขที่จำเป็นแต่คุณต้องดูว่า LED matrix, Arduino และโมดูลนาฬิกาจะทำงานร่วมกันอย่างไร เมื่อสร้างต้นแบบฉันใช้ อาร์ดูโน่ เมก้าและไฟ LED สีแดงธรรมดา ทุกอย่างทำงานได้ดีตามที่คาดไว้

ขั้นตอนที่ 4: ร่างกาย

กรอบ ผลิตภัณฑ์โฮมเมด(ประกอบด้วยสองซีก ) จะทำมาจากไม้ มันจะดูตัดกันกับพื้นหลังของนาฬิกาไบนารี่และจะให้ งานฝีมือสไตล์ย้อนยุค

ขั้นตอนที่ 5: โครงร่าง

LED จะถูกจัดกลุ่มเป็นเมทริกซ์เพื่อลดจำนวน LED ที่เกี่ยวข้อง หมุดอาร์ดิโน- ในกรณีของเรา มีการจัดสรร 9 พินสำหรับเมทริกซ์ หลังการผลิต เมทริกซ์แอลอีดีประสานพินเข้ากับ Arduino จากนั้นโมดูลนาฬิกา ปุ่มสำหรับตั้งเวลา และสุดท้ายคือแหล่งจ่ายไฟ

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

โค้ดนี้อิงตามตัวอย่างจากโพสต์ Arduino Playground สำหรับโมดูลนาฬิกา DS1302 หลังจากนั้นจึงทำการเปลี่ยนแปลงเพื่อแสดงเวลาบนเมทริกซ์ LED

สวัสดีตอนบ่าย วันนี้ฉันจะแบ่งปันคำแนะนำในการทำนาฬิกาด้วยเทอร์โมมิเตอร์ในห้อง( นาฬิกา Arduino DIY- นาฬิกาเดินต่อไป Arduino UNO, หน้าจอกราฟิก WG12864B ใช้เพื่อแสดงเวลาและอุณหภูมิ เป็นเซ็นเซอร์อุณหภูมิ - ds18b20 ต่างจากนาฬิกาอื่น ๆ ส่วนใหญ่ฉันจะไม่ใช้ RTS (นาฬิกาเรียลไทม์) แต่จะพยายามทำโดยไม่มีโมดูลเพิ่มเติมนี้

วงจร Arduino มีความโดดเด่นด้วยความเรียบง่าย และใครๆ ก็สามารถเริ่มต้นเรียนรู้ Arduino ได้ คุณสามารถอ่านเกี่ยวกับวิธีเชื่อมต่อไลบรารีและแฟลช Arduino ได้ในบทความของเรา

มาเริ่มกันเลย.

เพื่อสร้างนาฬิกานี้เราจะต้อง:

Arduino UNO (หรืออื่นๆ เข้ากันได้กับ Arduinoจ่าย)
- หน้าจอกราฟิกWG12864B
- เซ็นเซอร์อุณหภูมิ ds18b20
- ตัวต้านทาน 4.7 คอม 0.25 W
- ตัวต้านทาน 100 โอห์ม 0.25 W
- ช่องใส่แบตเตอรี่สำหรับแบตเตอรี่ AA จำนวน 4 ก้อน
- กล่องจับคู่
- ไฟล์ละเอียด
- ยาทาเล็บ (สีดำหรือสีทาตัว)
- พลาสติกหรือกระดาษแข็งบางๆ
- เทปพันสายไฟ
- การต่อสายไฟ
- แผงวงจร
- ปุ่ม
- หัวแร้ง
- บัดกรีขัดสน
- เทปสองหน้า

การเตรียมหน้าจอกราฟิก
เมื่อมองแวบแรก การเชื่อมต่อหน้าจอทำให้เกิดปัญหาและความยากลำบากมากมาย แต่ถ้าคุณเข้าใจประเภทของพวกเขาก่อน มันจะง่ายขึ้นและชัดเจนขึ้นมาก มีหน้าจอหลายประเภทและหลายประเภทบนคอนโทรลเลอร์ ks0107/ks0108 โดยทั่วไปหน้าจอทั้งหมดจะแบ่งออกเป็น 4 ประเภท:
ตัวเลือก A: HDM64GS12L-4, Crystalfontz CFAG12864B, Sparkfun LCD-00710CM, NKC Electronics LCD-0022, WinStar WG12864B-TML-T
ตัวเลือก B: HDM64GS12L-5, Lumex LCM-S12864GSF, Futurlec BLUE128X64LCD, AZ แสดง AGM1264F, Displaytech 64128A BC, Adafruit GLCD, DataVision DG12864-88, Topway LM12864LDW, Digitron SG12864J4, 4F, 2, 12864J-1
ตัวเลือก C: เซินเจิ้น Jinghua Displays Co Ltd. JM12864
ตัวเลือก D: Wintek-Cascades WD-G1906G, Wintek - GEN/WD-G1906G/KS0108B, Wintek/WD-G1906G/S6B0108A, TECDIS/Y19061/HD61202, Varitronix/MGLS19264/HD61202

รายการยังไม่ครบนะครับ มีเยอะมาก สิ่งที่พบได้บ่อยที่สุดและในความคิดของฉันสะดวกคือ WG12864B3 V2.0 จอแสดงผลสามารถเชื่อมต่อกับ Arduino ผ่านทางอนุกรมหรือ พอร์ตขนาน- เมื่อใช้งานร่วมกับ Arduino UNO ควรเลือกการเชื่อมต่อผ่าน พอร์ตอนุกรม– จากนั้นเราจะต้องมีเอาต์พุตไมโครคอนโทรลเลอร์เพียง 3 ตัว แทนที่จะเป็นอย่างน้อย 13 เส้นเมื่อเชื่อมต่อผ่านพอร์ตขนาน ทุกอย่างเชื่อมต่อกันค่อนข้างง่าย มีความแตกต่างอีกอย่างหนึ่ง: คุณจะพบตัวเลือกการแสดงผลสองตัวเลือกลดราคาโดยมีโพเทนชิออมิเตอร์ในตัว (เพื่อปรับคอนทราสต์) และไม่มี ฉันเลือกแล้วและฉันแนะนำให้คุณทำเช่นเดียวกันกับอันที่มีอยู่แล้วภายใน


ซึ่งจะช่วยลดจำนวนชิ้นส่วนและเวลาในการบัดกรี นอกจากนี้ยังควรติดตั้งตัวต้านทานจำกัดกระแส 100 โอห์มสำหรับไฟแบ็คไลท์ การต่อไฟ 5 โวลต์โดยตรงอาจมีความเสี่ยงที่ไฟแบ็คไลท์จะไหม้ได้
WG12864B – Arduino UNO
1 (GND) - GND
2 (วีซีซี) - +5V
4 (อาร์เอส) – 10
5 (ขวา/ซ้าย) – 11
6 (จ) – 13
15 (PSB) – GND
19 (BLA) – ผ่านตัวต้านทาน - +5V
20 (BLK) – GND

วิธีที่สะดวกที่สุดคือการประกอบทุกอย่างด้านหลังหน้าจอแล้วดึงสายไฟ 5 เส้นออกมาเชื่อมต่อกับ Arduino UNO ผลลัพธ์ที่ได้ควรมีลักษณะดังนี้:


สำหรับผู้ที่ยังเลือกอยู่ การเชื่อมต่อแบบขนานฉันจะจัดเตรียมตารางการเชื่อมต่อ

และแผนภาพสำหรับหน้าจอตัวเลือก B:



สามารถเชื่อมต่อเซ็นเซอร์หลายตัวเข้ากับสายสื่อสารเส้นเดียวได้ หนึ่งอันก็เพียงพอแล้วสำหรับนาฬิกาของเรา เราเชื่อมต่อสายไฟจากพิน "DQ" ของ ds18b20 กับ "pin 5" ของ Arduino UNO

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


เราเชื่อมต่อดังนี้: เราเชื่อมต่อสายไฟทั่วไปกับปุ่มทั้งสามปุ่มเข้ากับ "GND" ของ Arduino ปุ่มแรกซึ่งใช้เข้าสู่โหมดการตั้งค่าเวลาและสลับตามเวลาและวันที่เชื่อมต่อกับ "พิน 2" ปุ่มที่สองสำหรับเพิ่มค่าคือไปที่ "พิน 3" และปุ่มที่สามคือปุ่มสำหรับลดค่าคือ "พิน 4"

วางมันทั้งหมดเข้าด้วยกัน.
หลีกเลี่ยง ไฟฟ้าลัดวงจร, หน้าจอควรเป็นฉนวน เราพันมันเป็นวงกลมด้วยเทปพันสายไฟและต่อไป กลับแนบไปกับ เทปสองหน้า, ตัดให้ได้ขนาด, แถบวัสดุฉนวน กระดาษแข็งหนาหรือพลาสติกบางก็ใช้ได้ ฉันใช้พลาสติกจากแท็บเล็ตสำหรับกระดาษ ผลลัพธ์จะเป็นดังนี้:


ที่ด้านหน้าของหน้าจอตามขอบเราติดเทปโฟมสองหน้าโดยควรเป็นสีดำ


เชื่อมต่อหน้าจอกับ Arduino:


เราเชื่อมต่อเครื่องหมายบวกจากช่องใส่แบตเตอรี่เข้ากับ "VIN" ของ Arduino เครื่องหมายลบกับ "GND" เราวางไว้ด้านหลัง Arduino ก่อนติดตั้งในกล่องอย่าลืมเชื่อมต่อเซ็นเซอร์อุณหภูมิและบอร์ดด้วยปุ่มต่างๆ


การเตรียมและการกรอกแบบร่าง
เซ็นเซอร์อุณหภูมิต้องใช้ไลบรารี OneWire

เอาต์พุตไปที่หน้าจอดำเนินการผ่านไลบรารี U8glib:

หากต้องการแก้ไขและเติมภาพสเก็ตช์ คุณต้องติดตั้งไลบรารีทั้งสองนี้ มีสองวิธีในการทำเช่นนี้ เพียงคลายไฟล์เก็บถาวรเหล่านี้และวางไฟล์ที่แตกแล้วลงในโฟลเดอร์ "ไลบรารี" ที่อยู่ในโฟลเดอร์การติดตั้ง อาร์ดูโน่ IDE- หรือตัวเลือกที่สองคือการติดตั้งไลบรารีโดยตรงในสภาพแวดล้อมการเขียนโปรแกรม โดยไม่ต้องคลายไฟล์เก็บถาวรที่ดาวน์โหลดมา สภาพแวดล้อม Arduino IDE เลือกเมนู Sketch – รวมไลบรารี ที่ด้านบนสุดของรายการแบบเลื่อนลง ให้เลือก “ไลบรารี Add.Zip” ในกล่องโต้ตอบที่ปรากฏขึ้น ให้เลือกไลบรารีที่คุณต้องการเพิ่ม เปิดเมนู Sketch อีกครั้ง - เชื่อมต่อไลบรารี ที่ด้านล่างสุดของรายการแบบเลื่อนลงคุณจะเห็น ห้องสมุดใหม่- ตอนนี้ไลบรารี่สามารถนำไปใช้ในโปรแกรมได้แล้ว อย่าลืมรีสตาร์ท Arduino IDE หลังจากทั้งหมดนี้

เซ็นเซอร์วัดอุณหภูมิทำงานโดยใช้โปรโตคอล One Wire และมีที่อยู่เฉพาะสำหรับแต่ละอุปกรณ์ - รหัส 64 บิต การค้นหารหัสนี้ทุกครั้งไม่เป็นประโยชน์ ดังนั้นก่อนอื่นคุณต้องเชื่อมต่อเซ็นเซอร์เข้ากับ Arduino จากนั้นอัปโหลดภาพร่างที่พบในเมนู ไฟล์ – ตัวอย่าง – อุณหภูมิดัลลาส – OneWireSearch จากนั้นเปิดเครื่องมือ - Port Monitor Arduino จะต้องค้นหาเซ็นเซอร์ของเรา เขียนที่อยู่และการอ่านอุณหภูมิปัจจุบัน เราคัดลอกหรือเพียงจดที่อยู่ของเซ็นเซอร์ของเรา เปิดภาพร่าง Arduino_WG12864B_Term มองหาบรรทัด:

Byte addr=(0x28, 0xFF, 0xDD, 0x14, 0xB4, 0x16, 0x5, 0x97); // ที่อยู่ของเซ็นเซอร์ของฉัน

เราจดที่อยู่ของเซ็นเซอร์ของคุณไว้ระหว่าง วงเล็บปีกกาแทนที่ที่อยู่ของเซ็นเซอร์ของฉัน

คลังสินค้า:

//u8g.setPrintPos(44, 64); u8g.print(วินาที); // ส่งออกวินาทีเพื่อควบคุมความถูกต้องของการเคลื่อนไหว

ทำหน้าที่แสดงวินาทีถัดจากคำจารึก "ข้อมูล" นี่เป็นสิ่งจำเป็นสำหรับ การติดตั้งที่แม่นยำกาลเวลา
หากนาฬิกาเดินเร็วหรือช้ากว่า คุณควรเปลี่ยนค่าในบรรทัด:

ถ้า (micros() - prevmicros >494000) ( // เปลี่ยนเป็นอย่างอื่นเพื่อแก้ไขให้ถูกต้องคือ 500000

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



มีคำถามหรือไม่?

แจ้งการพิมพ์ผิด

ข้อความที่จะส่งถึงบรรณาธิการของเรา: