2015/02/22

Arduino - 押しボタンスイッチと7セグメントLEDを使用したカウンタ回路

概要

モーメンタリ動作の押しボタンスイッチ(タクトスイッチ)と7セグメントLEDを使用したカウンタ回路の製作例を紹介します. 開発環境は下記のとおりです.

Arduino IDE Arduino 1.0.5-r2
回路
回路図

私はArduinoを持っていませんので,Arduino Duemilanove互換回路をブレッドボード上に作成しました. 私がSW1として使用したタクトスイッチはLED内蔵ですが,このLEDは使用していません. SW1は負論理(押下されている時にLOW,押下されていない時にHIGH)になっています.


回路図
回路部品

下表は,回路図中のSW1と「7セグメントLED表示回路」部分の使用部品表です. 参考単価をクリックすると,秋月電子通商のページに飛びます. 「互換品」と記載されているリンクについては,互換性があると考えられる部品のページに飛びます. ただし,私が互換性および動作を確認したわけではありませんので,ご注意ください.

番号 部品名 型番 数量 参考単価
SW1 LED付き
押しボタンスイッチ
Switronic ST-12-303FC-G
(緑,正方形)
1 150円
LED1 7セグメントLED PARA LIGHT C-421E
(カソードコモン)
1
R1 - R7 炭素皮膜抵抗 各社 1/4W 200Ω 7 1円
(互換品)
その他 リード線など 適量
スケッチ
SW1のチャタリングによる誤動作防止対策

タクトスイッチSW1を押下される度に,7セグメントLEDの表示数値をインクリメントするスケッチを作成しました. この動作を実現するためには,SW1のチャタリング対策が必要です.

下記のスケッチ例では,スイッチの状態を10ミリ秒の間隔を置いて2回確認するようにしています. スイッチが押下された状態の場合は,変数sw1_state_prevの値から前回のスイッチの状態を確認します. これはスイッチが押下された状態でインクリメントを複数回繰り返さないための判定処理です. sw1_state_prevがHIGHであればスイッチは押下直後ということになります.

スケッチ例

GitHubにて公開します.

完成

Webカメラで撮影したためピントが合っていません.ご了承ください.


7セグメントLEDカウンタ
製品紹介

1 件のコメント: