Arduino DC motor sürme ve hız kontrolü :
Arduino ile dc motor sürmenin birden fazla yöntemi vardır.Bu yazımda dc motor sürmeyi yöne ve hız kontrolü yapmayı anlatacağım.Elimizde bir motor sürücü olmadan arduino çıkış pinleri çok az bir küçte çıkış vereceği için yüksek akım çeken motorlarınız çalışmaya bilir küçük ve az akım çeken motorlar için bu yöntem uygulanmaktadır.İlk olarak dc motorumuzun pinlerini dijital (pwm) çıkışlara takıyoruz.Aşağıdaki örnek kod ile 3 adet dc motoru sürüyoruz.
//1.MOTORUN PİNLERİ int motorPinA1 = 2; int motorPinA2 = 3; //2.MOTORUN PİNLERİ int motorPinB1 = 4; int motorPinB2 = 5; //3.MOTORUN PİNLERİ int motorPinC1 = 6; int motorPinC2 = 7; void setup() { //Motor pinleri pinMode(motorPinA1, OUTPUT); pinMode(motorPinA2, OUTPUT); pinMode(motorPinB1, OUTPUT); pinMode(motorPinB2, OUTPUT); pinMode(motorPinC1, OUTPUT); pinMode(motorPinC2, OUTPUT); } void loop() { rotateRightFull(motorPinA1,motorPinA2); } //-----------------------SAĞA VE SOLA MOTOR DÖNÜŞLERİ--------------------------- /* Paramatreler: motorPin1:Sola Dönecek motorun pini motorPin2:Sola dönecek motorun gnd pini speedOfRotate:Dönüş hızı *Eğer motor sola dönecekse birinci pine güc verilir ikinci pin gnd durumuna çekilir *Tersi yönde bir dönüş söz konusu ise bu işlemin tersi yapılarak ikinci pine güç verilir birinci pin gnd drumuna çekilir */ //Motoru sola döndürür void rotateLeft(int motorPin1,int motorPin2,int speedOfRotate){ analogWrite(motorPin1, speedOfRotate); digitalWrite(motorPin2, LOW); } //Motoru sağa döndürür void rotateRight(int motorPin1,int motorPin2,int speedOfRotate){ analogWrite(motorPin2, speedOfRotate); digitalWrite(motorPin1, LOW); } //------------------------SAĞA VE SOLA TAM GÜÇ MOTOR DÖNÜŞLERİ------------------ /* Pinlere tam güç verilerek motorların gelen tüm voltaj değeri ile sağa ve sola dönmesi sağlanır */ //Sola tam güç döndür void rotateLeftFull(int motorPin1,int motorPin2){ digitalWrite(motorPin1, HIGH); digitalWrite(motorPin2, LOW); } //Sağa tam güç döndür void rotateRightFull(int motorPin1,int motorPin2){ digitalWrite(motorPin2, HIGH); digitalWrite(motorPin1, LOW); } //Tüm pinlerden gücü kes ve motorları sustur void stopAllMotors() { digitalWrite(motorPinA1, LOW); digitalWrite(motorPinA2, LOW); digitalWrite(motorPinB1, LOW); digitalWrite(motorPinB2, LOW); digitalWrite(motorPinC1, LOW); digitalWrite(motorPinC2, LOW); } //---------------------------------------------------------------------------------