สารบัญ:

LCD วันที่/นาฬิกา ลืม RTC: 9 ขั้นตอน
LCD วันที่/นาฬิกา ลืม RTC: 9 ขั้นตอน

วีดีโอ: LCD วันที่/นาฬิกา ลืม RTC: 9 ขั้นตอน

วีดีโอ: LCD วันที่/นาฬิกา ลืม RTC: 9 ขั้นตอน
วีดีโอ: 12.1 การโปรแกรม DS3231 RTC ให้แสดงผลเวลาบน LCD Keypad Shield 2024, พฤศจิกายน
Anonim
LCD วันที่/นาฬิกา ลืม RTC
LCD วันที่/นาฬิกา ลืม RTC

นาฬิกาลอจิกควอนตัม NIST 2010 ที่ใช้อะลูมิเนียมไอออนตัวเดียว

ในปี 2010 การทดลองได้วางนาฬิกาควอนตัมอะลูมิเนียมไอออนสองนาฬิกาไว้ใกล้กัน แต่ด้วยนาฬิกาที่สองที่มีความสูง 12 นิ้ว (30.5 ซม.) เมื่อเทียบกับครั้งแรก ทำให้เห็นเอฟเฟกต์การขยายเวลาโน้มถ่วงในเครื่องชั่งในห้องแล็บทุกวัน ดังนั้นการพิสูจน์ทฤษฎีแรงโน้มถ่วงของไอน์สไตน์ นาฬิกาถูกสลับตำแหน่งและแสดงการชดเชยเวลาเดียวกัน James Chin-wen Chou นักวิจัยหลังปริญญาเอกของ NIST ที่มีนาฬิกาที่แม่นยำที่สุดในโลก โดยอิงจากการสั่นของอะลูมิเนียมไอออนเดี่ยว (อะตอมที่มีประจุไฟฟ้า) ไอออนติดอยู่ภายในกระบอกสูบโลหะ (กลางขวา) เขาบอกว่า 'หมดไป 1 วินาทีใน 3.7 พันล้านปี' …รอดูกัน!

ว้าวสุดยอด

ดังนั้น การใช้การสั่นของควอนตัมที่เร็วมาก คุณคิดว่าเร็วกว่าดีกว่า ชิป 328 ใน Unos นั้นค่อนข้างเร็วที่ 16mhz ที่เร็วกว่าคริสตัลนาฬิกา (นาฬิกา) ทั่วไปที่ 32.768 khz เร็วกว่า 500 เท่า ! และ 328 มีเซ็นเซอร์อุณหภูมิเพื่อชดเชยนาฬิกา

เหตุใด 328 จึงไม่สามารถ preform คริสตัลนาฬิกา Cheep ได้?

ขั้นตอนที่ 1: สิ่งที่คาดหวัง

คาดหวังอะไร
คาดหวังอะไร

นี่เป็นความพยายามครั้งที่สองของฉันในการสร้างนาฬิกาโดยใช้ชิป 328 เท่านั้น แต่ละ 328 ทำงานในเวลาต่างกันแม้ว่าจะมีคริสตัล 16 เมกะเฮิร์ตซ์ ดังนั้นคุณจะได้ผลลัพธ์ที่ไม่ดีเพียงแค่นับมิลลิวินาที () ซึ่งทำงานที่ 1, 000 เฮิร์ตซ์ ทำให้ค่าเฉลี่ยหนึ่งมิลลิวินาที (1) มีค่าประมาณ +- 3.6 วินาทีต่อชั่วโมงแม่นยำ โรงสี Arduino () ไม่นับโรงสีแยกส่วนหรือใช้ทุ่น ทำให้ไม่สามารถนับเศษส่วนของโรงสีได้ ดังนั้นการใช้ Arduino micros() จึงเป็นทางเลือกต่อไป แต่การใช้ micros() จะหมดไปในเวลาเพียง 71 นาที (นี่ไม่ใช่ปัญหาจริงๆ) ปัญหาสำหรับฉันคือการจัดการกับตัวเลขจำนวนมากและทำการปรับเปลี่ยนซ้ำ ๆ โดยอิงตามเวลาที่โอเวอร์คล็อกของ gps อีกทางเลือกหนึ่งคือการขัดจังหวะ นับวินาทีไม่ว่าโค้ดจะทำงานอยู่ที่ใดในลูป สิ่งนี้ทำให้ 328 ดีเท่ากับ RTC แม้ว่าจุดของ 'micros()' จะได้รับการพิจารณา ที่ +-4 uS สิ่งนี้ก็ออกมาเป็นนาฬิกา 250khz ดีกว่า 32.768khz ถึง 7 เท่า

