Roboshield ile DC Motor Kullanımı - Engelden Kaçan Robot Nasıl Yapılır?

Roboshield ile DC Motor Kullanımı - Engelden Kaçan Robot Nasıl Yapılır?

23 Eylül 2020

Roboshield Kartı ile ilgili neler yapılabilir, teknik özellikleri nelerdir gibi soruların cevaplarını bir önceki yazımızda vermiştik. Bu yazımızda temel Roboshield uygulamalarına devam ederek dc motor nasıl sürülür bundan bahsedeceğiz. Roboshield Arduino Robot Shield Kartı üzerinde L293D çift motor sürücü entegresi bulunmaktadır. Bu entegre sayesinde 1 ampere kadar olan dc motorları kolaylıkla sürebilmekteyiz. 

Bu uygulamamızda DC Motor kullanımı ile birlikte ultrasonik sensör kullanımına da değineceğiz. Her iki uygulamayı birleştirerek engelden kaçan robot uygulaması yapabiliriz.

Engelden Kaçan Robot Yapımı İçin Gerekli Malzemeler Nelerdir?

  • Arduino Uno Kartı
  • Roboshield Arduino Robot Shield
  • HC-SR04 Ultrasonik Mesafe Sensörü
  • Mini Robot Gövdesi
  • 6V 250RPM DC Motor ve Tekerlek Seti x 2
  • Mini Plastik Sarhoş Tekerlek
  • Ultrasonik Sensör Tutacağı
  • Jumper Kablo Seti
  • 9V Pil Kablosu
  • 9V Pil
  • Distans ve Vida Somun Seti

Engelden Kaçan Robot Arduino Kodu

int LeftDir = 13;
int RightDir = 12;
int SolPwm = 11;
int SagPwm = 3;
int Buzzer = 16;
const int trigPin = 9;
const int echoPin = 8;
long duration;
int distance;
void setup()
{
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(A3, INPUT);
pinMode(A4, INPUT);
pinMode(A5, INPUT);
pinMode(LeftDir, OUTPUT);
pinMode(RightDir, OUTPUT);
pinMode(Buzzer, OUTPUT);
analogWrite(3, 100);
analogWrite(11, 100);
}

void loop () {
analogWrite(SolPwm, 0);
analogWrite(SagPwm, 0);
tone(Buzzer, 150, 100);
digitalWrite(Buzzer, LOW);
delay(500);
while(1){
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;
Serial.print("Distance: ");
Serial.println(distance);
if (distance < 30) {

analogWrite(3, 160);
analogWrite(11, 160);
digitalWrite(Buzzer, HIGH);
digitalWrite(LeftDir, LOW);

digitalWrite(RightDir, HIGH);
}
else if(distance > 31) {
analogWrite(3, 160);
analogWrite(11, 160);
digitalWrite(Buzzer, HIGH);
digitalWrite(LeftDir, HIGH);

digitalWrite(RightDir, HIGH);
}}}

Paylaş :
T-Soft E-Ticaret Sistemleriyle Hazırlanmıştır.