int ir = 7; int A = 13; int B = 12; int C = 11; void setup() { Serial.begin(9800); //モニターに出力するための設定 pinMode(ir,INPUT); //2ピンに接続した赤外線センサ pinMode(A,OUTPUT); //3ピンに接続したLED pinMode(B,OUTPUT); pinMode(C,OUTPUT); } void loop() { if(digitalRead(ir)==8F71FE0){ ここがダメでした digitalWrite(A,HIGH); delay(80); }else{ digitalWrite(A,LOW); } }
8F71FE0というのでひかるLEDを決めて光らせたいです。
うまくいったらこれを3つつけてできるのか試したいです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
Arduinoには、IRremoteという赤外線リモコン用のライブラリがあるので、それを利用すべきだと思います。
(自由自在にArduinoのハードウェアと、プログラムを操れるようになってから、自前のコードの開発にかかったのほうが良いです)
Arduinoで赤外線リモコンの値を読み取り、送信する方法のような記事が参考になるでしょう。
==
digitalRead(inputPin)という関数は、inputPinで指定した入力ピンに入っている電圧が低い(LOW)か高い(HIGH)かを返すものです。
赤外線リモコンから出力される赤外線の波形が返される訳ではありません。
この説明で、下記の部分のコードでは、なぜダメかという事が理解できますか?
if(digitalRead(ir)==8F71FE0){ ここがダメでした
投稿2018/10/17 12:46
総合スコア6915
0
https://deviceplus.jp/hobby/entry023/
こちらを参考にしてみてください。
投稿2018/10/17 12:31
総合スコア65
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/18 13:55
2018/10/19 10:48
2018/10/19 13:02
2018/10/19 13:37 編集
2018/10/20 03:56
0
自己解決
このプログラムはIRremoteの必要なとこを抜き出して作ったものです。
#include <IRremote.h>
int recvPin = 7;
IRrecv irrecv(recvPin);
void setup() {
pinMode(13, OUTPUT);
Serial.begin(9600);
irrecv.enableIRIn();
}
void ircode (decode_results *results) {
Serial.print(results->value, HEX);
}
void dumpInfo (decode_results *results)
{
if (results->overflow) {
Serial.println("IR code too long. Edit IRremoteInt.h and increase RAWLEN");
return;
}
Serial.print(results->value);
if (results->value == 150413280) { //results->valueに赤外線リモコンから受け取ったそれ
digitalWrite(13, HIGH); //ぞれのデータが入ってるので(results->value ==
Serial.print("光ったよーー"); //150413280)をいじってやるとうまくいきます。
delay(100);
digitalWrite(13, LOW);
}
if (results->value == 150413025) {
digitalWrite(12, HIGH);
Serial.print("光ったよーー2");
delay(100);
digitalWrite(12, LOW);
}
}
void loop() {
decode_results results;
if (irrecv.decode(&results)) { // Grab an IR code
dumpInfo(&results); // Output the results
Serial.println(""); // Blank line between entries
irrecv.resume(); // Prepare for the next value
}
}
結果
150413280光ったよーー
4294967295
150413280光ったよーー
150413025光ったよーー2
150413280光ったよーー
4294967295
150413280光ったよーー
150413025光ったよーー2
こんな感じでできました。
投稿2018/10/20 03:54
総合スコア22
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
いまいち意味不明だけど、リモコンのLEDをシリアル通信で光らせてみればお望みのことができるかと思われますが
投稿2018/10/14 14:55
編集2018/10/14 15:08総合スコア87719
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/14 15:14
2018/10/14 15:14
2018/10/14 15:15
2018/10/14 15:17
2018/10/14 15:19
2018/10/14 23:54
2018/10/15 13:02
2018/10/15 13:06
2018/10/15 22:55
2018/10/20 03:55
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/18 13:50
2018/10/20 03:56