วิธีทำนาฬิกาอิเล็กทรอนิกส์แบบง่ายๆด้วยมือของคุณเอง นาฬิกาทำเองบนเมทริกซ์ LED นาฬิกาพร้อมบน Arduino

แม้แต่ในวัยเยาว์ ฉันก็อยากจะประกอบนาฬิกาอิเล็กทรอนิกส์ สำหรับฉันแล้วดูเหมือนว่าการประกอบนาฬิกาคือจุดสูงสุดของทักษะ ด้วยเหตุนี้ ฉันจึงประกอบนาฬิกาพร้อมปฏิทินและนาฬิกาปลุกในซีรีส์ K176 ตอนนี้มันล้าสมัยไปแล้วและฉันต้องการรวบรวมสิ่งที่ทันสมัยกว่านี้ไว้ด้วยกัน หลังจากค้นหาทางอินเทอร์เน็ตมานาน (ฉันไม่เคยคิดเลยว่าฉันจะพอใจได้ยากขนาดนี้;)) ฉันชอบโครงการนี้ ความแตกต่างจากวงจรข้างต้นคือไม่ได้ใช้วงจรไมโครที่หายาก TRIC6V595และอะนาล็อกแบบคอมโพสิตและทรงพลังยิ่งขึ้นบนไมโครวงจร 74HC595และ ULN2003. การแก้ไขไดอะแกรมได้รับด้านล่าง



โครงร่างของสายนาฬิกา LED อิเล็กทรอนิกส์

เรียนคุณผู้เขียนไดอะแกรม OLEDเฟิร์มแวร์ก็เป็นของเขาเช่นกัน นาฬิกาแสดงเวลาปัจจุบัน ปี เดือน และวันในสัปดาห์ รวมถึงอุณหภูมิภายนอกและภายในบ้านด้วยสัญลักษณ์ มีนาฬิกาปลุกแยกกัน 9 ตัว สามารถปรับ (แก้ไข) จังหวะ + - นาทีต่อวัน เลือกความเร็วของเส้น เปลี่ยนความสว่างของไฟ LED ขึ้นอยู่กับช่วงเวลาของวัน

หากไฟฟ้าดับ นาฬิกาจะใช้พลังงานจากเครื่องสร้างประจุไอออน (ความจุ 1 ฟารัดเพียงพอสำหรับ 4 วัน) หรือโดยแบตเตอรี่ ใครชอบบอร์ดก็ออกแบบให้ติดตั้งได้ทั้งคู่ มีเมนูควบคุมที่สะดวกและเข้าใจง่าย (การควบคุมทั้งหมดทำได้โดยใช้เพียงสองปุ่ม) ชิ้นส่วนต่อไปนี้ใช้ในนาฬิกา (ทุกชิ้นส่วนอยู่ในเคส SMD):

ไมโครคอนโทรลเลอร์ ที่เมก้า 16เอ

-
กะการลงทะเบียน 74HC595

-
ชิป ULN2803(แปดกุญแจดาร์ลิงตัน)

-
เซ็นเซอร์อุณหภูมิ DS18B20(ติดตั้งตามคำขอ)

-
ตัวต้านทาน 25 ตัวที่ 75 โอห์ม (ประเภท 0805)

-
ตัวต้านทาน 3 ตัว 4.7kOhm

-
ตัวต้านทาน 2 ตัว 1.5 kOhm

-
ตัวต้านทาน 1 ตัว 3.6 kOhm

-
ตัวเก็บประจุ SMD 6 ตัวความจุ 0.1 uF

-
1 ตัวเก็บประจุ 220 µF

-
ควอตซ์ชั่วโมงที่ความถี่ 32768 เฮิรตซ์

-
เมทริกซ์ 3 ชิ้น ยี่ห้อ 23088-ASR 60x60 มม. - แคโทดทั่วไป

-
ออด 5 โวลต์ใด ๆ



แผงวงจรพิมพ์สำหรับสายฟ้องนาฬิกา LED อิเล็กทรอนิกส์

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


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

ตัวเรือนแบบโฮมเมดสำหรับนาฬิกา LED

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

วีดีโอการทำงานของนาฬิกา

ฉันได้รวบรวมนาฬิกาเหล่านี้ได้สี่เรือนแล้ว และฉันจะมอบนาฬิกาเรือนละเรือนเป็นของขวัญวันเกิดให้กับญาติของฉัน และทุกคนก็ชอบพวกเขามาก หากคุณต้องการสะสมนาฬิกาเรือนนี้และมีคำถามใดๆ คุณสามารถเยี่ยมชมฟอรัมของเราได้ ขอแสดงความนับถือ Voitovich Sergey ( เซอร์เกย์-78 ).

อภิปรายบทความนาฬิกา LED อิเล็กทรอนิกส์

นาฬิกานี้ประกอบบนชิปเซ็ตที่รู้จักกันดี - K176IE18 (ตัวนับไบนารีสำหรับนาฬิกาพร้อมเครื่องกำเนิดสัญญาณกระดิ่ง)

K176IE13 (ตัวนับนาฬิกาพร้อมนาฬิกาปลุก) และ K176ID2 (ตัวแปลงรหัสไบนารีเป็นเจ็ดส่วน)

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

เวลา กดปุ่ม S4 (ตั้งเวลา) ค้างไว้ กดปุ่ม S3 (ชั่วโมง) - เพื่อตั้งชั่วโมง หรือ S2 (นาที) - เพื่อตั้งเวลา

นาที. ในกรณีนี้การอ่านตัวบ่งชี้ที่เกี่ยวข้องจะเริ่มเปลี่ยนด้วยความถี่ 2 Hz จาก 00 เป็น 59 และอีกครั้ง 00 ในช่วงเวลาของการเปลี่ยนแปลง

จาก 59 ถึง 00 ชั่วโมงตัวนับชั่วโมงจะเพิ่มขึ้นหนึ่ง การตั้งเวลาปลุกจะเหมือนกัน คุณเพียงแค่ต้องกดค้างไว้

