ポテンショメータなしのArduinoNanoLCDストップウォッチ
コンポーネントと消耗品
> |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
| × | 3 | ||||
| × | 5 | ||||
| × | 1 | ||||
| × | 26 |
このプロジェクトについて
みなさん、こんにちは!
このプロジェクトは、LCDから始めるための簡単な学習プロジェクトです。このプロジェクトでは、ArduinoNANOとLCDQUAPASS 1602A16x2を使用しています。このストップウォッチは、時、分、秒を数えることができます。 LCDの明るさを変更することもできます。
ほんの少しのコード変更で100分の1を数えることもできますが、画面がそれほど速く更新できないため、私のLCDは機能していません。
ストップウォッチのタイミングをほぼ完璧に設定しました(ストップウォッチの偏差は約15%なので、実際に10分間実行すると、ストップウォッチでは10分2秒になります)。したがって、開始サブプログラム(stopwatchという名前のプログラムサブプログラム内)を変更する場合は、すべてのコードでArduinoの実行時間があるため、タイミングも変更する必要があります。
ステップ1
このようにArduinoとLCDにワイヤーを接続します(SCHEMATICが表示しているものを見てください)。
ステップ2
私のコードをコピーして、ArduinoIDEの下に貼り付けてください。そして今、あなたのArduinoをUSBドライブに接続します。アップロードボタンをクリックすると、プログラムが実行されます。
ステップ3
シンプルで作りやすいLCDストップウォッチを楽しんでください。
ご不明な点がございましたら、コメント欄にご記入ください。
コード
- コード
コード Arduino
これは私のストップウォッチのコードです。 Arduino IDEにコピーして、Arduinoにアップロードするだけです。/ *停止、開始、リセット、ラップボタンを備えたシンプルなLCDストップウォッチプログラム。* /// LCD#include//設定のライブラリを含むLCD入力ピンを上げるLiquidCrystallcd(12,11,5,4,3,2); //時間、分、秒、ミリ秒を0int h =0に設定します。 int m =0; int s =0; int ms =0; //すべてのボタンのピンを定義しますconstint start_pin =8; const int stop1_pin =9; const int reset_pin =10; //開始点を定義します(私の場合は0)int start =0; int stop1 =0; int reset =0; int bright_pin =6; // brightnessintbrightness =100を設定するためのピンを定義します; //この数値を変更して明るさを変更できますvoidsetup(){analogWrite(brightness_pin、brightness); //これによりピン6の明るさが設定されますlcd.begin(16、2); // LCDを開始します//ピンがINPUTまたはOUTPUTピンであるかどうかを定義しますpinMode(start_pin、INPUT); pinMode(stop1_pin、INPUT); pinMode(reset_pin、INPUT); pinMode(brightness_pin、OUTPUT);} void loop(){lcd.setCursor(0,1); lcd.print( "STOPWATCH"); lcd.setCursor(0,0); lcd.print( "TIME:"); lcd.print(h); lcd.print( ":"); lcd.print(m); lcd.print( ":"); lcd.print(s); start =digitalRead(start_pin); //ボタンの状態を読み取るif(start ==HIGH){stopwatch(); //サブプログラムのストップウォッチに移動します}} // --------------------サブプログラム----------------- -------- void stopwatch(){lcd.setCursor(0,0); // lcdに開始点を設定lcd.print( "TIME:"); // TIMEの書き込みlcd.print(h); //書き込み時間lcd.print( ":"); lcd.print(m); //議事録を書くlcd.print( ":"); lcd.print(s); //秒を書き込むms =ms + 10; delay(10); if(ms ==590){lcd.clear(); // LCDをクリアします} if(ms ==590)//秒をカウントアップするためのif状態{ms =0; s =s + 1; } if(s ==60)//分をカウントアップするためのif状態{s =0; m =m + 1; } if(m ==60)//時間をカウントアップするためのif状態{m =00; h =h + 01; } lcd.setCursor(0,1); lcd.print( "STOPWATCH"); stop1 =digitalRead(stop1_pin); //ボタンの状態を読み取るif(stop1 ==HIGH)//ボタンが押されているかどうかを確認する{stopwatch_stop(); //サブプログラムに移動} else {stopwatch(); //サブプログラムに移動します}} void stopwatch_stop(){lcd.setCursor(0,0); lcd.print( "TIME:"); lcd.print(h); lcd.print( ":"); lcd.print(m); lcd.print( ":"); lcd.print(s); lcd.setCursor(0,1); lcd.print( "STOPWATCH"); start =digitalRead(start_pin); //ボタンの状態を読み取るif(start ==HIGH){stopwatch(); //サブプログラムに移動します} reset =digitalRead(reset_pin); //ボタンの状態を読み取るif(reset ==HIGH){stopwatch_reset(); //サブプログラムに移動loop(); } if(reset ==LOW){stopwatch_stop(); //サブプログラムに移動します}} void stopwatch_reset(){lcd.clear(); lcd.setCursor(0,1); lcd.print( "STOPWATCH"); h =00; //時間を0に設定m =00; //分を0に設定s =00; //秒を0に設定return; //プログラムを終了し、プログラムに入ったポイントに戻ります}
ライブラリ
これは、LCDに必要なライブラリです。https://github.com/arduino-libraries/LiquidCrystal 回路図
これは私の回路の回路図です。 製造プロセス