TACTSW:ON→○○○○ ○○○●
// ex7-4.c // PIC16F84A用
#include<16f84a.h> #fuses HS,NOWDT,NOPROTECT #use delay(clock=20000000) #define ON #define OFF 0
#byte RA=5 #byte RB=6
#bit IRSIG=RA.2
#bit TACTSW=RA.3 #bit DOWN_LED=RB.0 #bit UP_LED=RB.2 #bit RIGHT_LED=RB.1 #bit LEFT_LED=RB.3void main()
{
set_tris_a(0x0c);
set_tris_b(0x00);
RB=0;
while(1){
if(TACTSW==0){
DOWN_LED=★★;
}
else{
DOWN_LED=★★;
}
}
}
■ if文
if()の中が成立するかどうかで実行する内容を変えることができる命令を、if文といいます。
if(ここが成立する=1のとき、(1)を実行){
(1) 実行文;
}
else{成立しなかったとき(2)を実行
(2) 実行文;
}
■ タクト・スイッチ入力の考え方
スライド式、押しボタン式、トグル式など、様々なスイッチが市販されていますが、ここでは押しボタン式のタクト・スイッチを採用しました。このタクト・スイッチは押している間だけ接点が導通して、電気が流れるタイプのスイッチです。
余談ですが、電子部品の基礎知識「教えてヨーゴくん」によると、タクティール(触感・手触り)フィードバック・プッシュ・スイッチ の略称だそうです。
スイッチを押すと1が出力されるというのが普通の考え方ですが、PIC赤外線受信ボードでは押していない間はスイッチは常に「1」を出力し、押されたときだけ「0」を出力します。つまりスイッチは1と0の2種類の出力があるということになります。PICから見ると1,0を入力します。この2種類の入力をif文を使って、LEDを点灯させると次のようになります。
while(1){
if(TACTSW==0){//タクトスイッチは押されると0になる
★★;//DOWN_LEDの点灯
}
else{//押されていないときの処理
★★;DOWN_LEDの消灯
}
}課題通りにLEDを点灯するには★に何を入れればよいかを考えてください。

PICマイコンでつくるインドア・プレーン
みんなで作ろうインドア・プレーン