Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
37
Cevap
826
Tıklama
0
Öne Çıkarma
Cevap: ARDUINO programlama yardım (2. sayfa)
N
5 yıl
Onbaşı
Konu Sahibi

mekanik işlerden fırsat bulup deneyemedim yarın gün içinde deneyeceğim.bu kodlar bulduğum sayfada test videosunda sağlıklı çalışıyor.teşekkür ederim.


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @LaOtzi
L
5 yıl
Yüzbaşı

Tamam bu kodları deneyin bana dönüş yapın.Çalışıyorsa direk üzerinden ekleme yaapcağım.


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @nihatservis
N
5 yıl
Onbaşı
Konu Sahibi

< Resime gitmek için tıklayın >< Resime gitmek için tıklayın >

< Resime gitmek için tıklayın >https://www.youtube.com/watch?v=TVo4gv9BP1s
bağlantı şekillerini ve test videosunu attım
yalnız başka yazılan kodları denedim.çalışıyor kodlar ama buton ve swich eklemek lazım ve motor hızını maximumda tutmak lazım.yardımın için teşekkür ederim



#include <Stepper.h>
const int stepsPerRevolution = 1700; // Her bir çevrim icin donusun sabitlenmesi. //Motor 200 adim oldugu icin yapildi.

// Baslangic icin 8. pinden 11. pine kadar motora ayriliyor. Biz devremizde 8. ve 9. //pinleri kullandik. Sadece 8 ve 9 olarak da tanimlanabilir.
Stepper myStepper(stepsPerRevolution, 8,9,10,11);

int stepCount = 0; // adimlarin numarasi

void setup() {
}

void loop() {
// potansiyometreden okunan deger.
int sensorReading = analogRead(A0);
// %100 calisma orani icin potansiyometrenin degerinin ayarlanmasi //saglanmaktadir.
int motorSpeed = map(sensorReading, 0, 1023, 0, 100);
// motor hizi ayarlaniyor:
if (motorSpeed > 0) {
myStepper.setSpeed(motorSpeed);
// adim 1/100 donusumu:
myStepper.step(stepsPerRevolution/100);
}
}




Bu mesajda bahsedilenler: @LaOtzi
N
5 yıl
Onbaşı
Konu Sahibi

L
5 yıl
Yüzbaşı

Üstteki kodları neden kullanmadınız ? Bu kodda analog veri kullanılmış


Bu mesaja 2 cevap geldi.

Bu mesajda bahsedilenler: @nihatservis
N
5 yıl
Onbaşı
Konu Sahibi

üstteki kodları denedim çalışmadı.ama videoda çalışıyordu.anlam veremedim
buton ve swiçler için analog kullanmak gerekmiyormu




Bu mesajda bahsedilenler: @LaOtzi
N
5 yıl
Onbaşı
Konu Sahibi

önerin varsa onu uygulayabiliriz analog girişleri kullanmak şart değil benim için


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @LaOtzi
L
5 yıl
Yüzbaşı

Swıtch sadece motorun konumunu belırlemeyecek mı ? swıtch dedıgınız sınır anahtarı değil mi ? Eğer sınır anahtarı ise analog değil dijital pin kullanacağız.Ben şuanda üstteki kodları düzenleyıp atacağım siz arduino ıde den bakarsınız ben not defterine yazıyorum.


Bu mesaja 2 cevap geldi.

Bu mesajda bahsedilenler: @nihatservis
N
5 yıl
Onbaşı
Konu Sahibi

doğrudur switchler motorun konumunu belirlemek için kullanılaçak. proksi switçh npn yada pnp switçh kullanabilirim. yada nomal kuru kontak no veya nc swıtch kullanabilirim bunların hepsi elimde mevcut




Bu mesajda bahsedilenler: @LaOtzi
N
5 yıl
Onbaşı
Konu Sahibi

Hocam gönderdiğiniz kodun devamını getiremedim



< Bu ileti DH mobil uygulamasından atıldı >

N
5 yıl
Onbaşı
Konu Sahibi

Motor stop kodunu bulamadım. Kütüphaneyi kaldırıp yerine kodları yazma imkanımız varmı



< Bu ileti DH mobil uygulamasından atıldı >

N
5 yıl
Onbaşı
Konu Sahibi

hocam DevCC++ ile stepper.h açtım içeriği şu şekilde. gönderdiğin kodun devamına ne eklemem gerekiyor. riça etsem kontrol edermisin.



#ifndef Stepper_h
#define Stepper_h

// library interface description
class Stepper {
public:
// constructors:
Stepper(int number_of_steps, int motor_pin_1, int motor_pin_2);
Stepper(int number_of_steps, int motor_pin_1, int motor_pin_2,
int motor_pin_3, int motor_pin_4);
Stepper(int number_of_steps, int motor_pin_1, int motor_pin_2,
int motor_pin_3, int motor_pin_4,
int motor_pin_5);

// speed setter method:
void setSpeed(long whatSpeed);

// mover method:
void step(int number_of_steps);

int version(void);

private:
void stepMotor(int this_step);

int direction; // Direction of rotation
unsigned long step_delay; // delay between steps, in ms, based on speed
int number_of_steps; // total number of steps this motor can take
int pin_count; // how many pins are in use.
int step_number; // which step the motor is on

// motor pin numbers:
int motor_pin_1;
int motor_pin_2;
int motor_pin_3;
int motor_pin_4;
int motor_pin_5; // Only 5 phase motor

unsigned long last_step_time; // time stamp in us of when the last step was taken
};

#endif




Bu mesajda bahsedilenler: @LaOtzi
L
5 yıl
Yüzbaşı

Buton pin = 9
Başlangıç swıtch pin = 10
Bitiş Swıtch pin = 11
Motor pinleri kütüphanede ayarlanmış

Çalışma şekli ;

Motor 1.swıtche dokunurken butona basarsanız motor hareket eder.Motor bitiş noktasındaki 2. swıtche dokunursa motor geri dönmeye başlar.Eğer motor geri dönüşte tekrar 1.switche dokunursa durur ve tekrar start için hazırda bekler.(Analog sensör değil dijital çıkış veren swıtch kullanın)

#include <Stepper.h>
int butonDurumu = 0; // Değişken
int buton = 9 ; // Buton
int s1 = 10 ; // Baslangıc sınır anahtarı
int s2 = 11 ; // Bıtıs sınır anahtarı

const int stepadimi = 50;

Stepper stepmotor(stepadimi, 8, 9, 10, 11);

void setup() {

stepmotor.setSpeed(60);

pinMode(9,INPUT);
pinMode(11,INPUT);
pinMode(12,OUTPUT);
pinMode(13,OUTPUT);
pinMode(10,INPUT);

digitalWrite(13, LOW) ;
digitalWrite(12, LOW);
digitalWrite(11, LOW);
digitalWrite(10, LOW);
digitalWrite(9, LOW) ;

}


void loop() {
if (digitalRead(buton) == HIGH) { // Eğer butona basılırsa motor hareket etmeye başlıyor
delay(10);

butonDurumu = 1 ;
}
if (butonDurumu == 1) {
delay(10);
stepmotor.step(stepadimi);
}

if (digitalRead(11) == HIGH && digitalRead(10) == LOW ) { // Eğer son sınır anahtarı 1 ise ilk sınır anahtarı 0 ise motor geri döner
delay(10);
butonDurumu = 2 ;
}

if (butonDurumu == 2) {
delay(10);
stepmotor.step(-stepadimi);
butonDurumu = 3 ;

}

if (butonDurumu == 3 && digitalRead(10) == HIGH ) { //Eğer değişken 3 ise ve ilk sınır anahtarı basılırsa motor durur
butonDurumu == 0 ;

}

}

Kodu denedim çalışıyor.


Bu mesaja 1 cevap geldi.
N
5 yıl
Onbaşı
Konu Sahibi

hocam teşekkür ederim yarın deneyecem. emeğine sağlık.


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @LaOtzi
L
5 yıl
Yüzbaşı

Ufak bir kaç değişiklik yapman gerekiyor. Step motor pinlerini hazır koddan aldım buton ve swıtchlerle çakışıyor.


Stepper stepmotor(stepadimi, 8, 9, 10, 11); Bu kodda 8,9,10,11 yerine yukarıda tanımlamalarda olmayan pınlerı kullan.Mesela 5-6-7-8 gibi veya direkt benim ayarladığım uçları da değişebilirsin.



if (butonDurumu == 2) {
delay(10);
stepmotor.step(-stepadimi);
butonDurumu = 3 ;

}

Yukarıdakı kodda delay suresını sonda ne kadar beklemesi gerekıyorsa onu yazman gerekıyor.


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @nihatservis
N
5 yıl
Onbaşı
Konu Sahibi

#include <Stepper.h>
int butonDurumu = 0; // Değişken
int buton = 5 ; // Buton
int s1 = 6 ; // Baslangıc sınır anahtarı
int s2 = 7 ; // Bıtıs sınır anahtarı

const int stepadimi = 50;

Stepper stepmotor(stepadimi, 8, 9, 10, 11);

void setup() {

stepmotor.setSpeed(60);

pinMode(5,INPUT);
pinMode(7,INPUT);
pinMode(12,OUTPUT);
pinMode(13,OUTPUT);
pinMode(6,INPUT);

digitalWrite(13, LOW) ;
digitalWrite(12, LOW);
digitalWrite(7, LOW);
digitalWrite(6, LOW);
digitalWrite(5, LOW) ;

}


void loop() {
if (digitalRead(buton) == HIGH) { // Eğer butona basılırsa motor hareket etmeye başlıyor
delay(10);

butonDurumu = 1 ;
}
if (butonDurumu == 1) {
delay(10);
stepmotor.step(stepadimi);
}

if (digitalRead(7) == HIGH && digitalRead(6) == LOW ) { // Eğer son sınır anahtarı 1 ise ilk sınır anahtarı 0 ise motor geri döner
delay(10);
butonDurumu = 2 ;
}

if (butonDurumu == 2) {
delay(500);
stepmotor.step(-stepadimi);
butonDurumu = 3 ;

}

if (butonDurumu == 3 && digitalRead(6) == HIGH ) { //Eğer değişken 3 ise ve ilk sınır anahtarı basılırsa motor durur
butonDurumu == 0 ;

}

}




son şekli hocam


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @LaOtzi
L
5 yıl
Yüzbaşı

Aynen olayı çözmüşsünüz.



< Bu ileti DH mobil uygulamasından atıldı >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @nihatservis
N
5 yıl
Onbaşı
Konu Sahibi

ALLAH razı olsun hocam. çok teşekkür ederim yarı sabah deneyecem.




Bu mesajda bahsedilenler: @LaOtzi
DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.