arduıno uno ile aynı anda servo ve dc motor kontrolü

onur yeniceli

MB Üyesi
Kayıt
6 Ocak 2020
Mesajlar
1
Tepkiler
0
Yaş
31
Meslek
Elektrik elektronik müh.
Üniv
fırat üniversitesi
Arkadaşlar merhaba arduıno ve kodlamada yeniyim projede aynı anda hem iki adet servo hemde 1 adet dc motor kullanacağım. Butona basıldığı zaman iki adet servo motor döngülerini tamamlayana kadar dc motorunda o süre boyunca hareket etmesi gerekiyor. ayrı ayrı devrelerini tasarladım ve kodlarını yazdım çalışıyor ancak ikisini tek program içinde çalıştırmak istediğimde sadece servo motorlar hareket ediyor. Bütünsel olarak çalışmasını nasıl sağlayabilirim lütfen yardımcı olur musunuz.
SERVO MOTORLARIN KODLARI;
#include <Arduino.h>
#include <Wire.h>
#include <SoftwareSerial.h>

#include <Servo.h>

double angle_rad = PI/180.0;
double angle_deg = 180.0/PI;
Servo servo_6;
Servo servo_7;



void setup(){

pinMode(5,INPUT);
servo_6.attach(6); // init pin
servo_7.attach(7); // init pin
}

void loop(){

if(((digitalRead(5))==(1))){
servo_6.write(0); // write to servo
servo_7.write(0); // write to servo
_delay(0.5);
servo_6.write(105); // write to servo
_delay(0.5);
servo_6.write(90); // write to servo
_delay(0.5);
servo_7.write(90); // write to servo
_delay(0.3);
servo_7.write(0); // write to servo
}

_loop();
}

void _delay(float seconds){
long endTime = millis() + seconds * 1000;
while(millis() < endTime)_loop();
}

void _loop(){

}

DC MOTOR SÜRÜCÜNÜN KODLARI
#include <Wire.h>
#include <SoftwareSerial.h>


double angle_rad = PI/180.0;
double angle_deg = 180.0/PI;



void setup(){

pinMode(5,INPUT);
pinMode(10,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
}

void loop(){

if(((digitalRead(5))==(1))){
analogWrite(10,250);
digitalWrite(8,0);
digitalWrite(9,1);
_delay(2);
analogWrite(10,0);
}

_loop();
}

void _delay(float seconds){
long endTime = millis() + seconds * 1000;
while(millis() < endTime)_loop();
}

void _loop(){

}


Ekran Görüntüsü (24).png
Ekran Görüntüsü (23).png
 

Dosyalar

Son düzenleme:

Mücahit Arslan

Yetkili Kişi
Yönetici
Kayıt
13 Ekim 2016
Mesajlar
244
Tepkiler
99
Meslek
Yüksek Teknoloji Ar-Ge Mühendisi
Üniv
Staffordshire University
Merhaba Onur,
DC Motorların koştuğun döngüyü servoların bitimine koyduğun için ikisini aynı anda göremiyorsun. Servo motorların initializing işlemini de DC' motorun altına yazdığın zaman ve hepsini tek bir döngü içerisine aldığın zaman problemin çözülecektir.
 

markup

MB Üyesi
Kayıt
21 Şubat 2016
Mesajlar
226
Tepkiler
44
Yaş
34
Meslek
Endüstri mühendisi
Üniv
Gazi Üniversitesi
servo motor ile yüksek tork sağlayamazsın ve Hall-etkili sensörlere gerek vardır
 
Yukarı Alt