Microcontroller C Code Sample

   โค๊ดตัวอย่าง Arduino ควบคุมสเตปเปอร์มอเตอร์ผ่าน ULN2003A

    ตัวอย่างนี้ เป็นการควบคุม Bipolar Stepper motor ผ่านไอซีัขับกระแสขวดลวดของมอเตอร์ stepper ด้วยไอซี ULN2003A ถึงแม้ว่าตัวมอเตอร์ที่ยกตัวอย่างมาให้เห็นจะมีแรงบิดไม่มากนัก อาจจะเหมาะกับของเด็กเล่นซะมากกว่า แต่ก็พอได้ไอเดียในการขับ Stepper Motor 






Stepper Motor 5 V

การต่อวงจรบอร์ดขับมอเตอร์กับบอร์ด Arduino
5V+ connect to +5V
5V-  connect to 0V (Ground)
IN1: to Arduino digital input pin 8
IN2: to Arduino digital input pin 9
IN3: to Arduino digital input pin 10
IN4: to Arduino digital input pin 11

ULN2003A wiring diagram

    เจ้า Bipolar stepper motor จะมีอยู่ด้วยกันสี่เส้น ลำดับการขับขดลวด จะมีลำดับดังนี้ 

Stepping motor driven sequence

หน้าที่ของเราก็คือ สั่งให้สัญญาณพัลส์ไปขับขดลวดทั้งสี่ ให้ได้ตามลำดับ นอกจากนั้นจะต้องควบคุมระยะเวลาในการควบคุมของพัลส์ด้วย ไม่เช่นนั้น Stepper motor จะเกิดอาการกระตุก เนื่องจาก Timing ไม่ได้ตามสเปกของมัน โค๊ดตัวอย่างที่ยกมาให้ดูนี้ ค่า delayMicroseconds(motorSpeed); ถูกตั้งมาให้เหมาะสมกับ Stepper motor รุ่น 28BYJ48 เพราะฉะนั้นถ้าจะนำไปประยุกต์กับมอเตอร์ตัวอื่น ต้องปรับให้เหมาะสมด้วย