Arduino Uno kumanda ile nasıl başlatılır?

MUHAMMEDDM38

Decapat
Katılım
14 Mayıs 2023
Mesajlar
294
Çözümler
2
Daha fazla  
Cinsiyet
Erkek
Merhaba MEB projesi için mini sumo robot yapıyorum. Robotu kumanda ile başlatmam lazım. nasıl yapabilirim ır alıcı ile? (kart: Arduino Nano)
 
Merhaba MEB projesi için mini sumo robot yapıyorum. Robotu kumanda ile başlatmam lazım. Nasıl yapabilirim ır alıcı ile? (kart: Arduino Nano)

Güzel soru, güç kaynağını açıp kapatılabilir şekilde yap, gücü açtığında karta güç gelecek ve komutları bekleyecek. Sen kumandadaki tuşa bastığın an kod algılayıp ana kodu hayata geçirecek. Pratik ve teorik olarak basit.
 
Güzel soru, güç kaynağını açıp kapatılabilir şekilde yap, gücü açtığında karta güç gelecek ve komutları bekleyecek. Sen kumandadaki tuşa bastığın an kod algılayıp ana kodu hayata geçirecek. Pratik ve teorik olarak basit.
hocam daha yeni başladım detaylı şekilde anlatırmısınız
 
Hocam daha yeni başladım detaylı şekilde anlatır mısınız?

Tabii ki. Öncelikle kod kısmını anlatayım. Ana kodu yazdıktan sonra sürekli tekrarlayan bir if döngüsü içine kodu atıyoruz, else kısmı boş kalacak. Ondan sonra kumandayı koda tanımlıyor ve hangi tuşu kullanacak iseniz o tuşa basıldığında ana kodun çalışmasını sağlıyoruz. Kumanda modelinize göre hazır tanımlama kodları internette bulunuyor. Örnek bir kod atayım hemen modelinize göre değişir bu kod kendim yazmaya üşendim.

Kod:
include "IRremote.h" // Kütüphane ekleniyor.

String buton1 = "BA45FF00"; // Mevcut kumandamızın buton kodları burada tanımlanıyor.
String buton2 = "B946FF00";
String buton3 = "B847FF00";
String buton4 = "BB44FF00";
String buton5 = "BF40FF00";
String buton6 = "BC43FF00";
String buton7 = "F807FF00";
String buton8 = "EA15FF00";
String buton9 = "F609FF00";
String buton0 = "E619FF00";
String buton_yildiz = "E916FF00";
String buton_kare = "F20DFF00";
String buton_yukari = "E718FF00";
String buton_asagi = "AD52FF00";
String buton_sol = "F708FF00";
String buton_sag = "A55AFF00";
String buton_ok = "E31CFF00";

String kod, sonkod; // Kullanacağımız string değişkenler tanımlanıyor.
int sensor = A0; // Sensörün S pini belirtiliyor.

void setup() {
 Serial.begin(9600);
 IrReceiver.begin(sensor,0); // Kütüphane başlatılıyor.
}

void loop() {
 if(IrReceiver.decode()) { // Bir kod alındı.
 kod = String(IrReceiver.decodedIRData.decodedRawData, HEX); // Kodu değişkene aktarıyoruz.
 if (kod != "0"){sonkod = kod;} else {kod = sonkod;} // 0 dönüyorsa tuş basılı tutuluyordur.
 kod.toUpperCase(); // Kod büyük harfe dönüştürülüyor.
 Serial.print("Okunan Kod: ");
 Serial.print(kod); // Kod ekrana yazılıyor.
 Serial.print(" | Buton: ");
 int kayitli = 0;
 if (kod == buton1){Serial.println("1"); kayitli = 1;} // Kod mevcut kodlarla karşılaştırılıyor.
 if (kod == buton2){Serial.println("2"); kayitli = 1;}
 if (kod == buton3){Serial.println("3"); kayitli = 1;}
 if (kod == buton4){Serial.println("4"); kayitli = 1;}
 if (kod == buton5){Serial.println("5"); kayitli = 1;}
 if (kod == buton6){Serial.println("6"); kayitli = 1;}
 if (kod == buton7){Serial.println("7"); kayitli = 1;}
 if (kod == buton8){Serial.println("8"); kayitli = 1;}
 if (kod == buton9){Serial.println("9"); kayitli = 1;}
 if (kod == buton0){Serial.println("0"); kayitli = 1;}
 if (kod == buton_yildiz){Serial.println("Yıldız"); kayitli = 1;}
 if (kod == buton_kare){Serial.println("Kare"); kayitli = 1;}
 if (kod == buton_yukari){Serial.println("Yukarı"); kayitli = 1;}
 if (kod == buton_asagi){Serial.println("Aşağı"); kayitli = 1;}
 if (kod == buton_sol){Serial.println("Sol"); kayitli = 1;}
 if (kod == buton_sag){Serial.println("Sağ"); kayitli = 1;}
 if (kod == buton_ok){Serial.println("OK"); kayitli = 1;}
 if (kayitli == 0){Serial.println("Kayıtlı değil");} // Kod hiçbiri ile eşleşmemiş.
 IrReceiver.resume(); // Sıradaki kodu okumaya hazırlanıyoruz.
 }
}