ปุ่ม S5 (ตั้งปลุก) หลังจากตั้งเวลาปลุกแล้ว คุณต้องกดปุ่ม S1 เพื่อเปิดการปลุก (รายชื่อผู้ติดต่อ

ปิด). ปุ่ม S6 (รีเซ็ต) ใช้เพื่อบังคับให้รีเซ็ตตัวบ่งชี้นาทีเป็น 00 ระหว่างการตั้งค่า LEDs D3 และ D4 มีบทบาท

การแบ่งจุดกระพริบที่ความถี่ 1 Hz ตัวบ่งชี้ดิจิทัลบนไดอะแกรมอยู่ในลำดับที่ถูกต้องเช่น มาก่อน

ตัวระบุชั่วโมง จุดแบ่งสองจุด (LED D3 และ D4) และตัวระบุนาที

นาฬิกาใช้ตัวต้านทาน R6-R12 และ R14-R16 ที่มีกำลังไฟ 0.25W ส่วนที่เหลือ - 0.125W เครื่องสะท้อนเสียงควอตซ์ XTAL1 ที่ความถี่ 32 768Hz -

ยามธรรมดาทรานซิสเตอร์ KT315A สามารถถูกแทนที่ด้วยซิลิคอนพลังงานต่ำของโครงสร้างที่เหมาะสม KT815A - พร้อมทรานซิสเตอร์

กำลังเฉลี่ยที่มีค่าสัมประสิทธิ์การถ่ายโอนกระแสคงที่ฐานอย่างน้อย 40, ไดโอด - ซิลิคอนพลังงานต่ำใด ๆ ทวีตเตอร์ BZ1

ไดนามิกไม่มีเครื่องกำเนิดไฟฟ้าในตัว ความต้านทานของขดลวด 45 โอห์ม ปุ่ม S1 ถูกล็อคตามธรรมชาติ

ตัวบ่งชี้ที่ใช้เป็นสีเขียว TOS-5163AG คุณสามารถใช้ตัวบ่งชี้อื่น ๆ ที่มีแคโทดร่วมได้โดยไม่ลดลง

ความต้านทานของตัวต้านทาน R6-R12 ในรูปคุณสามารถดู pinout ของตัวบ่งชี้นี้ได้ข้อสรุปจะแสดงตามเงื่อนไขเพราะ นำเสนอ

มุมมองจากด้านบน

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

เมื่อใช้เครื่องวัดความถี่ระยะเวลาการสั่นคือ 1 วินาทีที่พิน 4 ของไมโครวงจร U1 การปรับเครื่องกำเนิดไฟฟ้าเมื่อนาฬิกาดำเนินไปจะต้องเสียค่าใช้จ่ายมากขึ้นอย่างมาก

เวลา. คุณอาจต้องปรับความสว่างของ LED D3 และ D4 โดยเลือกความต้านทานของตัวต้านทาน R5 เพื่อให้ทุกอย่าง

ส่องสว่างสม่ำเสมอ กระแสไฟที่ใช้โดยนาฬิกาไม่เกิน 180 mA

นาฬิกาใช้พลังงานจากแหล่งจ่ายไฟแบบธรรมดา ซึ่งประกอบบนตัวป้องกันวงจรไมโครเซอร์กิตเชิงบวก 7809 โดยมีแรงดันเอาต์พุต +9V และกระแสไฟ 1.5A

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

ฉันเลือกโครงการนี้เพราะมันง่าย ทำนาฬิกาของคุณเอง

มาเริ่มกันเลยเราต้องการอะไรเพื่อสร้างนาฬิกาด้วยมือของเราเอง? แน่นอนว่า มือ ทักษะ (ไม่มากด้วยซ้ำ) ในการอ่านไดอะแกรมวงจร หัวแร้ง และชิ้นส่วน นี่คือรายการทั้งหมดที่ฉันใช้:

ควอตซ์ 10 MHz – 1 ชิ้น, ไมโครคอนโทรลเลอร์ ATtiny 2313, ตัวต้านทาน 100 โอห์ม – 8 ชิ้น, 3 ชิ้น 10 kOhm, 2 ตัวเก็บประจุ 22 pF, 4 ทรานซิสเตอร์, 2 ปุ่ม, ไฟ LED KEM-5641-ASR 4 บิต (RL-F5610SBAW/D15) ฉันทำการติดตั้งบน PCB ด้านเดียว

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

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

นาฬิกาอิเล็กทรอนิกส์ที่ทำตามรูปแบบข้างต้น แสดงได้เฉพาะเวลา (ชั่วโมงและนาที) และวินาทีจะแสดงด้วยจุดระหว่างส่วนต่างๆซึ่งกำลังกะพริบ ในการควบคุมโหมดการทำงานของนาฬิกา โครงสร้างจะจัดให้มีสวิตช์ปุ่มกดซึ่งควบคุมการตั้งค่าชั่วโมงและนาที วงจรนี้ใช้พลังงานจากแหล่งจ่ายไฟ 5V ในระหว่างการผลิตแผงวงจรพิมพ์ ได้มีการรวมซีเนอร์ไดโอด 5V ไว้ในวงจรด้วย

เนื่องจากฉันมีแหล่งจ่ายไฟ 5V ฉันจึงแยกซีเนอร์ไดโอดออกจากวงจร

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

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

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

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

และนี่คือลักษณะของบอร์ดที่มีชิ้นส่วนบัดกรี

สวัสดีชาว geektimes! ส่วนแรกของบทความกล่าวถึงหลักการในการได้รับเวลาที่แม่นยำบนนาฬิกาแบบโฮมเมด เรามาดูกันดีกว่าว่าจะแสดงอย่างไรและดีกว่ากันในครั้งนี้

1. อุปกรณ์เอาท์พุต

ดังนั้นเราจึงมีแพลตฟอร์มบางอย่าง (Arduino, Raspberry, คอนโทรลเลอร์ PIC/AVR/STM ฯลฯ) และงานคือการเชื่อมต่อตัวบ่งชี้บางอย่างเข้ากับแพลตฟอร์มดังกล่าว มีตัวเลือกมากมายที่เราจะพิจารณา

การแสดงส่วน

ทุกอย่างเรียบง่ายที่นี่ ตัวบ่งชี้ส่วนประกอบด้วยไฟ LED ธรรมดาซึ่งเชื่อมต่อกับไมโครคอนโทรลเลอร์ผ่านตัวต้านทานดับ

