Arduino ile step kontrol yardım

ika1986

Üye
Katılım
27 Mar 2011
Mesajlar
325
Puanları
1
Merhaba arkadaşlar Arduino ile step kontrolü yapmam lazım elimde arduino uno var step sürücüm ve step motorumda var. Fakat arduino kod bilgim hiç yok. motor yapacağım düzeneği belirli zaman ile belirli bir adımda bir sağa döndürecek bir sola. birde 3 konum anahtarı olacak 1 anahtar açıksa sadece sağa belli adımda dönecek 1 kapalı 2 açıksa sadece sola belli adımda dönecek, 2 kapalı 3 açıksa bir sağa bir sola dönecek yardımcı olurmusunuz? Plc bilgim var fakat plc pahalı oluyor bu işler için.
 
Son düzenleme:
Merhabalar, şahsen yakın zamanda farklı bir amaçla böyle bir donanıma ihtiyacım olacak. Henüz üzerinde çalışma fırsatım olmadı. Umarım paylaşımlardan ben de yararlanabilirim.;)
 
bu işinize yarayabilir.
 

Ekli dosyalar

  • Step Hız Kontrolü.doc
    91 KB · Görüntüleme: 16
void setup() {
pinMode (9,OUTPUT);
pinMode (8, OUTPUT);
digitalWrite(9,HIGH);}

void loop() {
for(int x=0;x<=1000;x++){
digitalWrite(8, LOW);
digitalWrite(9, HIGH);
delay(1);
digitalWrite(9, LOW);
delay(1);}
delay(1000);{
digitalWrite(8, HIGH);
delay(1000);
for (int x=0;x<=1000;x++){
digitalWrite(9, HIGH);
delay (1);
digitalWrite(9, LOW);
delay(1);
}}
delay(1000);
}. // Gerekli kodları( youtube bulduğum bir kaynak) böyle şimdiye kadar bukar yol alabildim birde butonla dönüş yerlerinin ayarları kaldı. Video Atamadım bir sağa dönüyor bir sola 1 er saniye aralarla
 

Ekli dosyalar

  • image.jpg
    image.jpg
    491.5 KB · Görüntüleme: 21
Son düzenleme:
//// (1/1/2020 çarşamba)
int hiz= 600;//hız(değer düşürüldüğünde hız artar)
int rampa = 700;//rampa değeri
int rmpm= 500;//rampa mesafe değeri
int rmptd=4500;//rampa tepe değer
int mesafedeger=5000;//gidilecek mesafe(rmptd den yüksek olacak)
int rmp= rampa;
int mesafe= 0;
int ileri = A1;//ileri butonu
int geri = A2;//geri butonu
int strt = A3;//start butonu
int stp = A4;//stop butonu
int puls = 2;//sürücü puls
int dir = 3;//sürücü dır(yön)
bool flag = 0;//otomatik flag ı

void setup() {
pinMode(ileri, INPUT);
pinMode(geri, INPUT);
pinMode(strt, INPUT);
pinMode(stp, INPUT);
pinMode(puls, OUTPUT);
pinMode(dir, OUTPUT);

Serial.begin (9600);
}
void loop() {
///////////ileri
if (digitalRead (ileri)==HIGH||flag==HIGH)
while(mesafe<mesafedeger)
{ mesafe++;
if(mesafe<rmpm)
rmp--;
if(mesafe>rmptd)
rmp++;
digitalWrite(puls,HIGH);
delayMicroseconds(hiz+rmp);
digitalWrite(puls,LOW);
if (digitalRead (stp)==HIGH)
flag=LOW;
}
Serial.println(mesafe);
delay(150);
////////GERİ
if (digitalRead (geri)==HIGH||flag==HIGH)
while(mesafe>0 )
{ mesafe--;
if(mesafe>rmptd)
rmp--;
if(mesafe<rmpm)
rmp++;

digitalWrite(dir,HIGH);
digitalWrite(puls,HIGH);
delayMicroseconds(hiz+rmp);
digitalWrite(puls,LOW);
digitalWrite(dir,LOW);
if (digitalRead (stp)==HIGH)
flag=LOW;
}
Serial.println(mesafe);
delay(150);
/////
if (digitalRead (strt)==HIGH)
flag=HIGH;
if (digitalRead (stp)==HIGH)
flag=LOW;
}
bunu bidene
 

Forum istatistikleri

Konular
129,820
Mesajlar
930,493
Kullanıcılar
452,639
Son üye
gencalpzg

Yeni konular

Geri
Üst