سلام
من با برد آردوینو uno و یک گیرنده و فرستنده مادون قرمز در حال ساخت پروژه کنترل از راه دور هستم
گیرنده روی برد به درستی جواب میده و کدهای همه کنترلها و مادون قرمزهای ارسالی رو دریافت میکنه اما زمانی که خودم دستور ارسال مادون قرمز با کتابخونه IRremote.h رو اجرا میکنم کدی ارسال نمیشه و تو سریال فقط 0 چاپ میشه ...
پین فرستنده : 3
پین دریافت کننده : 11
مقاومت استفاده شده : 100 اهم / 470 / 220 ... هر سه نوع استفاده شده
ممنون میشم راهنمایی کنید ... واقعا گیر کردم
فکر میکنم موجی که ساخته میشه ایراد داره
کد PHP:
#include <boarddefs.h>
#include <IRremote.h>
#include <IRremoteInt.h>
#include <ir_Lego_PF_BitStreamEncoder.h>
IRsend irsend;
const int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
irrecv.blink13(true);
pinMode(3, OUTPUT);
}
void loop() {
if (Serial.read() != -1) {
for (int i = 0; i < 3; i++) {
irsend.sendNEC(0x00ff01fe, 32);
Serial.println("Sending");
delay(100); //In this example, the signal will be repeated every 5 seconds, approximately.
Serial.println(irrecv.decode(&results));
irrecv.resume();
}
}
if (irrecv.decode(&results)) {
Serial.print(results.bits);
Serial.println(irrecv.decode(&results));
if (results.decode_type == NEC) {
Serial.print("NEC: ");
digitalWrite(13, HIGH);
delay(400);
digitalWrite(13, LOW);
delay(400);
} else if (results.decode_type == SONY) {
Serial.print("SONY: ");
digitalWrite(13, HIGH);
delay(400);
digitalWrite(13, LOW);
delay(400);
} else if (results.decode_type == RC5) {
Serial.print("RC5: ");
digitalWrite(13, HIGH);
delay(400);
digitalWrite(13, LOW);
delay(400);
} else if (results.decode_type == RC6) {
Serial.print("RC6: ");
digitalWrite(13, HIGH);
delay(400);
digitalWrite(13, LOW);
delay(400);
} else if (results.decode_type == UNKNOWN) {
Serial.print("UNKNOWN: ");
digitalWrite(13, HIGH);
delay(400);
digitalWrite(13, LOW);
delay(400);
}
Serial.println(results.value, HEX);
irrecv.resume(); // Receive the next value
}
}