工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

ArduinoとDS3231リアルタイムクロックのチュートリアル

このArduinoチュートリアルでは、DS3231リアルタイムクロックモジュールの使用方法を学習します。次のビデオを見るか、以下のチュートリアルを読むことができます。

概要

ここで最初に出てくる質問は、Arduino自体にタイムキーパーが組み込まれているのに、Arduinoプロジェクトに個別のRTCが実際に必要な理由です。重要なのは、RTCモジュールはバッテリーで動作し、マイクロコントローラーを再プログラムしたり、主電源を切断したりしても、時間を追跡できるということです。

DS3231リアルタイムクロック

DS3231は、時間、分、秒、および日、月、年の情報を維持できる、低コストで高精度のリアルタイムクロックです。また、うるう年と31日未満の月の自動補償があります。

このモジュールは3.3または5Vで動作するため、多くの開発プラットフォームまたはマイクロコントローラーに適しています。バッテリー入力は3Vで、一般的なCR2032 3Vバッテリーはモジュールに電力を供給し、1年以上情報を維持できます。

このモジュールは、Arduinoボードへの接続を非常に簡単にするI2C通信プロトコルを使用しています。

回路図は次のとおりです。

したがって、必要なのは4本のワイヤ、モジュールに電力を供給するためのVCCピンとGNDピン、および2本のI2C通信ピンSDAとSCLです。

このArduinoチュートリアルに必要なコンポーネントは、以下のリンクから入手できます。

  • DS3231リアルタイムクロック……………..
  • Arduinoボード……………………………
  • ブレッドボードとジャンパー線………
プログラミング

モジュールを接続したら、リアルタイムクロックで動作するようにArduinoボードをプログラムする必要があります。ただし、ArduinoとI2Cモジュール間の通信をプログラミングする場合、コードはそれほど小さくて簡単ではありません。幸いなことに、DS3231 RTCには、インターネット上にあるいくつかのライブラリがすでにあります。

このチュートリアルでは、Henning Karlsenが作成したライブラリを使用することにしました。このライブラリは、彼のWebサイトwww.rinkydinkelectronics.comから見つけてダウンロードできます。

したがって、ライブラリをダウンロードしてインストールすると、最初のデモ例を使用して、RTCモジュールのクロックを最初にアクティブ化できます。デモサンプルコードのセットアップセクションでは、曜日、時刻、データを最初に設定するためにコメントを外す必要がある3行があることがわかります。

// Code from the Demo Example of the DS3231 Library

void setup()
{
  // Setup Serial connection
  Serial.begin(115200);
  // Uncomment the next line if you are using an Arduino Leonardo
  //while (!Serial) {}
  
  // Initialize the rtc object
  rtc.begin();
  
  // The following lines can be uncommented to set the date and time
  //rtc.setDOW(WEDNESDAY);     // Set Day-of-Week to SUNDAY
  //rtc.setTime(12, 0, 0);     // Set the time to 12:00:00 (24hr format)
  //rtc.setDate(1, 1, 2014);   // Set the date to January 1st, 2014
}Code language: Arduino (arduino)

1行目は曜日を設定し、2行目は時刻を時、分、秒で設定し、3行目は日付を日、月、年で設定します。

このコードをアップロードしたら、3行をコメントバックして、コードを再度アップロードする必要があります。

// Code from the Demo Example of the DS3231 Library

void loop()
{
  // Send Day-of-Week
  Serial.print(rtc.getDOWStr());
  Serial.print(" ");
  
  // Send date
  Serial.print(rtc.getDateStr());
  Serial.print(" -- ");

  // Send time
  Serial.println(rtc.getTimeStr());
  
  // Wait one second before repeating
  delay (1000);
}Code language: Arduino (arduino)

コードのループセクションを見ると、3つのカスタム関数を使用して、RTCから情報を取得し、シリアルモニターに出力していることがわかります。シリアルモニターに表示される方法は次のとおりです。

これで、Arduinoの電源を切断してから再接続し、シリアルモニターを再度実行しても、リセットされずに時間が経過していることがわかります。

これで、リアルタイムクロックが稼働し、任意のArduinoプロジェクトで使用できるようになりました。 2番目の例として、LCDをArduinoに接続し、時刻と日付を印刷しました。

この例のソースコードは次のとおりです。

/*
* Arduino DS3231 Real Time Clock Module Tutorial
*
* Crated by Dejan Nedelkovski,
* www.HowToMechatronics.com
*
* DS3231 Library made by Henning Karlsen which can be found and downloaded from his website, www.rinkydinkelectronics.com.
*
*/
#include <DS3231.h>
#include <LiquidCrystal.h> // includes the LiquidCrystal Library 

DS3231  rtc(SDA, SCL);
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LC object. Parameters: (rs, enable, d4, d5, d6, d7) 

void setup() { 
 rtc.begin(); // Initialize the rtc object
 lcd.begin(16,2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display } 
}

void loop() { 
 lcd.setCursor(0,0);
 lcd.print("Time:  ");
 lcd.print(rtc.getTimeStr());
 
 lcd.setCursor(0,1);
 lcd.print("Date: ");
 lcd.print(rtc.getDateStr());
 
 delay(1000); 
}Code language: Arduino (arduino)

このArduinoチュートリアルは以上です。下のコメントセクションで、お気軽に質問してください。


製造プロセス

  1. Arduinoハメ撮りビジョンクロック
  2. ArduinoRFIDロックチュートリアル
  3. マスタークロック
  4. ArduinoTemp。 3.2ディスプレイを備えたモニターとリアルタイムクロック
  5. ベルリン時計
  6. 時間設定とアラーム機能を備えたTM1637デジタル時計
  7. eDOT-Arduinoベースの精密時計および気象観測所
  8. リアルタイムクロック付きArduinoOLED温度ディスプレイ
  9. Arduino指紋センサーチュートリアル
  10. RaspberryPiとArduinoラップトップ
  11. ロボットはリアルタイムで3Dの変化を検出して共有します