Yardım Arduino'da kumandada bir tuşa bastığımda her defasında farklı bir kod algılıyor

Bu konuyu okuyanlar

SalihGurbuz

Öğrenci
Katılım
25 Kasım 2021
Mesajlar
2
Reaksiyon puanı
0
Puanları
1
Yaş
24
Arkadaşlar 3 gündür IR sensör ile bir proje yapmaya çalışıyorum fakat bir türlü çözemediğim bir sorun var. Kodumun ve devremin doğru olduğuna emin olduğum halde devre çalışmıyor (IR sonsör çalışıyor fakat LED'ler yanmıyor). Kodlarla yapmak istediğim şey kumandadan bazı tuşlara basınca bazı LED'lerin yanması bazılarının sönmesi.

Kodlarımdan ve devremden emin olduğum için yanlış kütüphaneyi mi kurdum diye düşündüm. Tüm videolarda aynı link veriliyor ve bende bu linkten kütüphaneyi indirmeme rağmen videolardaki hocaların kumandanın tuşlarının kodunu öğrenmek için kullandığı ve örnek projelerden açtığı "IRrecvdemo" örnek projesi ben de yoktu. Yani sorun kütüphaneden dolayı mı bilmiyorum. 2 farklı bilgisayarda denedim ikisinde de olmuyor.

Son olarak projeyi çalıştırdığımda seri ekranda önce bir hata mesajı sonrada kumandadan aynı tuşa basmama rağmen farklı kodlar çıkıyor. Yardımcı olursanız çok sevinirim :). Şimdiden teşekkürler.

hata mesajı ;
The function decode(&results)) is deprecated and may not work as expected! Just use decode() without a parameter and IrReceiver.decodedIRData.<fieldname> .

Kodlarım ;
#include <IRremote.h>
int sari=3,kirmizi=4,yesil=5,beyaz=6,ses=7;
int IRdatapin=2;

IRrecv IR0(IRdatapin);
decode_results results;

#define tusguc 3772793023 // bu kodları bir videodan aldım.
#define tus0 3772811383
#define tus1 3772784863
#define tus2 3772817503
#define tus3 3772801183
#define tus4 3772780783
#define tus5 3772813423

void setup() {
Serial.begin(9600);
pinMode(sari,OUTPUT);
pinMode(kirmizi,OUTPUT);
pinMode(yesil,OUTPUT);
pinMode(beyaz,OUTPUT);
pinMode(ses,OUTPUT);
IR0.enableIRIn();
}

void loop() {
if(IR0.decode(&results))
{
Serial.println(results.value);
IR0.resume();
if(results.value==tusguc)
{
digitalWrite(sari,HIGH);
digitalWrite(kirmizi,HIGH);
digitalWrite(yesil,HIGH);
digitalWrite(beyaz,HIGH);
}
else if(results.value==tus0)
{
digitalWrite(sari,LOW);
digitalWrite(kirmizi,LOW);
digitalWrite(yesil,LOW);
digitalWrite(beyaz,LOW);
}
else if(results.value==tus1)
{
digitalWrite(sari,!digitalRead(sari));
digitalWrite(kirmizi,LOW);
digitalWrite(yesil,LOW);
digitalWrite(beyaz,LOW);
}
else if(results.value==tus2)
{
digitalWrite(sari,LOW);
digitalWrite(kirmizi,!digitalRead(kirmizi));
digitalWrite(yesil,LOW);
digitalWrite(beyaz,LOW);
}
else if(results.value==tus3)
{
digitalWrite(sari,LOW);
digitalWrite(kirmizi,LOW);
digitalWrite(yesil,!digitalRead(yesil));
digitalWrite(beyaz,LOW);
}
else if(results.value==tus4)
{
digitalWrite(sari,LOW);
digitalWrite(kirmizi,LOW);
digitalWrite(yesil,LOW);
digitalWrite(beyaz,!digitalRead(beyaz));
}
else if(results.value==tus5)
{
digitalWrite(ses,!digitalRead(ses));
}
}
delay(500);
}
hata mesajı ;
The function decode(&results)) is deprecated and may not work as expected! Just use decode() without a parameter and IrReceiver.decodedIRData.<fieldname> .

Kodlarım ;
#include <IRremote.h>
int sari=3,kirmizi=4,yesil=5,beyaz=6,ses=7;
int IRdatapin=2;

