Home > 赤外線ビーコン

赤外線ビーコン

  • 2010-06-16 (水)
定期的に特定の1バイト数値を1200bpsで送信します

赤外線LEDのつなぎ方はこう↓。
D3---100Ω程度の抵抗---赤外線LED---D4
ただしLEDの向きはD4にカソード(脚の短い方)

それからD8をGNDにつなぐと送信を停止します

IDとして設定した1バイトを4回送信し、その直後に10(LFのASCIIコード)を送っています。
LFコードまでを受信したら、受信内容の確認に入ります。
受信側は4つの数値が全部同じかどうか調べてエラーがない時のみ受信値を採用するといいと思います。


#define ID 'x' // char to send. you can change it as you want. #include <SoftwareSerial.h> #define rxPin 2 // dummy #define txPin 4 // serial sending pin #define modPin 3 // modulation pin #define ctrPin 8 // control pin. connect it to GND to disable sending SoftwareSerial softSerial = SoftwareSerial(rxPin, txPin); void setup() { pinMode(txPin, OUTPUT) ; pinMode(modPin, OUTPUT) ; digitalWrite(ctrPin, HIGH) ; // pull-up the pin OCR2A = 104 ; // making 38kHz TCCR2B = 0x09 ; // set no prescaler for TIMER2, OCR2A as TOP analogWrite(modPin, 52) ; // 50% duty softSerial.begin(1200) ; } void loop() { if (digitalRead(ctrPin) == HIGH) { // send ID 4 times softSerial.print(ID, BYTE) ; softSerial.print(ID, BYTE) ; softSerial.print(ID, BYTE) ; softSerial.print(ID, BYTE) ; // send LF (terminator) softSerial.print(10, BYTE) ; } delay(100) ; }

Home > 赤外線ビーコン

Search
Feeds

Page Top