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

時間設定とアラーム機能を備えたTM1637デジタル時計

コンポーネントと消耗品

>
Arduino Nano R3
× 1
TM16374桁表示
× 1
DS1302RTCモジュール
× 1
SparkFun LilyPad LEDブルー(5個)
× 1
ブザー
× 1

このプロジェクトについて

これは、次のデジタル時計プロジェクトで使用する予定の時間とアラームの設定メカニズムのプロトタイプです。お役に立てば幸いです。改善点があればお知らせください。それらを調べて、コードに組み込むことができれば幸いです。

チュートリアル全体は

で見ることができます

このコンテンツが気に入って、同様のビデオの作成をサポートしたい場合は、私のPatreonWebページにアクセスしてください

https://www.patreon.com/MariosIdeas

または

https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=7PD67JWZ9S3EJ&source=url

コード

  • RTCモジュールからの時刻の表示に加えて、時刻設定とアラーム設定機能
RTCモジュールからの時刻の表示に加えて、時刻設定とアラーム設定機能 Arduino
このコードは、RTCモジュールから現在の時刻を読み取っています。次に、現在の時刻を更新したり、アラーム時刻を設定したりすることもできます。
セットアップアクションは3つのボタンを使用して実行されます。
 //マリオのアイデア//セットアップとアラーム機能を備えたTM1637デジタル時計#include  #include  #include  //// RTCモジュール宣言// PINS CLK、DAT、RSTvirtuabotixRTC myRTC(A1、A2、A3); //以前の値を保存する変数RTCmoduleint分; int時間; //アラームがオフになる時間を保存する変数int Alarm_minutes =05; int Alarm_hours =18; uint8_t Blank [] ={0x0}; int POSITION =0; //時間とアラームのセットアップ手順で使用される4桁を格納するテーブルintdigits [3]; int interval =0; #defineアラーム9 //アラームモードをオンまたはオフに切り替えるボタン#defineBuzer 13#define Led 8 // Statusesboolean Alarm_set =false; boolean Alarm_in_progress =false; boolean Setup_on =false; // 4桁のディスプレイ接続ピン(デジタルピン)#defineCLK 4#define DIO 5 // 4桁の表示宣言TM1637Display clock(CLK、DIO); void setup(){attachInterrupt(digitalPinToInterrupt(2)、Press_A_Button、RISING); attachInterrupt(digitalPinToInterrupt(3)、Press_B_Button、RISING); pinMode(Alarm、INPUT); pinMode(Buzer、OUTPUT); pinMode(Led、OUTPUT); digitalWrite(Buzer、LOW); clock.setBrightness(0x0f); Serial.begin(9600);} void Press_A_Button(){if(interval> 3){if(Setup_on ==false){Setup_on =true; if(Alarm_set ==true){digits [0] =(int)Alarm_hours / 10; Digits [1] =Alarm_hours-((int)Alarm_hours / 10)* 10; Digits [2] =(int)Alarm_minutes / 10; Digits [3] =Alarm_minutes-((int)Alarm_minutes / 10)* 10; } else {digits [0] =(int)myRTC.hours / 10; Digits [1] =myRTC.hours-((int)myRTC.hours / 10)* 10; Digits [2] =(int)myRTC.minutes / 10; Digits [3] =myRTC.minutes-((int)myRTC.minutes / 10)* 10; }} else {POSITION ++; if(POSITION ==4){if(Alarm_set ==true){Alarm_minutes =Digits [3] + Digits [2] * 10; Alarm_hours =数字[1] +数字[0] * 10; } else {myRTC.setDS1302Time(0、Digits [3] + Digits [2] * 10、Digits [1] + Digits [0] * 10、myRTC.dayofweek、myRTC.dayofmonth、myRTC.month、myRTC.year); clock.showNumberDec(digits [0]、false、1,0); clock.showNumberDec(digits [1]、false、1,1); clock.showNumberDec(digits [2]、false、1,2); clock.showNumberDec(digits [3]、false、1,3); } POSITION =0; Setup_on =false; }}} interval =0;} void Press_B_Button(){if(interval> 3){if(Setup_on){digits [POSITION] =Digits [POSITION] +1; if(POSITION ==0 and Digits [POSITION] ==3)digits [POSITION] =0; if(POSITION!=0 and Digits [POSITION] ==10)digits [POSITION] =0;間隔=0; }} interval =0;} void loop(){if(digitalRead(Alarm)==HIGH and Alarm_set ==false){if(interval> 30){digitalWrite(Led、HIGH); Alarm_set =true; delay(300); }} else {if(digitalRead(Alarm)==HIGH and Alarm_set ==true){if(interval> 30){Alarm_set =false; Alarm_in_progress =false; digitalWrite(Led、LOW); delay(300); }}} myRTC.updateTime(); if(Setup_on ==true){clock.showNumberDec(digits [0]、false、1,0); clock.showNumberDec(digits [1]、false、1,1); clock.showNumberDec(digits [2]、false、1,2); clock.showNumberDec(digits [3]、false、1,3); delay(200); clock.setSegments(Blank、1、POSITION); delay(200); clock.showNumberDec(digits [0]、false、1,0); clock.showNumberDec(digits [1]、false、1,1); clock.showNumberDec(digits [2]、false、1,2); clock.showNumberDec(digits [3]、false、1,3); } else {if(myRTC.minutes ==Alarm_minutes and myRTC.hours ==Alarm_hours and Alarm_set ==true and Setup_on ==false){Alarm_in_progress =true; } if(Alarm_in_progress){digitalWrite(Buzer、HIGH); delay(1000); digitalWrite(Buzer、LOW); delay(1000); } if(myRTC.minutes!=minutes){clock.showNumberDecEx((int)myRTC.hours / 10 * 1000 +(myRTC.hours-((int)myRTC.hours / 10)* 10)* 100 +(int) myRTC.minutes / 10 * 10 + myRTC.minutes-((int)myRTC.minutes / 10)* 10、(0x80>> 1)、true); minutes =myRTC.minutes; hours =myRTC.hours; }} if(interval <200)interval ++;} 

回路図


製造プロセス

  1. アプリケーションを備えたアナログおよびデジタルセンサーの種類
  2. tコブラープラス付きラズベリーパイ2ウォーターアラーム
  3. RaspberryPiとPythonを使用したロボットの構築
  4. FiixとIDCによるデジタルトランスフォーメーションの調査
  5. 状態監視による時間とお金の節約
  6. メンテナンスソフトウェアでメンテナンスコストを削減し、収益を増やす8つの方法
  7. Portentaおよび熱電対センサー(MAX6675を使用)
  8. シスコとIBMのおかげで、IoTデータによるデジタルトランスフォーメーションの加速
  9. 単語単位の時間の分分解能を備えた世界時計
  10. DS1302RTCを備えたシンプルな目覚まし時計
  11. ベアリングの機能と進化