- 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
#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) ;
}
赤外線LEDのつなぎ方はこう↓。
D3---100Ω程度の抵抗---赤外線LED---D4
ただしLEDの向きはD4にカソード(脚の短い方)
それからD8をGNDにつなぐと送信を停止します
IDとして設定した1バイトを4回送信し、その直後に10(LFのASCIIコード)を送っています。
LFコードまでを受信したら、受信内容の確認に入ります。
受信側は4つの数値が全部同じかどうか調べてエラーがない時のみ受信値を採用するといいと思います。
- Newer: Arduinoのブートローダを書き込む方法
- Older: ミニマルなArduino