ดังนั้นนี่คือนาฬิกา LCD Arduino ของฉันโดยอิงจากตัวจับเวลา 16 บิตหนึ่งตัวขัดจังหวะโดยใช้ไมโครวินาที ไม่ดีเท่าการนับอะลูมิเนียมไอออน! แต่มันเป็นเรื่องง่ายและด้วยการสอบเทียบบางอย่างก็สามารถทำได้ดีเท่ากับ RTC ฉันได้ทำนาฬิกานี้ 3 รุ่น จากการเชื่อมต่อกับคอมพิวเตอร์ usb ให้ยืนอยู่คนเดียวด้วยปุ่ม 4 ปุ่ม ไปยัง gps ภายนอกที่มีอุณหภูมิโดยใช้ HC12 คำแนะนำนี้จะครอบคลุม 2 นาฬิกาแรกและฉันจะเขียน 'เชิงลึก' อีกอันสำหรับ HC12

ดูคำแนะนำอื่น ๆ ของฉันเกี่ยวกับปัญหาช่วง HC12

สิ่งที่คุณคาดหวังได้คือนาฬิกา/วันที่บนจอ LCD ที่ใช้งานง่ายโดยใช้ UNO และจอ LCD ขนาด 16x2 ฉันสร้างตัวเลขที่กำหนดเองสำหรับจอแอลซีดี ไลบรารี 'หมายเลขใหญ่' ใช้พื้นที่ 3 ช่องว่าง ของฉันเพียง 1 ปุ่ม 4 ปุ่มมีการดึงขึ้นภายใน ดังนั้นการสร้างจึงง่าย ฉันมีเคสสำหรับสิ่งนี้และ 2 จอ LCD และด้านหลัง

ห้องสมุดสาธารณะในเมืองเล็กๆ ของฉันมีเครื่องพิมพ์ 3 มิติที่ใครๆ ก็ใช้ได้ ลองดูห้องสมุดใกล้บ้านคุณเพื่อทำเคส LCD

การทดสอบของฉันแสดง -+ วินาทีทุก 24-48 ชั่วโมง นั่นคือประมาณหนึ่งนาทีในสองเดือน การปรับสามหรือสี่ครั้งทำให้จุดนาฬิกาบน ปิดเพียงประมาณ 12 วินาทีก่อน MONTH พยายาม 'ปรับเทียบ' ตะเข็บซ้ำๆ เพื่อไล่ตามตัวเลข คุณลักษณะ BAD หนึ่งรายการกำลังใช้ 'เมนู' ใดๆ รีเซ็ตวินาทีเป็น 00 ซึ่งจะเปลี่ยนเวลาปัจจุบัน ฉันปล่อยให้หมดเวลา 60 วินาทีสำหรับการกดปุ่มเพื่อให้สามารถซิงค์กับนาฬิกาอื่นได้

ขั้นตอนที่ 2: ถั่วและสลักเกลียว

ถั่วและสลักเกลียว
ถั่วและสลักเกลียว
ถั่วและสลักเกลียว
ถั่วและสลักเกลียว
ถั่วและสลักเกลียว
ถั่วและสลักเกลียว
ถั่วและสลักเกลียว
ถั่วและสลักเกลียว

โครงการนี้เป็นนาฬิกา STAND ALONE ที่ไม่มี RTC เพียงแค่ uno และ lcd ปุ่ม 4 ปุ่มช่วยให้ตั้งเวลา/วันที่และปรับโซนเวลาและปรับเทียบได้

ไฟล์เครื่องพิมพ์ 3 มิติมีเคส LCD หนึ่งและสองตัวสำหรับโครงการอื่น

จอแอลซีดีมีตัวเลขขนาดใหญ่ที่ใช้พื้นที่กว้างเพียง ONE เท่านั้น ต้องใช้เวลาพอสมควรในการทำ

ตัวเคสมี 8 รูสำหรับกระดุมสำหรับโครงการอื่นๆ

เพียงเชื่อมต่อหูดที่ผนัง 5v เพื่อจ่ายไฟ

ตรวจสอบ LIBRARY ในพื้นที่ของคุณเพื่อใช้เครื่องพิมพ์ 3 มิติ !!

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

เกี่ยวกับอาคาร
เกี่ยวกับอาคาร
เกี่ยวกับอาคาร
เกี่ยวกับอาคาร
เกี่ยวกับอาคาร
เกี่ยวกับอาคาร

บอร์ด Arduino ใดๆ ที่มี MEGA 328 micros ควรใช้งานได้ มันต้องการคริสตัล 16mhz และต้องทำงานด้วยความเร็วนั้น 3.3 โวลต์ที่ 8mhz อาจไม่ทำงานกับจังหวะเวลาขัดจังหวะ สำหรับกล่องหุ้ม Pro-mini เหมาะที่สุด แต่คุณอาจบีบนาโนเข้าไป แต่สาย USB อาจมีปัญหา นี่คือจอแอลซีดี Hitachi 16x2 ซึ่งเป็นที่นิยมอย่างมาก คนขี้โกงบางคนดูหมองคล้ำและเป็นลม จำเป็นต้องมีตัวเชื่อมต่อขอบเพื่อให้พอดีกับโมดูลตัวแปลง I2c ยอดนิยม ต้องใช้สายไฟเพียง 4 เส้นเพื่อเชื่อมต่อกับ uno มีบทช่วยสอนมากมายที่จะแสดงวิธีต่อจอแอลซีดีโดยไม่ต้องใช้โมดูลตัวแปลง หากคุณไม่ต้องการ สำหรับนาฬิกาไม่มีปุ่มนั่นคือทั้งหมดที่คุณทำ

จอแอลซีดีมีอักขระที่กำหนดเอง BIG NUMBER ตัวเลขขนาดใหญ่ใช้ความกว้างเพียง ONE

ขั้นตอนที่ 4: 4 ปุ่มและกรณี

4 ปุ่มและเคส
4 ปุ่มและเคส
4 ปุ่มและเคส
4 ปุ่มและเคส
4 ปุ่มและเคส
4 ปุ่มและเคส

เช่นเดียวกับด้านบน แต่เพิ่มสวิตช์ 4 ตัว บอร์ดพีซีขนาดมาตรฐาน 2 นิ้ว x 2.5 นิ้ว ใช้สำหรับใส่เคสให้พอดี เพียงผ่าครึ่งแล้วติดตั้งสวิตช์เพื่อให้ขาซ้ายไปขวา หากคุณวางสวิตช์โดยยกขาขึ้น รูจะไม่เข้าแถวในเคส ทดสอบว่าพวกเขาเข้าแถวกับรูของเคสก่อนทำการบัดกรี กราวด์ขาด้านล่าง (ทั้งหมด) แล้ววิ่งขาบนแต่ละอันไปที่หมุดบน uno ดูแผนผังที่แนบมา หากคุณพิมพ์เคส 3 มิติ ส่วนของปุ่มจะต้องติดกาวกับเคส LCD ไม่สแน็ปอินเหมือนด้านหลัง สกรูเทปตัวเองขนาดเล็กใดๆ จะยึดจอ LCD เข้าที่ ใหญ่เกินไปและคุณจะแตกเคส แท่งกาวร้อนอาจจะดีที่สุด ก่อนทำการติดตั้งจอแอลซีดี…ทำให้พื้นที่นำแสงเป็นสีดำด้วยเทปสีดำ มิฉะนั้นมันจะส่องผ่านเคส ฉันใช้เทปโฟม 2 ด้านใน 2 ชั้นเพื่อติดตั้งโปรมินิ เทปนี้เป็นราคาต่อรองที่ 'ร้านต้นไม้ดอลลาร์' ฉันใช้ลวดแม่เหล็กเคลือบแข็งประมาณ 26 เกจ ฉันมีคำแนะนำที่ดีเกี่ยวกับ 'หม้อประสานชายที่น่าสงสาร' สำหรับการใช้สายนี้ในการเชื่อมต่อ

