2013年12月21日土曜日

SW認識Library(SwDigital)と、サンプルプログラムの説明

SW認識Library(SwDigital)と、サンプルプログラムの説明

<概要>

SW認識させるLibrary(SWDigital)と、Libraryを使用したサンプルプログラムについて説明します。

Libraryとサンプルプログラムは次のアドレスからダウンロードできます。
Library:
http://mbed.org/users/suupen/code/SwDigital/#af5fbc75b7bf

サンプルプログラム:
http://mbed.org/users/suupen/code/SwDigitalLibraryExampleProgram/file/3f5813718d33/SwDigital.lib

サンプルプログラムの動作動画




<Libraryについて>

SWのレベルを10[ms]毎に認識して、レベルが3回一致したら、そのレベルを確定値として認識します。このため、SW操作をして認識値が変化するまでに30[ms]必要になります。
複数回のレベル認識をして確定値を決めるので、SW操作によるチャタリングノイズの除去が可能です。

SW認識に使用する端子は、mbed内部でプルアップしているので、外部にプルアップ抵抗を接続する必要はありません。

このLibraryで使用するmbed機能
・ チッカータイマー(Ticker) 1[us]単位、10[ms]周期
・ デジタル入力(DigitalIn) プルアップ有効

SW入力に設定可能な端子(LPC1768)

p5~p30 の内の20本

SW認識処理の変更方法
SwDitital.h内の定義を変更することで、以下の条件を変更できます。
SW認識周期:Z_matchcycle  設定範囲:10[ms](10000)~100[ms](100000)  (1[us/count]) 
SW一致回数:Z_itchPattern 設定範囲:3~8[回]




SwDigital.hの設定箇所


 Libraryの使い方


サンプルプログラムより

SW認識する端子の指定: swDigital
SWのレベル認識関数  :checkLevel(swNo)
SWのONエッジ認識関数 :checkEdgeOn(swNo)
SWのOFFエッジ認識関数:checkEdgeOff(swNo)
 引数のswNoは、端子定義関数のswDigitalの引数のポートの順番(0~19)


<サンプルプログラムについて>

mbed(LPC1768)を使用しています。SWは2つ使用しており、
SW1 : P10
SW2 : P20
に接続します。



回路図


SW1ではSWのレベル認識(OFFなのかONなのかを判定)させてLED1、LED2を制御します。
SW1 がOFFのときは、mbed(LPC1768)のLED2が点灯します。
        ON  の時は、 LED1が点灯します。

SW2ではSWのエッジ認識(OFF→ON、ON→OFFの変化)させてLED3,LED4を制御します。
SW2 をOFF→ON、ON→OFFの変化をカウントしてLED3,LED4を点滅させます。


以上

0 件のコメント:

コメントを投稿