10.2 Stepping motor

แชร์
ฝัง
  • เผยแพร่เมื่อ 10 ธ.ค. 2024

ความคิดเห็น • 13

  • @VoravutKruap
    @VoravutKruap 2 ปีที่แล้ว +1

    อาจารย์ สอน ต่ออุปกรณ์ และ โปรแกรม ได้ละเอียด ชัดเจน มาก ผมมือใหม่ ทำตาม คลิปสอน ครั้งแรก โปรแกรม ก็ทำงานได้สมบูณร์เลย ขอบคุณที่่ให้ความรู้

  • @maimemory
    @maimemory 2 ปีที่แล้ว +1

    สอนละเอียดดีมากครับ ขอบคุณครับ

  • @wassanadproject
    @wassanadproject ปีที่แล้ว

    อาจารย์ครับผมทดสอบหมุนไปหมุนกลับปรากฏว่าตำแหน่งจะเพี้ยนไปเรื่อยๆครับ ค่า x เท่ากันทั้ง 2 direction ครับ

    • @songchaii
      @songchaii  ปีที่แล้ว

      สิ่งแรกคือตรวจสอบไฟเลี้ยง microstep driver ว่าเพียงพอไหม อันที่สองตรวจสอบ microstep driver ว่ายังดีอยู่ไหม

    • @wassanadproject
      @wassanadproject ปีที่แล้ว

      @@songchaii ขอบคุณครับอาจารย์ เมื่อคืนหลังจากที่ถามอาจารย์ก็พยายามหาสาเหตุจนพบว่าวางตำแหน่ง enable / disable ในโปรแกรมไม่ดีครับ เวลาสั่ง direction เลยเพี้ยนไป

  • @suphotdiy2645
    @suphotdiy2645 9 หลายเดือนก่อน

    ผมรบกวนคัดลอก Source code อาจารย์ได้ไหมครับ

    • @songchaii
      @songchaii  9 หลายเดือนก่อน

      ได้ครับ

  • @kamesuph7790
    @kamesuph7790 2 ปีที่แล้ว

    ขอปรึกษาส่วนตัวๆได้ไหมครับ

    • @songchaii
      @songchaii  2 ปีที่แล้ว +1

      ถามตรงนี้ได้เลย

    • @kamesuph7790
      @kamesuph7790 2 ปีที่แล้ว

      @@songchaii
      ขอบคุณครับ
      ผมทดลองตามตัวอย่างจากในเวปนี้
      www.schmalzhaus.com/EasyDriver/Examples/EasyDriverExamples.html
      ที่เป็น excample 5 ใช้ VR มาปรับความเร็วของมอเตอร์
      ถ้าเราต้องการใช้ Encoder มาแทนตัว VR เราจะเขียนคำสั่งอย่างไรครับ
      ตามด้านล่างนี้เป็น Example 5 ที่คัดลอกมาวางไว้ครับ
      #include
      // Define the stepper and the pins it will use
      AccelStepper stepper1(AccelStepper::DRIVER, 9, 8);
      // Define our three input button pins
      #define LEFT_PIN 4
      #define STOP_PIN 3
      #define RIGHT_PIN 2
      // Define our analog pot input pin
      #define SPEED_PIN 0
      // Define our maximum and minimum speed in steps per second (scale pot to these)
      #define MAX_SPEED 500
      #define MIN_SPEED 0.1
      void setup() {
      // The only AccelStepper value we have to set here is the max speeed, which is higher than we'll ever go
      stepper1.setMaxSpeed(10000.0);
      // Set up the three button inputs, with pullups
      pinMode(LEFT_PIN, INPUT_PULLUP);
      pinMode(STOP_PIN, INPUT_PULLUP);
      pinMode(RIGHT_PIN, INPUT_PULLUP);
      }
      void loop() {
      static float current_speed = 0.0; // Holds current motor speed in steps/second
      static int analog_read_counter = 1000; // Counts down to 0 to fire analog read
      static char sign = 0; // Holds -1, 1 or 0 to turn the motor on/off and control direction
      static int analog_value = 0; // Holds raw analog value.
      // If a switch is pushed down (low), set the sign value appropriately
      if (digitalRead(LEFT_PIN) == 0) {
      sign = 1;
      }
      else if (digitalRead(RIGHT_PIN) == 0) {
      sign = -1;
      }
      else if (digitalRead(STOP_PIN) == 0) {
      sign = 0;
      }
      // We only want to read the pot every so often (because it takes a long time we don't
      // want to do it every time through the main loop).
      if (analog_read_counter > 0) {
      analog_read_counter--;
      }
      else {
      analog_read_counter = 3000;
      // Now read the pot (from 0 to 1023)
      analog_value = analogRead(SPEED_PIN);
      // Give the stepper a chance to step if it needs to
      stepper1.runSpeed();
      // And scale the pot's value from min to max speeds
      current_speed = sign * (((analog_value/1023.0) * (MAX_SPEED - MIN_SPEED)) + MIN_SPEED);
      // Update the stepper to run at this new speed
      stepper1.setSpeed(current_speed);
      }
      ความต้องการใช้งาน
      เพื่อหันกล้องดูดาวครับ
      facebook.com/groups/711823398888858/permalink/7622364901167972/

    • @songchaii
      @songchaii  2 ปีที่แล้ว

      @@kamesuph7790 ก่อนอื่นต้องเข้าใจวิธีการอ่าน Encoder ก่อน ถ้ายังไม่เข้าใจก็จะทำไม่ได้ ให้ไปทำความเข้าใจวิธีอ่าน Encoder ที่ www.zonemaker.com/article/14/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B9%83%E0%B8%8A%E0%B9%89%E0%B8%87%E0%B8%B2%E0%B8%99-incremental-rotary-encoder-%E0%B8%AD%E0%B9%88%E0%B8%B2%E0%B8%99%E0%B8%84%E0%B9%88%E0%B8%B2%E0%B8%AD%E0%B8%87%E0%B8%A8%E0%B8%B2%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%AB%E0%B8%A1%E0%B8%B8%E0%B8%99 จากนั้นก็เอาตัวเลขค่า encoder ไปแทนค่า VR

  • @jittaboonsuvannages6213
    @jittaboonsuvannages6213 2 ปีที่แล้ว

    เอา code จากไหนครับ

    • @songchaii
      @songchaii  2 ปีที่แล้ว

      พิมพ์ตามที่สอนได้ครับ code ไม่ยาวมาก