Şimdi Ara

ARDUINO programlama yardım (2. sayfa)

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
39
Cevap
0
Favori
755
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: önceki 12
Sayfaya Git
Git
Giriş
Mesaj
  • LaOtzi kullanıcısına yanıt
    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.
  • nihatservis N kullanıcısına yanıt
    Tamam bu kodları deneyin bana dönüş yapın.Çalışıyorsa direk üzerinden ekleme yaapcağım.
  • LaOtzi kullanıcısına yanıt
    ARDUINO programlama yardımARDUINO programlama yardım

    ARDUINO programlama yardımhttps://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);
    }
    }




  • yalnız videoyu youtube ye atabildim linki
    https://www.youtube.com/watch?v=TVo4gv9BP1s&feature=youtu.be
  • nihatservis N kullanıcısına yanıt
    Üstteki kodları neden kullanmadınız ? Bu kodda analog veri kullanılmış
  • LaOtzi kullanıcısına yanıt
    üstteki kodları denedim çalışmadı.ama videoda çalışıyordu.anlam veremedim
    buton ve swiçler için analog kullanmak gerekmiyormu
  • LaOtzi kullanıcısına yanıt
    önerin varsa onu uygulayabiliriz analog girişleri kullanmak şart değil benim için
  • nihatservis N kullanıcısına yanıt
    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.
  • LaOtzi kullanıcısına yanıt
    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
  • Hocam gönderdiğiniz kodun devamını getiremedim

    < Bu ileti DH mobil uygulamasından atıldı >
  • 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ı >
  • LaOtzi kullanıcısına yanıt
    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




  • 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.




  • LaOtzi kullanıcısına yanıt
    hocam teşekkür ederim yarın deneyecem. emeğine sağlık.
  • nihatservis N kullanıcısına yanıt
    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.
  • LaOtzi kullanıcısına yanıt
    #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




  • nihatservis N kullanıcısına yanıt
    Aynen olayı çözmüşsünüz.

    < Bu ileti DH mobil uygulamasından atıldı >
  • LaOtzi kullanıcısına yanıt
    ALLAH razı olsun hocam. çok teşekkür ederim yarı sabah deneyecem.
  • 
Sayfa: önceki 12
Sayfaya Git
Git
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.