ระวังการจราจร!

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

มีบทความ 1,001 บทความเกี่ยวกับวิธีเชื่อมต่อ LED กับไมโครคอนโทรลเลอร์ Google สามารถช่วยได้ ความยากลำบากเริ่มต้นขึ้นเมื่อเราต้องการสร้างนาฬิกาขนาดใหญ่ ท้ายที่สุดแล้ว การดูตัวบ่งชี้ขนาดเล็กนั้นไม่สะดวกอย่างยิ่ง จากนั้นเราต้องการตัวบ่งชี้ต่อไปนี้ (ภาพจาก eBay):

ใช้พลังงานจาก 12V และจะไม่ทำงานโดยตรงจากไมโครคอนโทรลเลอร์ นี่คือจุดที่ไมโครเซอร์กิตเข้ามาช่วยเหลือเรา ซีดี4511เพียงเพื่อการนี้เท่านั้น ไม่เพียงแปลงข้อมูลจากเส้น 4 บิตเป็นตัวเลขที่ต้องการ แต่ยังมีสวิตช์ทรานซิสเตอร์ในตัวเพื่อจ่ายแรงดันไฟฟ้าให้กับตัวบ่งชี้ ดังนั้นในวงจรเราจะต้องมีแรงดันไฟฟ้า "พลังงาน" ที่ 9-12V และตัวแปลงสเต็ปดาวน์แยกต่างหาก (เช่น L7805) เพื่อจ่ายไฟให้กับ "ตรรกะ" ของวงจร

ตัวชี้วัดเมทริกซ์

โดยพื้นฐานแล้ว ไฟ LED เหล่านี้เป็น LED เดียวกัน ในรูปแบบเมทริกซ์ 8x8 เท่านั้น ภาพถ่ายจากอีเบย์:

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

ไฟแสดงสถานะ LCD

ตัวแสดงสถานะ LCD อาจเป็นกราฟิกหรือข้อความก็ได้

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

การทำงานกับตัวบ่งชี้ LCD จากโค้ดนั้นไม่ใช่เรื่องยาก แต่มีข้อเสียบางประการ - ตัวบ่งชี้ต้องใช้สายควบคุมจำนวนมาก (ตั้งแต่ 7 ถึง 12) จากไมโครคอนโทรลเลอร์ซึ่งไม่สะดวก ดังนั้นชาวจีนจึงเกิดแนวคิดที่จะรวมตัวบ่งชี้ LCD เข้ากับคอนโทรลเลอร์ i2c ซึ่งท้ายที่สุดก็สะดวกมาก - เพียง 4 สายก็เพียงพอที่จะเชื่อมต่อ (ภาพถ่ายจาก eBay)


จอ LCD มีราคาค่อนข้างถูก (ถ้าซื้อจาก eBay) มีขนาดใหญ่ เชื่อมต่อง่าย และสามารถแสดงข้อมูลได้หลากหลาย ข้อเสียอย่างเดียวคือมุมมองไม่ใหญ่มาก

ตัวบ่งชี้ OLED

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

จริงๆแล้วดีทุกอย่างยกเว้นราคา สำหรับตัวบ่งชี้ขนาดเล็กที่มีขนาด 0.9-1.1" (ยกเว้นสำหรับการเรียนรู้วิธีทำงานกับ i2c) เป็นการยากที่จะหาการใช้งานจริงสำหรับตัวบ่งชี้เหล่านั้น

ตัวบ่งชี้การปล่อยก๊าซ (IN-14, IN-18)

ปัจจุบัน ไฟบอกสถานะเหล่านี้ได้รับความนิยมอย่างมาก เนื่องมาจาก "เสียงของแสงจากหลอดอุ่น" และความสร้างสรรค์ของการออกแบบ


(ภาพจาก nocrotec.com)

แผนภาพการเชื่อมต่อค่อนข้างซับซ้อนกว่าเพราะว่า ตัวบ่งชี้เหล่านี้ใช้แรงดันไฟฟ้า 170V ในการจุดระเบิด ตัวแปลงจาก 12V=>180V สามารถสร้างบนวงจรขนาดเล็กได้ แม็กซ์771. วงจรไมโครโซเวียตใช้เพื่อจ่ายแรงดันไฟฟ้าให้กับตัวบ่งชี้ K155ID1ซึ่งสร้างขึ้นเพื่อการนี้โดยเฉพาะ ราคาปัญหาสำหรับการผลิตด้วยตนเอง: ประมาณ 500 รูเบิลสำหรับแต่ละตัวบ่งชี้และ 100 รูเบิลสำหรับ K155ID1 ส่วนอื่น ๆ ทั้งหมดดังที่พวกเขาเขียนไว้ในนิตยสารเก่า ๆ "ไม่ได้ขาดแคลน" ปัญหาหลักที่นี่คือทั้ง IN-xx และ K155ID1 เลิกผลิตไปนานแล้วและคุณสามารถซื้อได้ที่ตลาดวิทยุหรือในร้านค้าเฉพาะบางแห่งเท่านั้น

2. การเลือกแพลตฟอร์ม

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

อาร์ดูโน่

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

มีไลบรารีต่างๆ จำนวนมากสำหรับ Arduino (ตัวอย่างเช่น สำหรับหน้าจอ LCD เดียวกัน โมดูลเรียลไทม์) Arduino เป็นฮาร์ดแวร์ที่เข้ากันได้กับโมดูลเพิ่มเติมต่างๆ
ข้อเสียเปรียบหลัก: ความยากในการดีบัก (ผ่านคอนโซลพอร์ตอนุกรมเท่านั้น) และโปรเซสเซอร์ที่ค่อนข้างอ่อนแอตามมาตรฐานสมัยใหม่ (2KB RAM และ 16MHz)
ข้อได้เปรียบหลัก: คุณสามารถทำสิ่งต่าง ๆ ได้มากมายโดยไม่ต้องยุ่งยากกับการบัดกรีซื้อโปรแกรมเมอร์และแผงสายไฟ คุณเพียงแค่ต้องเชื่อมต่อโมดูลเข้าด้วยกัน

โปรเซสเซอร์ STM 32 บิต