IRrecv IR0(IRdatapin);
decode_results results;

#define tusguc 3772793023 // bu kodları bir videodan aldım.
#define tus0 3772811383
#define tus1 3772784863
#define tus2 3772817503
#define tus3 3772801183
#define tus4 3772780783
#define tus5 3772813423

void setup() {
Serial.begin(9600);
pinMode(sari,OUTPUT);
pinMode(kirmizi,OUTPUT);
pinMode(yesil,OUTPUT);
pinMode(beyaz,OUTPUT);
pinMode(ses,OUTPUT);
IR0.enableIRIn();
}

void loop() {
if(IR0.decode(&results))
{
Serial.println(results.value);
IR0.resume();
if(results.value==tusguc)
{
digitalWrite(sari,HIGH);
digitalWrite(kirmizi,HIGH);
digitalWrite(yesil,HIGH);
digitalWrite(beyaz,HIGH);
}
else if(results.value==tus0)
{
digitalWrite(sari,LOW);
digitalWrite(kirmizi,LOW);
digitalWrite(yesil,LOW);
digitalWrite(beyaz,LOW);
}
else if(results.value==tus1)
{
digitalWrite(sari,!digitalRead(sari));
digitalWrite(kirmizi,LOW);
digitalWrite(yesil,LOW);
digitalWrite(beyaz,LOW);
}
else if(results.value==tus2)
{
digitalWrite(sari,LOW);
digitalWrite(kirmizi,!digitalRead(kirmizi));
digitalWrite(yesil,LOW);
digitalWrite(beyaz,LOW);
}
else if(results.value==tus3)
{
digitalWrite(sari,LOW);
digitalWrite(kirmizi,LOW);
digitalWrite(yesil,!digitalRead(yesil));
digitalWrite(beyaz,LOW);
}
else if(results.value==tus4)
{
digitalWrite(sari,LOW);
digitalWrite(kirmizi,LOW);
digitalWrite(yesil,LOW);
digitalWrite(beyaz,!digitalRead(beyaz));
}
else if(results.value==tus5)
{
digitalWrite(ses,!digitalRead(ses));
}
}
delay(500);
}
 

meymuncuk

Asistan
Cezalı
Katılım
19 Şubat 2021
Mesajlar
167
Reaksiyon puanı
132
Puanları
43
Yaş
25
decode(&results)) fonksiyonu kullanimdan kaldirilmiş diyor. decode(&results)) olmayan bir kod kopyala yapistir
 

SalihGurbuz

Öğrenci
Katılım
25 Kasım 2021
Mesajlar
2
Reaksiyon puanı
0
Puanları
1
Yaş
24
decode(&results)) fonksiyonu kullanimdan kaldirilmiş diyor. decode(&results)) olmayan bir kod kopyala yapistir
int IRpin = 2; // IR sensörün bağlı olduğu data pini
void setup() {
pinMode(IRpin,INPUT);
Serial.begin(9600); // Seri portu başlat
}
void loop() {
Serial.println(digitalRead(IRpin)); // IR sensörden okunan veriyi seri port ekranına yaz
delay(500); // Yarım saniye bekle
}
kaynak : Arduino ile IR sensör kullanımı
Hocam bu kodu deniyorum fakat bir tuşa bastığımda 0 sayısı gelmiyor.

int IRSensor = 2; // connect ir sensor to arduino pin 2
int LED = 13; // conect Led to arduino pin 13



void setup()
{



pinMode (IRSensor, INPUT); // sensor pin INPUT
pinMode (LED, OUTPUT); // Led pin OUTPUT
}

void loop()
{
int statusSensor = digitalRead (IRSensor);

if (statusSensor == 1)
digitalWrite(LED, LOW); // LED LOW
}

else
{
digitalWrite(LED, HIGH); // LED High
}

}

Bu kodu denedim hata vermeden çalıştı ama hocam herkes decode(&results)) kullanıyor bu kod olmadan nasıl proje yapabilirim ki ?

Acaba bir şekilde bu hatayı çözemez miyim ?
kaynak : Arduino with IR Sensor
Mesaj otomatik birleştirildi:

Hocam aldığım hatayı çözdüm. Eski sürüm bir kütüphane yükleyince o hata ortadan kalktı fakat hala bir tuşa bastığım zaman farklı farklı kumanda tuş kodları veriyor. Asıl sorun bu.
 
Son düzenleme:
Üst