Devamına gelirsek Arduino kartına güç veren bir pil veya batarya her ne ise, ona basit bir lehim sistemi ile açma kapama butonu lehimliyoruz, mantık şu. Robotu çalıştırmadan önce sisteme güç veriyorsun, arka planda durmadan tuşa basmanı bekliyor ve tuşa bastığın an ana kod çalışmaya başlıyor. Döngü komutu nedeni ile bazı kod sıkıntıları çıkabilir testlerini iyi yapmalısın. Anlamadığın başka bir yer var mı hocam? (Üstteki kod tanımlama kısmına örnek buradan bazı parçalar kullanılacak sadece)
 
Tabii ki. Öncelikle kod kısmını anlatayım. Ana kodu yazdıktan sonra sürekli tekrarlayan bir if döngüsü içine kodu atıyoruz, else kısmı boş kalacak. Ondan sonra kumandayı koda tanımlıyor ve hangi tuşu kullanacak iseniz o tuşa basıldığında ana kodun çalışmasını sağlıyoruz. Kumanda modelinize göre hazır tanımlama kodları internette bulunuyor. Örnek bir kod atayım hemen modelinize göre değişir bu kod kendim yazmaya üşendim.

Kod:
include "IRremote.h" // Kütüphane ekleniyor.

String buton1 = "BA45FF00"; // Mevcut kumandamızın buton kodları burada tanımlanıyor.
String buton2 = "B946FF00";
String buton3 = "B847FF00";
String buton4 = "BB44FF00";
String buton5 = "BF40FF00";
String buton6 = "BC43FF00";
String buton7 = "F807FF00";
String buton8 = "EA15FF00";
String buton9 = "F609FF00";
String buton0 = "E619FF00";
String buton_yildiz = "E916FF00";
String buton_kare = "F20DFF00";
String buton_yukari = "E718FF00";
String buton_asagi = "AD52FF00";
String buton_sol = "F708FF00";
String buton_sag = "A55AFF00";
String buton_ok = "E31CFF00";

String kod, sonkod; // Kullanacağımız string değişkenler tanımlanıyor.
int sensor = A0; // Sensörün S pini belirtiliyor.

void setup() {
 Serial.begin(9600);
 IrReceiver.begin(sensor,0); // Kütüphane başlatılıyor.
}

void loop() {
 if(IrReceiver.decode()) { // Bir kod alındı.
 kod = String(IrReceiver.decodedIRData.decodedRawData, HEX); // Kodu değişkene aktarıyoruz.
 if (kod != "0"){sonkod = kod;} else {kod = sonkod;} // 0 dönüyorsa tuş basılı tutuluyordur.
 kod.toUpperCase(); // Kod büyük harfe dönüştürülüyor.
 Serial.print("Okunan Kod: ");
 Serial.print(kod); // Kod ekrana yazılıyor.
 Serial.print(" | Buton: ");
 int kayitli = 0;
 if (kod == buton1){Serial.println("1"); kayitli = 1;} // Kod mevcut kodlarla karşılaştırılıyor.
 if (kod == buton2){Serial.println("2"); kayitli = 1;}
 if (kod == buton3){Serial.println("3"); kayitli = 1;}
 if (kod == buton4){Serial.println("4"); kayitli = 1;}
 if (kod == buton5){Serial.println("5"); kayitli = 1;}
 if (kod == buton6){Serial.println("6"); kayitli = 1;}
 if (kod == buton7){Serial.println("7"); kayitli = 1;}
 if (kod == buton8){Serial.println("8"); kayitli = 1;}
 if (kod == buton9){Serial.println("9"); kayitli = 1;}
 if (kod == buton0){Serial.println("0"); kayitli = 1;}
 if (kod == buton_yildiz){Serial.println("Yıldız"); kayitli = 1;}
 if (kod == buton_kare){Serial.println("Kare"); kayitli = 1;}
 if (kod == buton_yukari){Serial.println("Yukarı"); kayitli = 1;}
 if (kod == buton_asagi){Serial.println("Aşağı"); kayitli = 1;}
 if (kod == buton_sol){Serial.println("Sol"); kayitli = 1;}
 if (kod == buton_sag){Serial.println("Sağ"); kayitli = 1;}
 if (kod == buton_ok){Serial.println("OK"); kayitli = 1;}
 if (kayitli == 0){Serial.println("Kayıtlı değil");} // Kod hiçbiri ile eşleşmemiş.
 IrReceiver.resume(); // Sıradaki kodu okumaya hazırlanıyoruz.
 }
}

Devamına gelirsek Arduino kartına güç veren bir pil veya batarya her ne ise, ona basit bir lehim sistemi ile açma kapama butonu lehimliyoruz, mantık şu. Robotu çalıştırmadan önce sisteme güç veriyorsun, arka planda durmadan tuşa basmanı bekliyor ve tuşa bastığın an ana kod çalışmaya başlıyor. Döngü komutu nedeni ile bazı kod sıkıntıları çıkabilir testlerini iyi yapmalısın. Anlamadığın başka bir yer var mı hocam? (Üstteki kod tanımlama kısmına örnek buradan bazı parçalar kullanılacak sadece)
hocam teşekkür ederim
 

Technopat Haberler

Geri
Yukarı