metinsama
Megapat
- Katılım
- 7 Aralık 2014
- Mesajlar
- 814
- Çözümler
- 5
Merhaba arkadaşlar, IR sensör ile kontrol edilebilen araba yapıyorum. Motorları ne zaman aktif etsem, kodum donuyor, cevap vermiyor. Kod üstünden anlatayım. Kodu yüklüyorum, kumandamdan ileri tuşunu atadağım tuşa basıyorum, Serial monitörde Up yazısı çıkıyor ve donuyor, sistem hiçbir şekilde cevap vermiyor.
C:
#include <IRremote.h>
#define BUTTONUP 18
#define BUTTONDOWN 16
#define BUTTONLEFT 7
#define BUTTONRIGHT 11
#define BUTTONSTOP 104
#define MotorR1 7
#define MotorR2 6
#define MotorRE 9
#define MotorL1 5
#define MotorL2 4
#define MotorLE 3
const byte IR_RECEIVE_PIN = 2;
void setup() {
pinMode(MotorL1, OUTPUT);
pinMode(MotorL2, OUTPUT);
pinMode(MotorLE, OUTPUT); //Motorlarımızı çıkış olarak tanımlıyoruz.
pinMode(MotorR1, OUTPUT);
pinMode(MotorR2, OUTPUT);
pinMode(MotorRE, OUTPUT);
Serial.begin(9600);
IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK);
}
void loop() {
if (IrReceiver.decode())
{
Serial.println(IrReceiver.decodedIRData.command);
/***İleri***/
switch(IrReceiver.decodedIRData.command){
case BUTTONUP:
Serial.println("UP");
digitalWrite(MotorR1,HIGH); // Sağ motorun ileri hareketi aktif
digitalWrite(MotorR2, LOW); // Sağ motorun geri hareketi pasif
analogWrite(MotorRE, 150); // Sağ motorun hızı 150
digitalWrite(MotorL1,HIGH); // Sol motorun ileri hareketi aktif
digitalWrite(MotorL2, LOW); // Sol motorun geri hareketi pasif
analogWrite(MotorLE, 150); // Sol motorun hızı 150
break;
case BUTTONDOWN:
Serial.println("DOWN");
digitalWrite(MotorR1, LOW); // Sağ motorun ileri hareketi pasif
digitalWrite(MotorR2, HIGH); // Sağ motorun geri hareketi aktif
analogWrite(MotorRE, 150); // Sağ motorun hızı 150
digitalWrite(MotorL1, LOW); // Sol motorun ileri hareketi pasif
digitalWrite(MotorL2, HIGH); // Sol motorun geri hareketi aktif
analogWrite(MotorLE, 150); // Sol motorun hızı 150
break;
case BUTTONLEFT:
Serial.println("LEFT");
digitalWrite(MotorR1, HIGH); // Sağ motorun ileri hareketi aktif
digitalWrite(MotorR2, LOW); // Sağ motorun geri hareketi pasif
analogWrite(MotorRE, 150); // Sağ motorun hızı 0 (Motor duruyor)
digitalWrite(MotorL1, HIGH); // Sol motorun ileri hareketi aktif
digitalWrite(MotorL2, LOW); // Sol motorun geri hareketi pasif
analogWrite(MotorLE, 0); // Sol motorun hızı 150
break;
case BUTTONRIGHT:
Serial.println("RIGHT");
digitalWrite(MotorR1, HIGH); // Sağ motorun ileri hareketi aktif
digitalWrite(MotorR2, LOW); // Sağ motorun geri hareketi pasif
analogWrite(MotorRE, 0); // Sağ motorun hızı 0 (Motor duruyor)
digitalWrite(MotorL1, HIGH); // Sol motorun ileri hareketi aktif
digitalWrite(MotorL2, LOW); // Sol motorun geri hareketi pasif
analogWrite(MotorLE, 150); // Sol motorun hızı 150
break;
case BUTTONSTOP:
Serial.println("STOP");
digitalWrite(MotorR1, LOW); // Sağ motorun ileri hareketi pasif
digitalWrite(MotorR2, LOW); // Sağ motorun geri hareketi aktif
analogWrite(MotorRE, 150); // Sağ motorun hızı 150
digitalWrite(MotorL1, LOW); // Sol motorun ileri hareketi pasif
digitalWrite(MotorL2, LOW); // Sol motorun geri hareketi aktif
analogWrite(MotorLE, 150); // Sol motorun hızı 150
break;
}
IrReceiver.resume();
delay(100);
}
}
Son düzenleyen: Moderatör: