Program Resource

開発者向け各種コード、アルゴリズム、リソース情報ライブラリ もしくはねふぁの覚え書き

ラジコンに取り付ける事が出来るパトカー等の回転灯のパーツがある。GOOLRC AX-511Rと言う製品で、赤や橙、青色やその他の形状のバリエーションがある。

GoolRC AX-511Y RC 多機能 円形 超高輝度 パトカー LED ライト 警告灯 ストロボ ブラスト 点滅 高速 低速 回転モード付き GoolRC AX-511Y RC 多機能 円形 超高輝度 パトカー LED ライト 警告灯 ストロボ ブラスト 点滅 高速 低速 回転モード付き

とりあえず中央の電源と黒のGND線に5V程度給電すれば、回転灯が点く。ちょっとした電子工作にも使えそうだ。

3本目が信号線で、幾つかの点灯パターンを切り替える事が出来る。

Arduinoから切り替えられないかと情報を探してみたが、信号線の扱いについての情報が全く出てこない。とりあえず製品説明にはch3に接続しろ、とだけ書かれている。

信号線をGNDに落としてみたり、5Vに上げてみたり、色々試してみたが何かのはずみでパターンが変わるものの、なにがきっかけでパターンが変わっているのか良く分からない。

しばらく悩んだ末、ch3と言うのはどうやらラジコンの受信器のch3に接続するらしい事が分かった(当初ラジコン用パーツと分かっていなかった)。ラジコンの信号の情報を探してみると、20msサイクルの信号で、先頭1~2msのHIGH信号幅でPWM信号を送信しているらしい。

https://www.superdroidrobots.com/shop/custom.aspx/remote-control-rc-support/40/

そこで、疑似的にパルス信号を作り出し、信号を低(1ms)~高(1.8ms)~低(1ms)と変化させてみた所、上手く回転灯の点灯パターンが切り替わった。

以下、5秒毎にパターンを切り替える簡単なスケッチ例。

#define SIG_PIN	A0

void sendsignal(int dur){
	for (int i = 0; i < 9; i++) {
		digitalWrite(SIG_PIN, HIGH);
		delayMicroseconds(dur);
		digitalWrite(SIG_PIN, LOW);
		delayMicroseconds(20000-dur);
	}
}

void sendswitch(){
	sendsignal(1000);
	sendsignal(1800);
	sendsignal(1000);
}

void setup() {
	// put your setup code here, to run once:
	pinMode(SIG_PIN, OUTPUT);
}

void loop() {
	sendswitch();
	delay(5000);
}

回転灯の点灯と切り替えの様子。

Print Friendly, PDF & Email

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


*

CAPTCHA