2013年12月28日土曜日

7セグメントLED出力Libraryのサンプルプログラムの説明

7セグメントLED出力Libraryのサンプルプログラムの説明

<概要>

8桁までの7セグメントLEDの表示制御を行うLibraryと、Libraryを使用したサンプルプログラムについて説明します。

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

サンプルプログラム:
http://mbed.org/users/suupen/code/SevenSegmentLedSample/

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

http://youtu.be/jr09w8Pw0Lg



<Libraryについて>

7セグメントLED(正確には“ドット”を含めて8セグメントになります)をダイナミック駆動します。
8桁までの表示に対応しています。LPC1768なら、最初の端子設定で、1~8桁のいずれかを選択できます。(LPC1114FN28では、未使用になるCOM端子があると動作しませんでした。この場合はLibrary自体を修正して、COMの未使用端子部分のコードを削除する必要があります)
LEDは設定変更で、アノードコモン、カソードコモンどちらでも使用できます。また、表示変化方法も、1秒かけてスムーズに変化するものと、遅れ無しに変化するモードを選択することが出来ます。
COM端子の切り替え周期は1[ms]ですので、8桁表示(8本のCOM端子)の場合は8[ms]で全桁の表示を行います。
スムース表示は、10[ms]毎に表示輝度を変化させています。

このLibraryで使用するmbed機能

・ チッカータイマー(Ticker) 1[us]単位、1[ms]周期

使用可能な端子(LPC1768)
DigitalOut 設定が出来る端子。SEG端子、COM端子に割付の条件はありません。

使用可能な端子(LPC1114FN28)
DigitalOut 設定が出来る端子。
ただし、dp5,27 はopen drainなので、端子に電流を流し込む(アノードコモンのSEG端子、カソードコモンのCOM端子)の設定しかできません。

LPC1114FN28用の表示桁数変更
LPC1114FN28では、未使用のCOM端子があると動作しません。このため、4桁表示専用の定義を用意しました。
LPC1114FN28で4桁表示をする場合は、ヘッダファイルにある”USECOM4”の定義を有効にしてください。
(LPC1114FN28では、4,8桁以外では使えないことになります。これ以外の桁数の場合は、Libraryを改造してCOM端子の数を増減してください)

LPC1768では、上記の制限はありません。設定無しで、1~8桁表示のいずれかを選択できます。


SevenSegLed.hの設定箇所


 Libraryの使い方


サンプルプログラムより

7セグメントLED出力する端子の指定:SevenSegLed
7セグメントLEDへのデータ出力関数:sevenSegLed_main(数字部配列変数ポインタ、ドット部配列変数ポインタ)

表示データ格納用配列バッファは数字部、ドット部それぞれ用意してください。
サンプルプログラムでは、4桁表示なので、
数字部用 uint8_t D_7seg[4]
ドット部用 uint8_t D_dot[4]
としています。

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

mbed(LPC1768)を使用しています。
7セグメントLEDは、秋月通商(http://akizukidenshi.com/catalog/g/gI-03673/)のOSL40562-LRを使用しています。
電流制限抵抗は、100[Ω]を8本(SEG端子数分)使用しています。

電源はUSBから供給します。




回路図




ブレットボードでの配線

プログラムの動作内容

USBから電源を供給すると、カウントアップ表示をします。
左側2桁が16進数表示、右側2桁が10進数表示です。左から2、4桁目のドットが1秒毎に交互に点滅します。

サンプルプログラムの設定は、スムース表示モードですが、端子設定か、設定変更用関数で、スムース表示と、ハード表示を変更できます。



表示変更方法

以上

2013年12月22日日曜日

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

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

<概要>

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

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


サンプルプログラム:
http://mbed.org/users/suupen/code/SwAnalogInputLibraryExampleProgram/


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

http://www.youtube.com/watch?v=junEOuqq_RE&feature=share&list=UUBKFbjZziYG1M-dKWqTlUwA



<Libraryについて>

SWの状態を、抵抗による電圧の分圧比の変化で認識します。
使用する抵抗は、精度±1[%]のもの(金属皮膜抵抗)を使います。
(共立エレショップ:http://eleshop.jp/shop/c/c110312/)




SW認識回路

アナログポートから読み込んだアナログ認識値から、SWのON,OFF状態を判定します。この判定値を10[ms]毎に更新して、判定値が3回一致したら、その判定値を確定値として認識します。このため、SW操作をして認識値が変化するまでに30[ms]必要になります。
複数回のレベル認識をして確定値を決めるので、SW操作によるチャタリングノイズの除去が可能です。

このLibraryで使用するmbed機能

・ チッカータイマー(Ticker) 1[us]単位、10[ms]周期
・ アナログ入力(AnalogIn)

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

p15~p20 の内の6本
(各端子に3本のSW認識が可能で、合計18本のSW認識が可能)

SW認識処理の変更方法

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




SwAnalog.hの設定箇所

 Libraryの使い方



サンプルプログラムより

SW認識する端子の指定: swAnalog
SWのレベル認識関数  :checkLevel(swNo)
SWのONエッジ認識関数 :checkEdgeOn(swNo)
SWのOFFエッジ認識関数:checkEdgeOff(swNo)
 引数のswNoは、端子定義関数のswAnalogの第一引数には,0,1,2、第二引数には3,4,5と割り振られていきます。

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

mbed(LPC1768)を使用しています。SWは3つ使用しており、
アナログポートの、P20に接続します。



回路図




ブレットボードでの配線

プログラムの動作内容

SW0、SW1では、SWのレベル認識(OFFなのかONなのかを判定)する例です。
SW0は、ONしている間、LED1を点灯させます。
SW1は、OFFしている間、LED2を点灯させます。

SW2では、SWのエッジ認識(OFF→ON、ON→OFF)する例です。
SW2のONエッジ(OFF→ON)の時に、LED3の出力を反転させます。
SW2のOFFエッジ(ON→OFF)の時に、LED4の出力を反転させます。

以上

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を点滅させます。


以上

2013年12月15日日曜日

ADXL345(三軸加速度センサーモジュール)のmbed(LPC1768)での動作確認

ADXL345(三軸加速度センサーモジュール)のmbed(LPC1768)での動作確認

<概要>

ADXL345(三軸加速度センサーモジュール)(秋月通販コードM-06724)の動作確認をmbed(LPC1768)で行いました。

mbedには、このセンサー用のサンプルプログラム
(https://mbed.org/users/jrha/code/ADXL345/)
がありますが、mbedとの接続図が無かったのでこの点を補足します。





サンプルプログラムのmbed Web


サンプルプログラムで使用している Libraryは
http://mbed.org/users/nimbusgb/code/ADXL345_I2C/
です。



ADXL345 mbed Library

<mbedとの接続図>

このLibraryでは、mbedとセンサーとの間をI2Cで通信しています。
使用するI2C端子は、P9(sda),P10(scl)を使っています。

センサの電源は3.3[V]を使うので、mbedのGND,VOUTを使っています。



ADXL345 - mbed(LPC1768)との接続図


センサの情報はUSB-Serialでパソコンに送信します。パソコン側で、ターミナルソフト(Tera Tramなど)を使って表示させます。



ターミナルソフトの設定と、センサ情報表示例



以上

2013年9月23日月曜日

LPC1114FN28“いか醤油ぽっぽ焼き”プログラムの作業手順(“いか醤油ぽっぽ焼き”使用)

LPC1114FN28でのLチカ手順まとめ(“いか醤油ぽっぽ焼き”使用)


<概要>

LPC1114FN28をmbedとして動作させる手順をまとめました。分かってしまえばなんでもない作業ですが、それなりに準備や手順が多いのではじめての場合は戸惑うと思います。そのためのまとめです。

LPC1114FN28への書き込みは青mbed(LPC1768)を使用した“いか醤油ぽっぽ焼き”の方法をとります。

LPC1114FN28のPin14(LED1)にLEDを接続して、点滅させるプログラムで動作確認をします。

<手順概要>

1. ブレットボードに青mbed、LPC1114FN28で回路を組む
2. 青mbed(LPC1768)に“いか醤油ぽっぽ焼き”のプログラムを書き込む
3. パソコン上のmbed CompilerにLPC1114FN28をdevice登録してCompileする
4. パソコンからLPC1114FN28の実行ファイルを青mbedに転送して、LPC1114FN28に書き込み&実行


<手順詳細>

1. ブレットボードに青mbed、LPC1114FN28で回路を組む
青mbedとLPC1114FN28との接続は
http://mbed.org/users/okano/code/ika_shouyu_poppoyaki/wiki/Homepage
を参照。これにLPC1114FN28のPin14にLEDを接続します。



 回路図



ブレットボードでの配線

2. 青mbed(LPC1768)に“いか醤油ぽっぽ焼き”のプログラムを書き込む
mbedのwebから
http://mbed.org/users/okano/code/ika_shouyu_poppoyaki/
プログラムをダウンロードして、コンパイル・青mbedへの転送を行う。



 “いか醤油ぽっぽ焼き”プログラムの作業手順

3. パソコン上のmbed CompilerにLPC1114FN28をdevice登録してCompileする
mbedオンラインCompilerにLPC1114FN28をdevice登録して、サンプルプログラムをコンパイルする。


LPC1114FN28のdevice登録



サンプルプログラムのコンパイル

4. パソコンからLPC1114FN28の実行ファイルを青mbedに転送して、LPC1114FN28に書き込み&実行

青mbedにLPC1114FN28の実行ファイル(*.bin)を書き込んで、ファイル名を”bin”に変更(拡張子はつけない)した上で、青mbedのリセットボタンを押すと、書き込み&LPC1114FN28プログラムの自動実行 となる


書き込み&自動実行