Bir Arduino'yu bir Elektronik Hız Kontrolüne bağlamaya çalışıyorum ve korkunç bir şekilde başarısız oluyorum. Şimdiye kadar yaptıklarımı açıklayacağım ve ardından sorunu açıklayacağım.
Oraya varmadan önce, işte kullandığım parçaların listesi:
-
Arduino Uno (orijinal)
-
6V - 8.4V arası 18300 RPM 350 g-cm fırçalanmış motor.
-
Traxxas XL-5 fırçalı motor ESC. 1600 Hz, yanılmıyorsam, kabul ettiği en yüksek PWM sinyalidir.
-
Venom 4200mAh NiMH 8.4V pil takımı (yakında 7.2V ile değiştirilecektir).
Bu yüzden önce ESC'yi motora bağladım. Bağlantı, bu kurşun kurşun bağlantısı (bağlantı sağlam görünüyor) ve ardından Arduino'ya ESC'dir. Beyaz teli 9 numaralı pime ve siyah teli toprağa bağladım. Yanılmıyorsam, bu standart servo motor kurulumu. Daha sonra Arduino'yu sağlam bir USB portu olan bilgisayarıma taktım. Son olarak, pil takımını ESC'ye bağladım.
Şimdi ESC'mi denemek ve kalibre etmek için bazı temel kodlar yüklemeyi denedim, ancak açık bir şekilde çalışmayı reddediyoruz. Motor hiçbir koşulda çalışmaz. Kullandığım kod sadece sinyal monitörü tarafından gönderilen sinyali gönderir.
Arduino'ya tam bir çaylak olduğum için neyin yanlış olabileceğini bilmiyorum . Aklımdaki programın bilgisayara bağlı değilken çalışabilmesi, bir düğme etkinleştirildiğinde etkinleştirilmesi, motoru belirli bir mesafe boyunca çalıştırması (bir kodlayıcı içerir, değil mi?) Ve sonra durması gerekiyor.
Yanlış yapabileceğim herhangi bir işaret veya şey var mı?
int value = 0; Servo myservo; void setup () { firstESC.attach (9); // 9. pin'e eklendi Serial.begin (9600); } boşluk döngüsü () {myservo.writeMicroseconds (değer); eğer (Serial.available ()) değer = Serial.parseInt (); // Seri'den bir Tamsayı ayrıştırın}
ve buradaki:
#include <Servo.h> # MAX_SIGNAL 2000'i tanımlayın
#define MIN_SIGNAL 700 # MOTOR_PIN 9Servo motorunu tanımlayın; void setup () {Serial.begin (9600); Serial.println ("Program başlangıcı ..."); Serial.println ("Bu program ESC'yi kalibre edecek."); motor.attach (MOTOR_PIN); Serial.println ("Şimdi maksimum çıktı yazılıyor."); Serial.println ("Güç kaynağını açın, ardından 2 saniye bekleyin ve herhangi bir tuşa basın."); motor.writeMicroseconds (MAX_SIGNAL); // (! Serial.available ()); Serial.read (); // Min çıktı gönder Serial.println ("Minimum çıktı gönderiliyor"); motor.writeMicroseconds (MIN_SIGNAL);} void loop () {}
^ utanmadan internetten kopyalandı