En yeni “Nasıl Yapılır” yazımızda, bir mikrodenetleyici kullanarak bir lineer aktüatörün hareketinin zamanlamasını nasıl kontrol edeceğimizi anlatacağız. Mikrodenetleyiciler, hareket kontrolünde büyük özgürlük sağlar ve bu, mevcut neredeyse sınırsız hareket kontrol seçeneklerinden yalnızca bir örnektir. Uygulamanıza bağlı olarak, bu makaledeki örnek proje gereksinimlerinize uyacak şekilde ayarlanabilir; ister başka bir zaman kontrollü aktüatör ekleyin ister daha güçlü bir lineer aktüatörü beslemek için güç kaynağını artırın, seçim size kalmış.
Bir Mikrodenetleyici Kullanarak Hareket Kontrolü
Bir lineer aktüatörün hareket zamanlamasını kontrol etmek için bir Arduino mikrodenetleyici kullanılacaktır, ancak herhangi bir mikrodenetleyici de iş görecektir. Ancak bir shield kullandığımız için, mikrodenetleyicinin uyumlu olması gerekir. Bir lineer aktüatörün hızını değiştirmek üzere ayarlayabileceğiniz çeşitli parametreler üzerinden sizi adım adım geçireceğiz.
İhtiyacınız Olanlar
Bu örnek için bir lineer aktüatörü kontrol etmek üzere aşağıdaki bileşenleri kullanacağız:
- 1 x MegaMoto Plus
- 1 x Arduino Uno Rev3
- 1 x Mini Endüstriyel Aktüatör (PA-09, ancak herhangi bir lineer aktüatör uygundur)
- 1 x Güç Kaynağı (PS-20-12, ancak herhangi bir 12V güç kaynağı uygundur)
Bileşenleri Bağlama
Artık malzemelerimiz hazır, her şeyi bağlamamız gerekiyor. Neyse ki, ek kablolama ve lehimleme gerektiren ayrı bir kart yerine bir shield kullanarak bağlantılar basittir.
İlk olarak aktüatörümüzü, aktüatörden gelen iki kabloyu LC-80 üzerindeki A/B vida terminallerine bağlayarak LC-80 MegaMoto Plus shield’ımıza bağlayalım. Ardından LC-80’i güç kaynağımıza, bu örnekte PS-20-12’ye bağlamamız gerekiyor. Bunu, güç kaynağından gelen pozitif ve negatif kabloları LC-80’in BAT +/- terminallerine bağlayarak yapıyoruz.
Son olarak, aşağıdaki görselde gösterildiği gibi LC-80’i LC-066’ya bağlamalıyız; bu da birini diğerinin üzerine oturtmak kadar basittir.

Kodu Ayarlama
Aktüatörümüzün hareketi üzerinde tam kontrol sağlayabilmek için Arduino birimimizle biraz lineer aktüatör programlaması yapmamız gerekecek. Aktüatörümüzün her yönde 10 saniye uzayıp 10 saniye kısaldığı, toplamda 300 saniyelik bir döngü oluşturan örnek bir kod hazırladık.
//Use the jumpers on the board to select which pins will be used int EnablePin1 = 13; int PWMPinA1 = 11; int PWMPinB1 = 3; int extendtime = 10 * 1000; // 10 seconds, times 1000 to convert to milliseconds int retracttime = 10 * 1000; // 10 seconds, times 1000 to convert to milliseconds int timetorun = 300 * 1000; // 300 seconds, times 1000 to convert to milliseconds int duty; int elapsedTime; boolean keepMoving; void setup() { Serial.begin(9600); pinMode(EnablePin1, OUTPUT);//Enable the board pinMode(PWMPinA1, OUTPUT); pinMode(PWMPinB1, OUTPUT);//Set motor outputs elapsedTime = 0; // Set time to 0 keepMoving = true; //The system will move }//end setup void loop() { if (keepMoving) { digitalWrite(EnablePin1, HIGH); // enable the motor pushActuator(); delay(extendtime); stopActuator(); delay(10);//small delay before retracting pullActuator(); delay(retracttime); stopActuator(); elapsedTime = millis();//how long has it been? if (elapsedTime> timetorun) {//if it's been 300 seconds, stop Serial.print("Elapsed time is over max run time. Max run time: "); Serial.println(timetorun); keepMoving = false; } }//end if }//end main loop void stopActuator() { analogWrite(PWMPinA1, 0); analogWrite(PWMPinB1, 0); // speed 0-255 } void pushActuator() { analogWrite(PWMPinA1, 255); analogWrite(PWMPinB1, 0); // speed 0-255 } void pullActuator() { analogWrite(PWMPinA1, 0); analogWrite(PWMPinB1, 255);//speed 0-255 }
Kodu satır satır inceleyerek neler olduğunu anlamaya çalışmak önemlidir. Bunu yaparak kodu pek çok farklı görevi yerine getirecek şekilde özelleştirebilirsiniz. Ancak şimdilik en önemli kısım, pin atamaları ve döngü hızını ayarlamaya odaklanan ilk bölüm ve kurulum döngüsüdür.
LC-80 üzerindeki jumper’ları ayarlayarak veya kodu değiştirerek LC-80’deki pinleri, kodun ilk bölümündeki değerlerle eşleşecek şekilde yapılandırmanız gerekir. Bu durumda “Enable” pinini D13’e, “PWMA” pinini D11’e ve “PWMB” pinini D3’e ayarlayın. “Enable” pini motoru besleyip kontrol eden pindir; o olmadan aktüatör hareket etmeyi durdurur ve kontrol edilemez. “PWMA” ve “PWMB” pinleri, aktüatörün uzama ve kısalmasını kontrol eder. Bu örnekte “Sensor” pinlerine ihtiyacımız yok; dolayısıyla orada bir seçim yapmanız gerekmez.
Bir lineer aktüatörün zamanlayıcı kontrolü artık tamamlandı. Kodu Arduino’nun IDE’sini kullanarak (Arduino web sitesinden indirin) karta yükleyebilirsiniz. Lineer aktüatörünüz uzayıp kısalmaya başladığında, kodla biraz oynamaya ne dersiniz? Koddaki uzama/kısalma süresini ayarlayıp tekrar Arduino’ya yüklemeyi deneyin ve lineer aktüatörün nasıl tepki verdiğine bakın. Koddaki bu sayıları değiştirerek, istediğiniz uygulamaya göre hız ve toplam hareket döngü süresini kontrol edebilirsiniz.
Sonuç
Aşağıda, zamanlamalı bir aktüatörün çalışırken çekilmiş bir videosunu ekledik. Video örneğinde, zamanlamayı değiştirmenin başka bir yolunu göstermek istedik; bu yüzden 20 saniyelik bir döngüde her seferinde 5 saniye uzayıp kısalacak şekilde ayarladık.
Daha önce de belirtildiği gibi, bu bizim mikrodenetleyicilerimizden yardım alarak bir aktüatörün hareketini değiştirmenin yalnızca bir örneğidir. Aklınızda kendi özel kontrol yönteminiz varsa, yetenekli mühendis ekibimizin yardımıyla özel gereksinimlerinize göre bir kontrol sistemi oluşturabilirsiniz. Süreç boyunca size rehberlik edecek ve üniteleriniz üzerinde tam kontrole sahip olmanızı sağlayacaklardır. Özel sipariş süreci hakkında daha fazla bilgi edinmek isterseniz, özel sipariş sayfamıza göz atın.