สำหรับผู้ที่ต้องการบางสิ่งที่ทรงพลังกว่านี้ ก็มีบอร์ดสำเร็จรูปพร้อมโปรเซสเซอร์ STM เช่น บอร์ดที่มี STM32F103RBT6 และหน้าจอ TFT ภาพถ่ายจากอีเบย์:

ที่นี่เรามีการดีบักเต็มรูปแบบใน IDE เต็มรูปแบบแล้ว (จากทั้งหมดที่แตกต่างกัน ฉันชอบ Coocox IDE มากที่สุด) อย่างไรก็ตาม เราจะต้องมีโปรแกรมเมอร์-ดีบักเกอร์ ST-LINK แยกต่างหากพร้อมตัวเชื่อมต่อ JTAG (ปัญหา ราคาอยู่ที่ 20-40 ดอลลาร์บนอีเบย์) หรือคุณสามารถซื้อบอร์ดพัฒนา STM32F4Discovery ซึ่งมีโปรแกรมเมอร์นี้ติดตั้งอยู่แล้วและสามารถใช้งานแยกกันได้

ราสเบอร์รี่ PI

และสุดท้าย สำหรับผู้ที่ต้องการผสานรวมเข้ากับโลกสมัยใหม่อย่างเต็มรูปแบบ มีคอมพิวเตอร์บอร์ดเดี่ยวพร้อม Linux ซึ่งทุกคนคงรู้จักอยู่แล้ว - Raspberry PI ภาพถ่ายจากอีเบย์:

นี่คือคอมพิวเตอร์ที่มีคุณสมบัติครบถ้วนพร้อม Linux, RAM กิกะไบต์และโปรเซสเซอร์ 4 คอร์บนเครื่อง แผงพินจำนวน 40 พินอยู่ที่ขอบของบอร์ด ทำให้คุณสามารถเชื่อมต่ออุปกรณ์ต่อพ่วงต่างๆ ได้ (พินหาได้จากโค้ด เช่น ใน Python ไม่ต้องพูดถึง C/C++) นอกจากนี้ยังมี USB มาตรฐานในรูปแบบ ตัวเชื่อมต่อ 4 ตัว (คุณสามารถเชื่อมต่อ WiFi) นอกจากนี้ยังมี HDMI มาตรฐาน
พลังของบอร์ดนั้นเพียงพอแล้ว ไม่เพียงแต่จะแสดงเวลาเท่านั้น แต่ยังเรียกใช้เซิร์ฟเวอร์ HTTP เพื่อตั้งค่าพารามิเตอร์ผ่านเว็บอินเตอร์เฟส โหลดพยากรณ์อากาศผ่านอินเทอร์เน็ต และอื่นๆ โดยทั่วไปแล้ว มีที่ว่างมากมายสำหรับการบินแห่งจินตนาการ

มีปัญหาเพียงอย่างเดียวกับโปรเซสเซอร์ Raspberry (และ STM32) - พินใช้ตรรกะ 3-V และอุปกรณ์ภายนอกส่วนใหญ่ (เช่น หน้าจอ LCD) ทำงานในลักษณะ "ล้าสมัย" จาก 5V แน่นอน คุณสามารถเชื่อมต่อด้วยวิธีนี้ และโดยหลักการแล้วมันจะได้ผล แต่นี่ไม่ใช่วิธีที่ถูกต้องนัก และเป็นเรื่องน่าเสียดายที่จะทำลายกระดานราคา 50 ดอลลาร์ วิธีที่ถูกต้องคือการใช้ "ตัวแปลงระดับลอจิก" ซึ่งมีราคาเพียง 1-2 ดอลลาร์บน eBay
ภาพถ่ายจากอีเบย์:

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

อีพีเอส8266

วิธีการนี้ค่อนข้างแปลกใหม่ แต่ค่อนข้างมีแนวโน้มเนื่องจากความกะทัดรัดและต้นทุนในการแก้ปัญหาต่ำ ด้วยเงินเพียงเล็กน้อย (ประมาณ 4-5 เหรียญสหรัฐบน eBay) คุณสามารถซื้อโมดูล ESP8266 ที่มีโปรเซสเซอร์และ WiFi บนเครื่องได้
ภาพถ่ายจากอีเบย์:

เริ่มแรกโมดูลดังกล่าวมีจุดประสงค์เพื่อเป็นสะพาน WiFi สำหรับการแลกเปลี่ยนผ่านพอร์ตอนุกรม แต่ผู้ที่ชื่นชอบได้เขียนเฟิร์มแวร์ทางเลือกมากมายที่อนุญาตให้ทำงานกับเซ็นเซอร์ อุปกรณ์ i2c, PWM ฯลฯ ในทางสมมุติฐานค่อนข้างเป็นไปได้ที่จะรับเวลาจาก เซิร์ฟเวอร์ NTP และส่งออกผ่าน i2c ไปยังจอแสดงผล สำหรับผู้ที่ต้องการเชื่อมต่ออุปกรณ์ต่อพ่วงต่าง ๆ มากมาย มีบอร์ด NodeMCU พิเศษที่มีพินจำนวนมาก ราคาประมาณ 500 รูเบิล (แน่นอนบน eBay):

ข้อเสียอย่างเดียวคือ ESP8266 มี RAM น้อยมาก (ขึ้นอยู่กับเฟิร์มแวร์ตั้งแต่ 1 ถึง 32 KB) แต่สิ่งนี้ทำให้งานน่าสนใจยิ่งขึ้น โมดูล ESP8266 ใช้ลอจิก 3V ดังนั้นตัวแปลงระดับด้านบนจะมีประโยชน์เช่นกัน

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

แทนที่จะได้ข้อสรุป

ในที่สุดฉันก็ตัดสินใจใช้ Raspberry PI พร้อมตัวบ่งชี้ข้อความที่กำหนดค่าให้ทำงานกับกราฟิกหลอก (ซึ่งกลายเป็นว่าราคาถูกกว่าหน้าจอกราฟิกที่มีเส้นทแยงมุมเดียวกัน) ฉันถ่ายรูปหน้าจอนาฬิกาตั้งโต๊ะขณะเขียนบทความนี้