ขั้นตอนที่ 5: จอ LCD

จอแอลซีดี
จอแอลซีดี
จอแอลซีดี
จอแอลซีดี
จอแอลซีดี
จอแอลซีดี

ปัญหาจอแอลซีดี

เมื่อสร้างเสร็จแล้ว ให้ดาวน์โหลดและติดตั้งภาพร่าง หน้าจอ LCD อาจไม่สว่างขึ้น นี่คือเคล็ดลับบางประการ แอลซีดี 'ไฟ LED' ควรติดสว่างและทำให้หน้าจอเป็นสีน้ำเงิน หากไม่มีไฟ LED ให้ตรวจสอบจัมเปอร์พินตรงข้ามหม้อตัวต้านทาน สิ่งนี้ต้องการจัมเปอร์หรือตัวต้านทาน 150 โอห์ม หม้อสีฟ้าเป็นปัญหาเสมอ หมุนหม้อจนหน้าจอแสดงสี่เหลี่ยม 2 แถว จากนั้นกลับออกจนสี่เหลี่ยมแทบจะจางหายไป หากยังไม่แสดงผล ให้ตรวจสอบการเชื่อมต่อ SDA และ SCL ง่ายเกินไปที่จะย้อนกลับ นั่นคือ A4 ถึง SDA และ A5 ถึง SCL เหล่านี้เป็นพิน A ไม่ใช่พิน D และโปรมินิบางตัวมีพินเหล่านี้อยู่ที่ด้านในของพีซีไม่ได้อยู่ที่ขอบ ตัวเลือกสุดท้ายคือการตรวจสอบที่อยู่ โมดูลตัวแปลง LCD บางตัวมีที่อยู่ที่แตกต่างกัน หรือในการใช้อุปกรณ์มากกว่าหนึ่งเครื่อง ทุกคนล้วนต้องการที่อยู่ที่แตกต่างกัน โมดูลส่วนใหญ่มีหมุดประสาน 3 อันเพื่อตั้งค่าที่อยู่ที่แตกต่างกัน 3 อัน โปรดจำไว้ว่า I2c ใช้สายไฟเพียง 2 สายกับอุปกรณ์ใด ๆ และทั้งหมด ดังนั้นแต่ละอุปกรณ์จะต้องมีที่อยู่ที่ไม่ซ้ำกัน รวมเป็นเครื่องสแกนที่อยู่ I2c ดาวน์โหลดการติดตั้งสแกนเนอร์และอ่านมอนิเตอร์แบบอนุกรม หน้าจอแสดงที่อยู่ของอุปกรณ์ I2c ใดๆ ตรวจสอบ ร่างนาฬิกา สำหรับเส้นที่ด้านบนของภาพร่าง 'LiquidCrystal_I2C จอแอลซีดี (0x3F, 16, 2); ' 0x3F เป็นที่อยู่ที่ถูกต้องสำหรับตัวแปลงของฉัน หากที่อยู่ของคุณแตกต่างกัน ให้เปลี่ยนจากสแกนเนอร์เป็นที่อยู่ที่ถูกต้อง ข้อควรระวัง: คัดลอกและวางที่อยู่ใหม่ในบางครั้งอาจมีการขึ้นบรรทัดใหม่หรือการขึ้นบรรทัดใหม่ เพียงพิมพ์ที่อยู่อื่น ตัวอักษรตัวแรกจะเป็นศูนย์เสมอและตัวพิมพ์เล็ก x 0x สิ่งนี้บอก C++ ว่าเป็นเลขฐานสิบหก หลังจาก 0x ตัวอักษรใด ๆ เป็นตัวพิมพ์ใหญ่

ขั้นตอนที่ 6: HOOKUPS

ตะขอ
ตะขอ
ตะขอ
ตะขอ
ตะขอ
ตะขอ

ทำตามแผนผังและต่อสายยูนิต

ขั้นตอนที่ 7: รูปถ่ายอื่นๆ

รูปถ่ายอื่นๆ
รูปถ่ายอื่นๆ
รูปถ่ายอื่นๆ
รูปถ่ายอื่นๆ
รูปถ่ายอื่นๆ
รูปถ่ายอื่นๆ

