จะเพิ่มนาฬิกาแบบเรียลไทม์ให้กับ Arduino ได้อย่างไรและทำไม

จะเพิ่มนาฬิกาแบบเรียลไทม์ให้กับ Arduino ได้อย่างไรและทำไม

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





วิธี ss บน snapchat โดยที่คนไม่รู้

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





นาฬิกาแบบเรียลไทม์ (RTC) มีประโยชน์อย่างไร

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





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

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



TinyRTC

RTC ที่ได้รับความนิยมมากที่สุดสำหรับ Arduino เรียกว่า TinyRTC และสามารถซื้อได้ในราคาประมาณ - บน eBay คุณมักจะต้องจัดหาแบตเตอรี่ของคุณเอง (การจัดส่งเหล่านี้ไปยังหลาย ๆ ที่ในต่างประเทศผิดกฎหมาย) และส่วนหัวบางส่วน (หมุดที่เสียบเข้าไปในรูซึ่งคุณจะต้องบัดกรีด้วยตัวเอง)

นี่คือโมดูลที่ฉันมี:





มีเซ็นเซอร์อุณหภูมิในตัวด้วย แม้ว่าแบตเตอรี่จะใช้งานได้ยาวนานขึ้นหากคุณไม่ได้ใช้งาน

จำนวนรูของสิ่งนั้นดูน่ากลัวมาก แต่คุณต้องการแค่สี่รูเท่านั้น GND, VCC, SCL และ SDA - คุณสามารถใช้พินที่เกี่ยวข้องที่ด้านใดด้านหนึ่งของโมดูล RTC คุณคุยกับนาฬิกาโดยใช้ โปรโตคอล I2C ซึ่งหมายความว่าใช้เพียงสองพินเท่านั้น - อันหนึ่งสำหรับ 'นาฬิกา' (นาฬิกาข้อมูลการสื่อสารแบบอนุกรม ไม่เกี่ยวข้องกับเวลา) และอีกอันสำหรับข้อมูล ที่จริงแล้ว คุณยังโยงอุปกรณ์ I2C ได้มากถึง 121 เครื่องในสองพินเดียวกัน - ลองดูสิ เพจนี้อดาฟรุ๊ต คุณสามารถเพิ่มอุปกรณ์ I2C อื่น ๆ ได้เพราะมีมากมาย!





เริ่มต้น

เชื่อมต่อโมดูล TinyRTC ของคุณตามแผนภาพด้านล่าง - ไม่จำเป็นต้องใช้สาย DS สีชมพู เนื่องจากใช้สำหรับเซ็นเซอร์อุณหภูมิ

ถัดไป ดาวน์โหลด เวลา และ DS1307RTC ไลบรารีและวางโฟลเดอร์ผลลัพธ์ในของคุณ /ห้องสมุด โฟลเดอร์

ออกและเปิดสภาพแวดล้อม Arduino ใหม่เพื่อโหลดในไลบรารีและตัวอย่าง

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

ต่อไปดูตัวอย่างการใช้งานด้วย อ่านแบบทดสอบ .

วิธีคัดลอกไฟล์จาก Android ไปยังพีซี

#include
#include
#include
void setup() {
Serial.begin(9600);
while (!Serial) ; // wait for serial
delay(200);
Serial.println('DS1307RTC Read Test');
Serial.println('-------------------');
}
void loop() {
tmElements_t tm;
if (RTC.read(tm)) {
Serial.print('Ok, Time = ');
print2digits(tm.Hour);
Serial.write(':');
print2digits(tm.Minute);
Serial.write(':');
print2digits(tm.Second);
Serial.print(', Date (D/M/Y) = ');
Serial.print(tm.Day);
Serial.write('/');
Serial.print(tm.Month);
Serial.write('/');
Serial.print(tmYearToCalendar(tm.Year));
Serial.println();
} else {
if (RTC.chipPresent()) {
Serial.println('The DS1307 is stopped. Please run the SetTime');
Serial.println('example to initialize the time and begin running.');
Serial.println();
} else {
Serial.println('DS1307 read error! Please check the circuitry.');
Serial.println();
}
delay(9000);
}
delay(1000);
}
void print2digits(int number) {
if (number >= 0 && number <10) {
Serial.write('0');
}
Serial.print(number);
}

โปรดทราบว่าเราได้รวมแกนหลักไว้ด้วย Wire.h ห้องสมุด - มาพร้อมกับ Arduino และใช้สำหรับการสื่อสารผ่าน I2C อัปโหลดโค้ด เปิดคอนโซลอนุกรมที่ 9600 บอด และดู Arduino ของคุณจะส่งสัญญาณออกเวลาปัจจุบันทุกวินาที มหัศจรรย์!

โค้ดที่สำคัญที่สุดในตัวอย่างคือการสร้าง a tmElements_t tm - นี่คือ โครงสร้าง ที่เราจะเติมด้วยเวลาปัจจุบัน และ RTC.อ่าน(TM) ฟังก์ชัน ซึ่งรับเวลาปัจจุบันจากโมดูล RTC ใส่ลงใน .ของเรา tm โครงสร้าง และคืนค่า จริง หากทุกอย่างเป็นไปด้วยดี เพิ่มการดีบักหรือรหัสตรรกะของคุณภายในคำสั่ง 'if' เช่น การพิมพ์เวลาหรือการตอบสนองต่อคำสั่งนั้น

microsoft store ไม่โหลด windows 10

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

เครดิตรูปภาพ: Snootlab ผ่าน Flickr

แบ่งปัน แบ่งปัน ทวีต อีเมล วิธีเปลี่ยนรูปลักษณ์และความรู้สึกของเดสก์ท็อป Windows 10 ของคุณ

ต้องการทราบวิธีทำให้ Windows 10 ดูดีขึ้นหรือไม่? ใช้การปรับแต่งง่ายๆ เหล่านี้เพื่อทำให้ Windows 10 เป็นของคุณเอง

อ่านต่อไป
หัวข้อที่เกี่ยวข้อง
  • DIY
  • Arduino
เกี่ยวกับผู้เขียน เจมส์ บรูซ(เผยแพร่บทความ 707 ฉบับ)

James มี BSc ด้านปัญญาประดิษฐ์และได้รับการรับรองจาก CompTIA A+ และ Network+ เมื่อเขาไม่ได้ยุ่งในฐานะ Hardware Review Editor เขาสนุกกับ LEGO, VR และเกมกระดาน ก่อนร่วมงานกับ MakeUseOf เขาเป็นช่างเทคนิคแสงสว่าง ครูสอนภาษาอังกฤษ และวิศวกรศูนย์ข้อมูล

เพิ่มเติมจาก James Bruce

สมัครรับจดหมายข่าวของเรา

เข้าร่วมจดหมายข่าวของเราสำหรับเคล็ดลับทางเทคนิค บทวิจารณ์ eBook ฟรี และดีลพิเศษ!

คลิกที่นี่เพื่อสมัครสมาชิก
หมวดหมู่ Diy