นาฬิกาแสดงเวลาที่แน่นอนที่นำมาจากอินเทอร์เน็ตและสภาพอากาศได้รับการอัปเดตจาก Yandex ทั้งหมดนี้เขียนด้วย Python และทำงานได้ค่อนข้างดีมาหลายเดือนแล้ว ในขณะเดียวกัน เซิร์ฟเวอร์ FTP กำลังทำงานบนนาฬิกา ซึ่งช่วยให้ (ควบคู่ไปกับการส่งต่อพอร์ตบนเราเตอร์) อัปเดตเฟิร์มแวร์ได้ไม่เพียงแต่จากที่บ้าน แต่ยังรวมถึงจากทุกที่ที่มีอินเทอร์เน็ตด้วย โดยหลักการแล้ว ทรัพยากร Raspberry นั้นเพียงพอที่จะเชื่อมต่อกล้องและ/หรือไมโครโฟนที่มีความสามารถในการตรวจสอบอพาร์ทเมนต์จากระยะไกล หรือเพื่อควบคุมโมดูล/รีเลย์/เซ็นเซอร์ต่างๆ คุณสามารถเพิ่ม "สารพัด" ได้ทุกประเภท เช่น ไฟ LED แสดงสถานะจดหมายขาเข้า และอื่นๆ

PS: ทำไมต้องอีเบย์?
อย่างที่คุณเห็น มีการแจ้งราคาหรือรูปถ่ายจาก eBay สำหรับอุปกรณ์ทั้งหมด ทำไมเป็นอย่างนั้น? น่าเสียดายที่ร้านค้าของเรามักจะดำเนินตามหลักการ “ซื้อราคา 1 ดอลลาร์ ขายได้ 3 ดอลลาร์ และใช้ชีวิตด้วยเงิน 2 เปอร์เซ็นต์นั้น” ตัวอย่างง่ายๆ ราคา Arduino Uno R3 (ณ เวลาที่เขียน) 3,600 รูเบิลในเซนต์ปีเตอร์สเบิร์กและ 350 รูเบิลบน eBay พร้อมจัดส่งฟรีจากจีน ความแตกต่างนั้นเป็นลำดับความสำคัญอย่างแท้จริง โดยไม่มีการพูดเกินจริงทางวรรณกรรมใดๆ ใช่คุณจะต้องรอหนึ่งเดือนเพื่อรับพัสดุที่ที่ทำการไปรษณีย์ แต่ฉันคิดว่าราคาที่แตกต่างกันนั้นคุ้มค่า อย่างไรก็ตามหากมีคนต้องการมันในตอนนี้และเร่งด่วนก็อาจมีทางเลือกในร้านค้าในพื้นที่ทุกคนตัดสินใจเองที่นี่

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

1. นาฬิกา - ปฏิทิน:

    การนับและแสดงชั่วโมง นาที วินาที วันในสัปดาห์ วัน เดือน ปี

    ความพร้อมของการปรับเวลาปัจจุบันอัตโนมัติซึ่งดำเนินการทุก ๆ ชั่วโมง (ค่าสูงสุด +/-9999 หน่วย 1 หน่วย = 3.90625 ms.)

    การคำนวณวันในสัปดาห์จากวันที่ (สำหรับศตวรรษปัจจุบัน)

    การเปลี่ยนระหว่างเวลาฤดูร้อนและฤดูหนาวอัตโนมัติ (สามารถปิดได้)

  • ปีอธิกสุรทินจะถูกนำมาพิจารณาด้วย

2. นาฬิกาปลุกแยกอิสระ 2 ตัว (มีเสียงเพลงดังขึ้นเมื่อเปิดใช้งาน)
3. จับเวลาโดยเพิ่มทีละ 1 วินาที (เวลานับสูงสุด 99 ชม. 59 น. 59 วินาที)
4. นาฬิกาจับเวลาแบบ 2 ช่อง ความละเอียดในการนับ 0.01 วินาที (เวลานับสูงสุด 99 ชม. 59 น. 59 วินาที)
5. นาฬิกาจับเวลาความละเอียดการนับ 1 วินาที (นับเวลาสูงสุด 99 วัน)
6. เทอร์โมมิเตอร์ในช่วง -5°C สูงถึง 55°C (จำกัดโดยช่วงอุณหภูมิการทำงานปกติของอุปกรณ์) โดยเพิ่มขึ้นครั้งละ 0.1°C
7. เครื่องอ่านและโปรแกรมจำลองกุญแจอิเล็กทรอนิกส์ - แท็บเล็ตประเภท DS1990 โดยใช้โปรโตคอล Dallas 1-Wire (หน่วยความจำ 50 ชิ้นซึ่งมี "ปุ่มทุกพื้นที่" สากลหลายอันอยู่แล้ว) พร้อมความสามารถในการดูรหัสคีย์แบบไบต์ต่อไบต์ .
8. รีโมทคอนโทรล IR (ใช้เฉพาะคำสั่ง "ถ่ายภาพ") สำหรับกล้องดิจิตอล "Pentax", "Nikon", "Canon"
9. ไฟฉาย LED
10. 7 ท่วงทำนอง
11. สัญญาณเสียงต้นชั่วโมงทุกชั่วโมง (สามารถปิดได้)
12. เสียงยืนยันการกดปุ่ม (สามารถปิดได้)
13. การตรวจสอบแรงดันแบตเตอรี่ด้วยฟังก์ชันการสอบเทียบ
14. การปรับความสว่างของตัวบ่งชี้ดิจิตอล

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

แผนผังของนาฬิกา