ขอให้โชคดีโปรดดูคำแนะนำอื่น ๆ ของฉัน

ขั้นตอนที่ 8: SKETCH

Instrucables ไม่ยอมให้ฉันดาวน์โหลดไฟล์ Arduino !!!! ดังนั้นฉันจึงใช้ข้อความ คุณจะต้องคัดลอกและวางข้อความลงในไฟล์เปิด arduino ใหม่ที่ IDE……. SORRY

และไฟล์ข้อความจะไม่โหลดเช่นกัน !!! และพยายามจะแปะตรงนี้แต่มันงง !!

ในที่สุด !!! มีภาพสเก็ตช์ของฉันให้ดาวน์โหลดที่นี่ 3-26-2020 แก้ไขเรื่องเล็กน้อยด้วย

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

การใช้ FUNCTION ของฉันคือการแยกส่วนต่างๆ ของภาพร่าง สิ่งนี้ทำให้เนื้อหาหลักง่ายสำหรับฉันที่จะติดตาม รวมถึงการอนุญาตให้ดีบักส่วนต่างๆ ที่แยกจากกันเพียงแค่เรียกใช้ฟังก์ชัน ฉันคิดว่า GOTO เคยทำเช่นนี้ แต่มันหลุดพ้นจากความโปรดปรานและไม่เคยถูกใช้เลย Nuff กล่าวว่า. ฉันตรวจสอบวันที่และเวลาให้ดีที่สุดเท่าที่จะทำได้ ส่วนเดียวกันของภาพร่างนั้นใช้นาฬิกา 'TIME SQUARED' มาหลายปีแล้ว หากฉันพลาดอะไรหรือมีข้อบกพร่องโปรดแจ้งให้เราทราบ ในการปรับเทียบ 'ไม่มีปุ่มร่าง' บรรทัดด้วย 'unsigned long tSec = 1000122; ' (บรรทัดที่ 34) คือสิ่งที่คุณเปลี่ยนแปลง ค่าคงที่ 277 ต่อวินาทีต่อชั่วโมงถูกต้อง แต่ในทางปฏิบัติฉันทำการเปลี่ยนแปลงเพียง 2 ถึง 8 จำนวนเป็นค่า 'tSec' ที่ 1,000122 นาฬิกาของฉันหลายเรือนวิ่งได้ดีพอๆ กับ RTC ใจเย็นๆ การเปลี่ยนแปลงเล็กๆ เพียง 2-8 ก็สามารถเป็นนาฬิกาที่สมบูรณ์แบบได้ ด้านลบของการเปลี่ยนแปลงใดๆ สำหรับนาฬิกาใดนาฬิกาหนึ่งหมายความว่าเวลาปัจจุบันจะมีการเปลี่ยนแปลง คุณจะต้องเปลี่ยนเวลา/วันที่ปัจจุบันให้ถูกต้อง

//// easy_one_lcd_clock_no_buttons // // นาฬิกา arduino และ lcd // ใช้ timerOne ตัวจับเวลา 16 บิต // เพื่อปรับเทียบนาฬิกานี้: // ใช้นาฬิกาวินาทีที่ดีเหมือน GPS // ใช้ชั่วโมงเป็นหลัก นับวินาที // นี่ปิดอยู่ ถ้าThis is behind a GPS // GPS=00.. THIS=58 SUBTRACT 277 for each // second/hours. ดังนั้นหากช้าลง 2 วินาทีใน // 3 ชั่วโมง… (277 * 2)/3 = 184 // ลบออกจาก tSec // ถ้าสิ่งนี้อยู่ข้างหน้า GPS=00…THIS=03 // คณิตศาสตร์เดียวกันเพียงแค่เพิ่มไปยัง tSec // ข้อควรระวัง นาฬิกาส่วนใหญ่ถูกต้องที่ 00 // 20 วินาทีคือการตรวจสอบตัวจับเวลาที่ดีกว่า

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

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

ตรวจสอบห้องสมุดในพื้นที่ของคุณสำหรับการใช้เครื่องพิมพ์ 3 มิติ

แนะนำ: