Სარჩევი:

DS3231 RTC (რეალურ დროში საათის დაყენება) ზუსტად, სწრაფად და ავტომატურად Java- ს გამოყენებით (+-1s): 3 ნაბიჯი
DS3231 RTC (რეალურ დროში საათის დაყენება) ზუსტად, სწრაფად და ავტომატურად Java- ს გამოყენებით (+-1s): 3 ნაბიჯი

ვიდეო: DS3231 RTC (რეალურ დროში საათის დაყენება) ზუსტად, სწრაფად და ავტომატურად Java- ს გამოყენებით (+-1s): 3 ნაბიჯი

ვიდეო: DS3231 RTC (რეალურ დროში საათის დაყენება) ზუსტად, სწრაფად და ავტომატურად Java- ს გამოყენებით (+-1s): 3 ნაბიჯი
ვიდეო: ავტომატური Start-Stop კონტროლერი DS3231 რეალური დროის საათით 2024, ივლისი
Anonim
DS3231 RTC (რეალურ დროში საათის დაყენება) ზუსტად, სწრაფად და ავტომატურად Java- ს გამოყენებით (+-1s)
DS3231 RTC (რეალურ დროში საათის დაყენება) ზუსტად, სწრაფად და ავტომატურად Java- ს გამოყენებით (+-1s)

ეს ინსტრუქცია გაჩვენებთ თუ როგორ უნდა დააყენოთ დრო DS3231 რეალურ დროში Arduino– ს და მცირე Java პროგრამის გამოყენებით, რომელიც იყენებს Arduino– ს სერიულ კავშირს.

ამ პროგრამის ძირითადი ლოგიკა:

1. Arduino აგზავნის სერიულ მოთხოვნას.

2. ჯავის პროგრამა გამოიყურება რა დღე/თვე/… arduino ითხოვს და აგზავნის შესაბამის მონაცემებს უკან.

3. ყველა საჭირო ინფორმაციის შეგროვების შემდეგ arduino ინახავს მონაცემებს DS3231– ში.

DS3231 RTC მოდული

DS3231 RTC მოდული არის შედარებით იაფი RTC მოდული მაღალი სიზუსტით. (წელიწადში რამდენიმე წუთი)

არსებობს სხვადასხვა ჯიშები, რომელთა ძირითადი ფუნქციონალური იგივეა მცირედი განსხვავებებით.

დეტალური შედარება შეგიძლიათ იხილოთ აქ: DS323x შედარება | maximintegrated.com

შეიძინეთ DS3231: DS3231 | ebay.com

მონაცემთა ცხრილი: DS3231 მონაცემთა ცხრილი | maximintegrated.com

მონაცემთა ცხრილი: DS1307 მონაცემთა ცხრილი | maximintegrated.com

ნაწილები საჭიროა

1x Arduino (ნანო, უნო, MEGA და ა.

4x Jumper Wires

1x DS3231 მოდული (DS1307 მოდული)

ნაბიჯი 1: გაყვანილობა

გაყვანილობა
გაყვანილობა

შეაერთეთ DS3231, როგორც ეს მოცემულია ზემოთ მოცემულ სურათზე. რა თქმა უნდა, ამის გაკეთება შეგიძლიათ პურის დაფის გამოყენების გარეშე, მაგრამ ეს იქნება ცოტა არეული. მე გამოვიყენე Arduino Nano დემონსტრაციისთვის, მაგრამ Uno ან MEGA ასევე უნდა მუშაობდეს. (სხვებიც შეიძლება მუშაობდნენ, მაგრამ მე ზარმაცი ვარ ამის დადასტურება)

  • არდუინო -> DS3231
  • A4 -> SCL
  • A5 -> SDA
  • 5V -> VCC
  • GND -> GND

ნაბიჯი 2: Arduino კოდი

არდუინოს კოდი
არდუინოს კოდი

ჩამოტვირთეთ.ino ფაილი ქვემოდან და ატვირთეთ თქვენს Arduino– ში (ჩემს შემთხვევაში ნანო).

ესკიზს სჭირდება შემდეგი ბიბლიოთეკები დაყენებული სწორად მუშაობისთვის:

github.com/PaulStoffregen/Time

github.com/JChristensen/DS3232RTC

გაკვეთილი, თუ როგორ უნდა ატვირთოთ კოდი თქვენს arduino– ზე შეგიძლიათ იხილოთ აქ (arduino.cc).

Arduino IDE– ში შეამოწმეთ, რომ კოდი სწორად არის წარმოდგენილი. (ატვირთვა დასრულებულია)

თქვენი Arduino ახლა მზად არის მიიღოს დროული ინფორმაცია

ჩამოტვირთეთ კოდი აქ: DS3231TimeSync.zip (mediafire.com)

ჩამოტვირთეთ წყარო აქ: DS3231TimeSyncSRC.zip (mediafire.com)

GitHub საცავი: DS3213 RTC დროის სინქრონიზაცია (github.com)

Bitbucket საცავი: DS3231 RTC დროის სინქრონიზაცია (bitbucket.com)

ნაბიჯი 3: Java პროგრამა

Java პროგრამა
Java პროგრამა

1. გაუშვით "DS3231Sync.jar" გადმოწერილი ადრე ორმაგი დაწკაპუნებით

2. გაიხსნება პატარა დიალოგი, რომელიც მოგთხოვთ თქვენი არდუინოს პორტს

თუ არ ხართ დარწმუნებული თქვენს არდუინოს პორტში, გადახედეთ Arduino IDE– ს ქვედა მარჯვენა კუთხეში.

(იხილეთ სურათები ზემოთ)

3. გაიხსნება სხვა დიალოგი და მოგთხოვთ დროის ზონის გადაფარვას

ოფსეტური დაკავშირებულია თქვენი კომპიუტერის ადგილობრივ დროთან. RTC თქვენს ადგილობრივ დროზე დასაყენებლად უბრალოდ შეიყვანეთ +00: 00.

მნიშვნელოვანია, რომ შეიყვანოთ დროის ზონა კომპენსირებული კონკრეტული ფორმატით!

ზოგადი ფორმატი +hh: mm ან -hh: mm. ყოველთვის ჩართეთ წამყვანი ნულები!

(მაგალითად: -03: 00; -06: 00; +09: 00; +02: 30)

4. Java პროგრამა გამოუშვებს პატარა ფანჯარას კონსოლის გამომუშავებით

თვალი ადევნეთ დადასტურების შეტყობინებებს, როგორიცაა: "დრო მითითებულია დასრულდა"

დროის განსაზღვრული პროცესის დასრულების შემდეგ კოდი ამობეჭდებს მიმდინარე დროს DS3231– ზე ყოველ 5 წამში. თქვენ შეგიძლიათ დაადასტუროთ, რომ დრო სწორად არის მითითებული.

თუ თქვენ არ მიიღებთ რაიმე გამომუშავებას ~ 20 წამის შემდეგ, დააჭირეთ არდუინოს გადატვირთვის ღილაკს და დაელოდეთ ისევ.

თუ ის ჯერ კიდევ არ მუშაობს, გადაამოწმეთ ესკიზი არდუინოზე და/ან კვლავ ატვირთეთ. (მნიშვნელოვანია: დახურეთ პორტი Java პროგრამაში, სანამ ატვირთავთ Arduino– ში; წინააღმდეგ შემთხვევაში ის დაბლოკავს სერიულ პორტს!) შემდეგ გადატვირთეთ კავშირი Java პროგრამაში.

(Java პროგრამა იყენებს LocalDateTime– ს მიმდინარე თარიღის მისაღებად.)

დრო ახლა დადგენილია. Გაერთე

ხმამაღლა გაგიჩნდებათ რაიმე გადაუჭრელი პრობლემა დროის დადგენაში გთხოვთ დაწეროთ კომენტარი ქვემოთ და გამიზიაროთ თქვენი log.txt (იმავე საქაღალდეში, როგორც ქილა) ჩემთან ერთად. Დიდი მადლობა!