PSoCでタクトスイッチを利用する


psoc_sw_01.gif
今回はPSoCを利用して簡単なスイッチのテストをする。PSoCではポートのデジタル入出力は変数を扱う感覚で簡単にできる。

psoc_sw_02.gif
今回はスイッチの押下状況を液晶に表示することにした。「Misc Digital」にある「LCD」をダブルクリックして選択する。

psoc_sw_03.gif
そして「Config」メニューの「Interconnect」から画面を切り替える。

psoc_sw_04.gif
配線の設定画面では「LCD_1」の「LCDPort」を「Port_2」に、「Port_0_0」の「Drive」を「Pull Down」にした。今回はスイッチをポート00に接続するが、スイッチが押されるとスイッチから5Vが出力され、PSoCのポートに5Vが入力される。そのため押されていないときは抵抗を介してGND側に接続されるプルダウンとした。
設定が終わったら「View」メニューの「Application Editor」で画面を切り替える。

psoc_sw_05.gif
「Source Files」の「main.c」に処理を書く。ポート0の状態は「PRT0DR」を参照する。今回はポート00にスイッチを接続したので「PRT0DR & 1」とすることでスイッチ状態を取得している。


void main()
{
LCD_1_Start();

while(1)
{
if(PRT0DR & 1) // Check SW status (Input from Port00)
{
LCD_1_Position(0,0);
LCD_1_PrCString("on ");
}
else
{
LCD_1_Position(0,0);
LCD_1_PrCString("off");
}
}
}





_DSC9046.JPG
PSoCへプログラムを書き込んだら配線する。

_DSC9047.JPG
PSoCEval1基板には自由に利用できるスイッチが1つ実装されている(灰色の丸い押す部分がついているものがスイッチ)。このスイッチはVCCと直接接続され、スイッチを押すと出力側に5Vの電圧がかかる。

安心して利用できるように本来なら抵抗を介してポートに接続するべきだが...面倒なので直接ポート00に接続した。


_DSC9048.JPG
PSoCへ書き込み、電源を入れると「off」と表示され、スイッチを押すと「on 」となった。


カテゴリー「電子工作」 のエントリー