左右コイルLEDを点灯させる課題1・2によりRX2-Tのプログラミングに慣れてきましたか?
この課題では、エルロン用の左右コイルLEDを写真のように200ms間隔で点滅させましょう。マグネット・アクチュエータを製作し、接続すればアクチュエータ・アームが左右にぱたぱたと動くことになります。
■課題1と課題2を参考にして、空欄を埋めてプログラムを完成してください。
// 赤外線2ch受信機 RX2&RX2-T対応
// ex3_rx2.c
// 左右コイル(LED)を交互に点滅
// for PIC12F683
#include<12f683.h>
#fuses INTRC_IO,NOWDT,PUT,NOPROTECT,NOMCLR,NOBROWNOUT
//ウオッチドック・タイマなし、パワーアップ・タイマ使用
//プロテクトなし、MCLRなし
#use delay( (その1) ) //8MHz駆動
#byte (その2)
#bit IRSIG=GP.3
#define ON 1
#define OFF 0
#define HI 1
#define LOW 0
#define (その3) //GP0,GP1=ON
#define (その4) //GP4,GP5=ON
#define motor 0x04; //GP2=ON
//メイン・ルーチン
main(){
set_tris_a( (その5) );//GP3入力、ほかは出力
setup_adc_ports( (その6) );//A-Dコンバータは使わない
setup_oscillator( (その7) );
//GP 5 4 3 2 1 0
// lc2 lc1 ir mt rc2 rc1
// 0 0 1 0 0 0 :0x08
while(1){
GP= (その8) ;
(その9) ;
GP= (その10) ;
(その11) ;
}
}
■実行
左右コイルLEDが200ms間隔で信号機のように交互に点滅すれば、プログラムは成功です。
■ダウンロード
この課題のC言語ソース・ファイルおよびHEXファイルは【ex3_rx2.lzh】よりダウンロードできます。
■解答
(その1)CLOCK=8000000 (その2)GP=5 (その3)rcoil 0x03 (その4)lcoil 0x30 (その5)0x08 (その6)NO_ANALOGS (その7)OSC_8MHz (その8)rcoil (その9)delay_ms(200) (その10)lcoil (その11)delay_ms(200)
次回はモータ用LEDを点滅させます。
長野県飯田工業高校 竹内浩一

インドアプレーンで学ぶマイコンのハードとソフト
赤外線制御で学ぶPICとC言語
PICマイコンでつくるインドア・プレーン
みんなで作ろうインドア・プレーン