อุปกรณ์นี้สร้างขึ้นบนไมโครคอนโทรลเลอร์ ATmega168PA-AU นาฬิกาจะเดินตามตัวจับเวลา T2 ซึ่งทำงานในโหมดอะซิงโครนัสจากนาฬิกาควอทซ์ที่ 32768 Hz ไมโครคอนโทรลเลอร์อยู่ในโหมดสลีปเกือบตลอดเวลา (ไฟแสดงสถานะดับ) ตื่นขึ้นมาวินาทีละครั้งเพื่อเพิ่มวินาทีนี้จากเวลาปัจจุบันและหลับไปอีกครั้ง ในโหมดแอคทีฟ MK จะถูกโอเวอร์คล็อกจาก RC oscillator ภายในที่ 8 MHz แต่พรีสเกลเลอร์ภายในจะหารด้วย 2 ส่งผลให้คอร์โอเวอร์คล็อกที่ 4 MHz สำหรับการบ่งชี้จะใช้ตัวบ่งชี้เจ็ดส่วนดิจิตอล LED หลักเดียวสี่ตัวพร้อมขั้วบวกร่วมและจุดทศนิยม นอกจากนี้ยังมีไฟ LED แสดงสถานะ 7 ดวงซึ่งมีจุดประสงค์ดังต่อไปนี้:
D1- เครื่องหมายค่าลบ (ลบ)
D2- สัญญาณนาฬิกาจับเวลาที่กำลังวิ่ง (กะพริบ)
D3- สัญญาณของการเตือนครั้งแรกที่เปิดอยู่
D4- สัญญาณของการเตือนครั้งที่สองที่กำลังเปิดอยู่
D5- สัญญาณของสัญญาณเสียงทุกต้นชั่วโมง
D6- สัญญาณตัวจับเวลากำลังทำงาน (กะพริบ)
D7- ตัวบ่งชี้แรงดันแบตเตอรี่ต่ำ

R1-R8 - ตัวต้านทานจำกัดกระแสของส่วนของตัวบ่งชี้ดิจิตอล HG1-HG4 และ LEDs D1-D7 R12,R13 – ตัวแบ่งสำหรับตรวจสอบแรงดันแบตเตอรี่ เนื่องจากแรงดันไฟฟ้าของนาฬิกาคือ 3V และ LED D9 สีขาวต้องใช้กระแสไฟประมาณ 3.4-3.8V จึงไม่เรืองแสงเต็มกำลัง (แต่ก็เพียงพอที่จะหลีกเลี่ยงการสะดุดในความมืด) และดังนั้นจึงเชื่อมต่อโดยไม่มีกระแสไฟฟ้า - ตัวต้านทานจำกัด องค์ประกอบ R14, Q1, R10 ได้รับการออกแบบมาเพื่อควบคุม LED อินฟราเรด D8 (การใช้งานรีโมทคอนโทรลสำหรับกล้องดิจิตอล) R19, ​​​​R20, R21 ใช้สำหรับจับคู่เมื่อสื่อสารกับอุปกรณ์ที่มีอินเทอร์เฟซ 1-Wire การควบคุมทำได้โดยใช้ปุ่มสามปุ่มซึ่งฉันเรียกตามอัตภาพ: MODE (โหมด), ขึ้น (ขึ้น), ลง (ลง) อันแรกได้รับการออกแบบให้ปลุก MK โดยการขัดจังหวะภายนอก (ในกรณีนี้ตัวบ่งชี้จะเปิดขึ้น) ดังนั้นจึงเชื่อมต่อแยกต่างหากกับอินพุต PD3 การกดปุ่มที่เหลือถูกกำหนดโดยใช้ ADC และตัวต้านทาน R16, R18 หากไม่กดปุ่มภายใน 16 วินาที MK จะเข้าสู่โหมดสลีปและไฟแสดงสถานะจะดับลง เมื่ออยู่ในโหมด “การควบคุมระยะไกลสำหรับกล้อง”ช่วงเวลานี้คือ 32 วินาทีและเมื่อเปิดไฟฉาย - 1 นาที MK สามารถเข้าสู่โหมดสลีปได้ด้วยตนเองโดยใช้ปุ่มควบคุม เมื่อนาฬิกาจับเวลาทำงานด้วยความละเอียดการนับ 0.01 วินาที อุปกรณ์ไม่เข้าสู่โหมดสลีป

แผงวงจรพิมพ์

อุปกรณ์นี้ประกอบอยู่บนแผงวงจรพิมพ์สองด้านที่มีรูปร่างเป็นวงกลมซึ่งมีขนาดเท่ากับเส้นผ่านศูนย์กลางด้านในของตัวเรือนนาฬิกาข้อมือ แต่ในการผลิตฉันใช้บอร์ดด้านเดียวสองอันที่มีความหนา 0.35 มม. ความหนานี้ได้มาอีกครั้งโดยการลอกออกจากลามิเนตไฟเบอร์กลาสสองด้านที่มีความหนา 1.5 มม. จากนั้นจึงนำกระดานมาติดกาวเข้าด้วยกัน ทั้งหมดนี้เกิดขึ้นเพราะฉันไม่มีไฟเบอร์กลาสสองหน้าบางๆ และความหนาทุกๆ มิลลิเมตรที่ประหยัดในพื้นที่ภายในที่จำกัดของตัวเรือนนาฬิกานั้นมีค่ามาก และไม่จำเป็นต้องจัดตำแหน่งในการผลิตตัวนำพิมพ์โดยใช้ LUT วิธี. แบบร่างแผงวงจรและตำแหน่งชิ้นส่วนอยู่ในไฟล์แนบ ด้านหนึ่งมีตัวบ่งชี้และตัวต้านทานจำกัดกระแส R1-R8 ด้านหลังมีรายละเอียดอื่นๆ ทั้งหมด มีรูทะลุสองรูสำหรับไฟ LED สีขาวและอินฟราเรด

หน้าสัมผัสปุ่มและที่ใส่แบตเตอรี่ทำจากเหล็กแผ่นสปริงยืดหยุ่นที่มีความหนา 0.2...0.3 มม. และกระป๋อง ด้านล่างนี้เป็นรูปถ่ายของกระดานจากทั้งสองด้าน:

การออกแบบ ชิ้นส่วน และการเปลี่ยนที่เป็นไปได้

ไมโครคอนโทรลเลอร์ ATmega168PA-AU สามารถเปลี่ยนได้ด้วย ATmega168P-AU, ATmega168V-10AU ATmega168-20AU ไฟบอกสถานะดิจิตอล - KPSA02-105 เรืองแสงสีแดงสว่างเป็นพิเศษ 4 ชิ้น ความสูงตัวเลข 5.08 มม. สามารถจ่ายได้จากซีรีส์เดียวกัน KPSA02-xxx หรือ KCSA02-xxx (ไม่ใช่สีเขียว - พวกมันจะเรืองแสงจาง ๆ ) ฉันไม่รู้จักอะนาล็อกอื่นที่มีขนาดใกล้เคียงกันและมีความสว่างที่เหมาะสม ใน HG1, HG3 การเชื่อมต่อของส่วนแคโทดจะแตกต่างจาก HG2, HG4 เนื่องจากสะดวกกว่าสำหรับฉันในการเดินสายแผงวงจรพิมพ์ ในเรื่องนี้มีการใช้ตารางตัวสร้างอักขระที่แตกต่างกันในโปรแกรม ตัวต้านทานและตัวเก็บประจุ SMD ใช้สำหรับการติดตั้งบนพื้นผิวขนาดมาตรฐาน 0805 และ 1206, LEDs D1-D7 ขนาดมาตรฐาน 0805 ไฟ LED สีขาวและอินฟราเรดที่มีเส้นผ่านศูนย์กลาง 3 มม. บอร์ดมีรูทะลุ 13 รูที่ต้องติดตั้งจัมเปอร์ DS18B20 ที่มีอินเทอร์เฟซ 1 สายใช้เป็นเซ็นเซอร์อุณหภูมิ LS1 เป็นทวีตเตอร์แบบเพียโซอิเล็กทริกทั่วไปที่เสียบอยู่ในฝา ด้วยหน้าสัมผัสอันหนึ่งจะเชื่อมต่อกับบอร์ดโดยใช้สปริงที่ติดตั้งอยู่ ส่วนอีกอันจะเชื่อมต่อกับตัวเรือนนาฬิกาโดยใช้ฝาครอบ เครื่องสะท้อนเสียงควอตซ์จากนาฬิกาข้อมือ

การเขียนโปรแกรม เฟิร์มแวร์ ฟิวส์

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

ฉันใช้มันเพราะในระหว่างกระบวนการแก้ไขข้อบกพร่องฉันต้อง reflash MK หลายครั้ง เมื่อกระพริบเฟิร์มแวร์ครั้งเดียว จะเป็นการง่ายกว่าที่จะบัดกรีสายไฟบาง ๆ ที่เชื่อมต่อกับโปรแกรมเมอร์เข้ากับแพตช์แล้วจึงทำการบัดกรีอีกครั้ง จะสะดวกกว่าในการแฟลช MK โดยไม่ต้องใช้แบตเตอรี่ แต่เพื่อให้พลังงานมาจากแหล่ง +3V ภายนอกหรือจากโปรแกรมเมอร์ที่มีแรงดันไฟฟ้าเท่ากัน โปรแกรมนี้เขียนด้วยแอสเซมเบลอร์ในสภาพแวดล้อม VMLAB 3.15 ซอร์สโค้ด เฟิร์มแวร์สำหรับ FLASH และ EEPROM ในแอปพลิเคชัน

บิต FUSE ของไมโครคอนโทรลเลอร์ DD1 จะต้องถูกตั้งโปรแกรมดังนี้:
CKSEL3...0 = 0010 - การตอกบัตรจาก RC oscillator ภายใน 8 MHz;
SUT1...0 =10 - เวลาเริ่มต้น: 6 CK + 64 ms;
CKDIV8 = 1 - ปิดใช้งานตัวแบ่งความถี่ด้วย 8
CKOUT = 1 - นาฬิกาเอาท์พุตเมื่อ CKOUT ปิดใช้งาน;
BODLEVEL2…0 = 111 - การควบคุมแรงดันไฟฟ้าของแหล่งจ่ายถูกปิดใช้งาน
EESAVE = 0 - การลบ EEPROM เมื่อห้ามตั้งโปรแกรมคริสตัล
WDTON = 1 - Watchdog Timer ไม่ได้เปิดอยู่เสมอ
บิต FUSE ที่เหลือควรปล่อยให้ไม่ถูกแตะต้อง บิต FUSE จะถูกตั้งโปรแกรมไว้หากตั้งค่าเป็น "0"

จำเป็นต้องมีการแฟลช EEPROM โดยมีดัมพ์รวมอยู่ในไฟล์เก็บถาวร

เซลล์แรกของ EEPROM มีพารามิเตอร์เริ่มต้นของอุปกรณ์ ตารางด้านล่างอธิบายวัตถุประสงค์บางประการ ซึ่งสามารถเปลี่ยนแปลงได้ภายในขอบเขตที่สมเหตุสมผล

ที่อยู่เซลล์

วัตถุประสงค์

พารามิเตอร์

บันทึก

ปริมาณแรงดันไฟฟ้าของแบตเตอรี่ที่เกิดสัญญาณระดับต่ำ

260 ($104) (2.6V)

ค่าสัมประสิทธิ์สำหรับการแก้ไขค่าแรงดันไฟฟ้าของแบตเตอรี่ที่วัดได้

ช่วงเวลาในการสลับไปยังโหมดสลีป

1 ยูนิต = 1 วินาที

ช่วงเวลาในการสลับไปยังโหมดสลีปเมื่อเปิดไฟฉาย

1 ยูนิต = 1 วินาที

ช่วงเวลาในการสลับไปยังโหมดสลีปเมื่ออยู่ในโหมดรีโมทคอนโทรลสำหรับกล้อง

1 ยูนิต = 1 วินาที

หมายเลขคีย์ IButton จะถูกเก็บไว้ที่นี่

คำอธิบายเล็กๆ น้อยๆ เกี่ยวกับประเด็นต่างๆ:

1 คะแนน ข้อมูลนี้ระบุระดับแรงดันไฟฟ้าของแบตเตอรี่ที่ LED จะสว่างขึ้น โดยระบุค่าต่ำ ฉันตั้งค่าเป็น 2.6V (พารามิเตอร์ - 260) หากคุณต้องการอย่างอื่น เช่น 2.4V คุณต้องเขียน 240 ($00F0) ไบต์ต่ำจะถูกเก็บไว้ในเซลล์ตามที่อยู่ $0000 และไบต์สูงจะถูกเก็บไว้ใน $0001

2 จุด เนื่องจากฉันไม่ได้ติดตั้งตัวต้านทานแบบแปรผันบนบอร์ดเพื่อปรับความแม่นยำของการวัดแรงดันไฟฟ้าของแบตเตอรี่เนื่องจากไม่มีพื้นที่ ฉันจึงแนะนำการปรับเทียบซอฟต์แวร์ ขั้นตอนการสอบเทียบสำหรับการวัดที่แม่นยำมีดังนี้: เริ่มแรกค่าสัมประสิทธิ์ 1,024 ($400) ถูกเขียนในเซลล์ EEPROM นี้ คุณต้องเปลี่ยนอุปกรณ์เป็นโหมดแอคทีฟและดูแรงดันไฟฟ้าบนตัวบ่งชี้จากนั้นจึงวัดแรงดันไฟฟ้าจริงบน แบตเตอรี่พร้อมโวลต์มิเตอร์ ปัจจัยการแก้ไข (K) ที่ต้องตั้งค่าคำนวณโดยสูตร: K=Uр/Ui*1024 โดยที่ Uр คือแรงดันไฟฟ้าจริงที่วัดโดยโวลต์มิเตอร์ Ui คือแรงดันไฟฟ้าที่วัดโดยตัวอุปกรณ์เอง หลังจากคำนวณค่าสัมประสิทธิ์ "K" แล้วให้ป้อนลงในอุปกรณ์ (ตามที่ระบุไว้ในคู่มือการใช้งาน) หลังจากการสอบเทียบ ข้อผิดพลาดของฉันไม่เกิน 3%

3 จุด ที่นี่คุณสามารถตั้งเวลาที่อุปกรณ์จะเข้าสู่โหมดสลีปหากไม่มีการกดปุ่มใด ๆ เหมืองมีค่าใช้จ่าย 16 วินาที ตัวอย่างเช่น หากคุณต้องการนอนหลับภายใน 30 วินาที คุณต้องเขียนลงไปว่า 30 ($26)

ในจุดที่ 4 และ 5 เหมือนกัน

6 จุด ที่ที่อยู่ $0030 รหัสตระกูลคีย์ศูนย์ (Dallas 1-Wire) จะถูกจัดเก็บ จากนั้นจึงเป็นหมายเลข 48 บิตและ CRC และอีก 50 คีย์ตามลำดับ

การตั้งค่าคุณสมบัติการทำงาน

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

อุปกรณ์ใช้พลังงานจากแบตเตอรี่ลิเธียม CR2032 (3V) และสิ้นเปลืองพลังงานประมาณ 4 µA ในโหมดสลีป และ 5...20 mA ในโหมดแอคทีฟ ขึ้นอยู่กับความสว่างของตัวบ่งชี้ เมื่อใช้โหมดแอคทีฟห้านาทีทุกวัน แบตเตอรี่ควรมีอายุการใช้งานประมาณ 2....8 เดือน ขึ้นอยู่กับความสว่าง ตัวเรือนนาฬิกาเชื่อมต่อกับขั้วลบของแบตเตอรี่

การอ่านคีย์ได้รับการทดสอบบน DS1990 การจำลองได้รับการทดสอบบนอินเตอร์คอมของ METAKOM ภายใต้หมายเลขซีเรียลตั้งแต่ 46 ถึง 49 (4 สุดท้าย) ปุ่มสากลสำหรับอินเตอร์คอมจะกะพริบ (ปุ่มทั้งหมดจะถูกเก็บไว้ใน EEPROM โดยสามารถเปลี่ยนได้ก่อนที่จะกระพริบ) รหัสที่ลงทะเบียนภายใต้หมายเลข 49 ได้เปิดอินเตอร์คอมของ METAKOM ทั้งหมดที่ฉันเจอ ฉันไม่มีโอกาสทดสอบคีย์สากลที่เหลือ ฉันรับรหัสจากเครือข่าย

รีโมทคอนโทรลสำหรับกล้องได้รับการทดสอบในรุ่น Pentax optio L20 และ Nikon D3000 ไม่สามารถรับ Canon เพื่อตรวจสอบได้

คู่มือผู้ใช้มีความยาว 13 หน้า ดังนั้นฉันจึงไม่ได้รวมไว้ในบทความ แต่รวมไว้ในภาคผนวกในรูปแบบ PDF

ไฟล์เก็บถาวรประกอบด้วย:
โครงการในและ GIF;
การเขียนแบบของแผงวงจรพิมพ์และการจัดเรียงองค์ประกอบในรูปแบบ
เฟิร์มแวร์และซอร์สโค้ดในแอสเซมเบลอร์

รายชื่อธาตุกัมมันตภาพรังสี

การกำหนด พิมพ์ นิกาย ปริมาณ บันทึกร้านค้าสมุดบันทึกของฉัน
ดีดี1 MK AVR 8 บิต

ATmega168PA

1 PA-AU ไปยังสมุดบันทึก
ยู2 เซ็นเซอร์อุณหภูมิ

DS18B20

1 ไปยังสมุดบันทึก
ไตรมาสที่ 1 ทรานซิสเตอร์มอสเฟต

2N7002

1 ไปยังสมุดบันทึก
ซี1, ซี2 ตัวเก็บประจุ30 พิโคเอฟ2 ไปยังสมุดบันทึก
ซี3,ซี4 ตัวเก็บประจุ0.1 µF2 ไปยังสมุดบันทึก
C5 ตัวเก็บประจุด้วยไฟฟ้า47 ไมโครฟ1 ไปยังสมุดบันทึก
R1-R8, R17 ตัวต้านทาน

100 โอห์ม

9 ไปยังสมุดบันทึก
R9 ตัวต้านทาน

10 kโอห์ม

1 ไปยังสมุดบันทึก
R10 ตัวต้านทาน

8.2 โอห์ม

1 ไปยังสมุดบันทึก
ร11 ตัวต้านทาน

300 โอห์ม

1 ไปยังสมุดบันทึก
ร12 ตัวต้านทาน

2 โมห์ม

1 ไปยังสมุดบันทึก
ร13 ตัวต้านทาน

220 โอห์ม

1 ไปยังสมุดบันทึก
ร14 ตัวต้านทาน

30 kโอห์ม

1 ไปยังสมุดบันทึก
R15, R19 ตัวต้านทาน

4.7 โอห์ม

2 ไปยังสมุดบันทึก
ร16 ตัวต้านทาน

20 โอห์ม

1