Arduino Kodu Donuyor

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:
Motor hızlarını 255 yapınca sorunsuz çalışıyor fakat bu sefer de çok hızlı gidiyor kontrolü zor oluyor. Ayrıca motor hızı 150 olunca sol tekerlek dönmüyor.
 
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Geri
Yukarı