朝倉市ニュース

朝倉市の話題や最新情報

arduinoで4桁7セグメントLEDの表示 Ardui

2021年3月6日 |

arduinoで4桁7セグメントLEDの表示 Ardui。使う7セグはで良い。Arduino nano を使って4桁の7セグで
00 00~99 99秒までカウントするストップウォッチを作成したいです

全くの初心者で右も左も分かりません
回路もですがプログラムもネットで調べても
難しくてよく分からないで す…

どなたか教えて頂けないでしょうか
ご協力よろしくお願い致します(?_?;)arduinoで4桁7セグメントLEDの表示。前回で作成した桁セグメント表示を汎用的に利用するために
モジュール化しました。裏はこんな感じです。のポリウレタン銅線
を使っています。文では文字以上の指定が可能だが。表示できない
分は無視する。 ;; { ; ++; *+ == &#;/&#; { = ; }まあ。これで
センサー類を使って簡単に数値が表示できるようになったと思われます。

使う7セグはで良い?それともスタンダードなのタイプ?教えるなら、前者の方が回路間違いもないし楽。後者なら、学習するにはこっちの方が良いね。だけど回路作るのは面倒だよ。但し、nanoに載っているオシレータはセラロックだから、精度は出ないよ。クリスタルが載っている安いUNO互換機の方が精度は良い。暇つぶしに、テキトーなプログラムを書いてみた。手元のUNOで作ったけど、nanoでも同じで動くのかな?// pin// D0 Start/Stop switch — GND// D1 Reset/Pause switch — GND// D2 E// D3 D// D4 .// D5 C// D6 G// D7 1// D8 B// D9 2// D10 3// D11 F// D12 A// D13 4// Port numberint PIN_Start_Stop = 0;int PIN_Reset_Pause = 1;int LED_dig[4] = { 7, 9, 10, 13}; // .01s .1s 1s 10sint LED_seg[8] = {12, 8, 5, 3, 2, 11, 6, 4}; // ABCDEFG.// On/Off common cathodeint LED_dig_ON = 0;int LED_dig_OFF = 1;int LED_seg_ON = 1;int LED_seg_OFF = 0;// Patternint SEG_ptn[10][7] = { 1, 1, 1, 1, 1, 1, 0, // 0 0, 1, 1, 0, 0, 0, 0, // 1 1, 1, 0, 1, 1, 0, 1, // 2 1, 1, 1, 1, 0, 0, 1, // 3 0, 1, 1, 0, 0, 1, 1, // 4 1, 0, 1, 1, 0, 1, 1, // 5 1, 0, 1, 1, 1, 1, 1, // 6 1, 1, 1, 0, 0, 1, 0, // 7 1, 1, 1, 1, 1, 1, 1, // 8 1, 1, 1, 1, 0, 1, 1 // 9};void setup { int dig, seg; for dig = 0; dig4; dig++ { pinModeLED_dig[dig], OUTPUT; digitalWriteLED_dig[dig], LED_dig_OFF; } for seg = 0; seg8; seg++ { pinModeLED_seg[seg], OUTPUT; digitalWriteLED_seg[seg], LED_seg_OFF; } pinModePIN_Start_Stop, INPUT_PULLUP; pinModePIN_Reset_Pause, INPUT_PULLUP;}void loop { long int t_offset, t_duration = 0; long int t_disp, t_1; int dig, seg; int WATCH_run = 0; int reset_pause = 0; int Chat_Start_Stop = 0; int Chat_Reset_Pause = 0; while 1 { if digitalReadPIN_Start_Stop == LOW { if Chat_Start_Stop10 { Chat_Start_Stop = 1; } else { Chat_Start_Stop = 0; if WATCH_run == 0 { WATCH_run = 1; t_offset = millis – t_duration; } else { WATCH_run = 0; } } } if Chat_Start_Stop10 { Chat_Start_Stop++; } if digitalReadPIN_Reset_Pause == LOW { if Chat_Reset_Pause10 { Chat_Reset_Pause = 1; } else { Chat_Reset_Pause = 0; if WATCH_run == 1 { reset_pause = 1 – reset_pause; } else { reset_pause = 0; t_duration = 0; } } } if Chat_Reset_Pause10 { Chat_Reset_Pause++; } if WATCH_run == 1 { if reset_pause == 0 { t_duration = millis – t_offset; } } t_disp = t_duration; for dig = 0; dig4; dig++ { t_disp = t_disp / 10; t_1 = t_disp % 10; for seg = 0; seg7; seg++ { digitalWriteLED_seg[seg], SEG_ptn[t_1][seg]; } if dig == 2 { if WATCH_run == 1 { digitalWriteLED_seg[7], millis / 100 % 2; } } digitalWriteLED_dig[dig], LED_dig_ON; delay1; digitalWriteLED_dig[dig], LED_dig_OFF; digitalWriteLED_seg[7], LED_seg_OFF; } }}

Comments

コメントを残す