ماژول درایور استپ موتور DRV8825
معرفی درایور موتور DRV8825
ماژول DRV8825 یک درایور موتور جریان بالا است که می تواند یک موتور پله ای دو قطبی تا 2.2 آمپر را هدایت کند. ولتاژ کاری این درایور موتور بین 8.2 تا 45 ولت است. این ماژول به راحتی بدون هیت سینک میتواند تا 1.5 آمپر جریان را تحمل کند. یک هیت سنک کوچک میتواند این جریان را تا 2.2 آمپر افزایش دهد. توجه داشته باشید که آی سی درایور می تواند تا 2.5 آمپر را کنترل کند ، اما مقاومت های حسگر جریان 0.1 اهم خروجی را به 2.2 آمپر محدود می کند.
ویژگی های درایور موتور DRV8825
این ماژول میتواند به طور مستقیم به سیستم های دارای ولتاژ 3.3 و 5 ولت متصل شود.
در مواردی که جریان و دما بیشتر از حد مجاز شود، ماژول خاموش خواهد شد.
دارای محافظ اتصال کوتاه به زمین و اتصال در خروجی.
رابط کاربری همانند ماژول درایور استپ موتور A4988
دارای رگولاتور داخلی
دارای 6 وضوح مختلف:
full-step
half-step
1/4-step
1/8-step
1/16-step
1/32-step
نکات راه اندازی درایور موتور DRV8825
کنترل جریان قابل تنظیم به شما امکان می دهد حداکثر جریان خروجی را با یک پتانسیومتر تنظیم کنید ، این به شما امکان می دهد از ولتاژهای بالاتر از ولتاژ نامی موتور پله خود برای دستیابی به نرخ های بالاتر استفاده کنید. 3 پین بر روی ماژول قرار دارد که برای تنظیم وضوح ماژول میتوان از آن استفاده نمود. در جدول زیر میتواند حالت های مختلف برای دستیابی به وضوح های مختلف را مشاهده کنید. هر سه ورودی دارای مقاومت pull-down با مقدار 100 کیلو اهم است.
کاربرد درایور موتور DRV882
از این ماژول اغلب برای کنترل دقیق موتورهای پله ای که در برنامه هایی مانند چاپگرهای سه بعدی یا روباتیک ، استفاده می شوند. ماژول درایو استپ موتور Step strick DRV 8825 دارای پتانسیومتر جهت تنظیم جریان خروجی است. با استفاده از ماژول درایو استپ موتور Step strick میتوانید موتورهای استپر را مدیریت کنید.
پایه های pinout درایور DRV8825
درایور DRV8825 از پایههای زیر استفاده میکند.
VMOT: این پایه به منبع تغذیه خارجی (VCC) متصل میشود که ولتاژ مناسبی برای فعال کردن موتور ارائه میدهد.
GND: پایه اتصال به زمین مشترک است.
VDD: ولتاژ تغذیه منطقی مدار است که برای راهاندازی لاجیک مناسب است.
EN: ورودی فعالسازی است که به صورت دیجیتالی است و برای راهاندازی و خاموش کردن درایور استفاده میشود.
MS1, MS2, MS3: ورودیهای تنظیم رزولوشن میکرواستپ هستند.
RESET: ورودی بازنشانی (Reset)، با تغییر وضعیت این ورودی، درایور را به وضعیت اولیه باز میگرداند.
SLEEP: ورودی خاموشی (Sleep)، با فعالسازی این ورودی، درایور را در حالت خاموشی قرار میدهد.
STEP: ورودی پالسهای کنترل است که موتور را میچرخاند.
DIR: ورودی جهت چرخش موتور است که با تغییر وضعیت این ورودی میتوان جهت چرخش موتور را تغییر داد.
راه اندازی درایور drv8825 با آردوینو
برای راهاندازی درایور DRV8825 با برد آردوینو، مراحل زیر را دنبال کنید.
ابتدا برد آردوینو را با کامپیوتر متصل کنید و نرمافزار آردوینو را اجرا کنید.
از منوی File گزینه Examples و سپس برای مثال Stepper را انتخاب کنید.
پس از باز شدن کد، توجه کنید که در قسمت تعریف پایهها، پایههای درایور DRV8825 به صورت زیر تعریف شدهاند.
const int stepsPerRevolution = 200; // change this to fit the number of steps per revolution
// for your motor
// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);
با توجه به پینهایی که برای درایور خود در نظر گرفتهاید، این پایهها را با پایههای متناظر آردوینو جایگزین کنید. به عنوان مثال، اگر پایههای STEP، DIR و ENABLE درایور را به پایههای 2، 3 و 4 آردوینو وصل کردهاید، کد زیر را به جای کد فوق در برنامه قرار دهید.
const int stepsPerRevolution = 200; // تعداد گامهای موتور
// راه اندازی کتابخانه Stepper روی پایههای 2 تا 5:
Stepper myStepper(stepsPerRevolution, 2, 3, 4, 5);
برنامه را روی برد آردوینو آپلود کنید. با وصل کردن منبع تغذیه و موتور به درایور DRV8825، آن را با پایههای متناظر آردوینو وصل کنید. در نهایت، با اجرای برنامه، موتور شما باید به تعداد تعیین شده گردش کند. لازم به ذکر است که برای تغییر سرعت و جهت چرخش موتور، باید پارامترهای مربوط به تعداد گامها و سرعت موتور را در کد برنامه تغییر دهید.
نمونه برنامه آردوینو با کتابخانه AccelStepper
#include <AccelStepper.h>
// Define the stepper motor connections
#define dirPin 2
#define stepPin 3
// Define the maximum speed and acceleration
#define MAX_SPEED 1000
#define ACCELERATION 100
// Create a new instance of the AccelStepper class
AccelStepper stepper(AccelStepper::DRIVER, stepPin, dirPin);
void setup() {
// Set the maximum speed and acceleration
stepper.setMaxSpeed(MAX_SPEED);
stepper.setAcceleration(ACCELERATION);
}
void loop() {
// Move the motor one full revolution in one direction
stepper.move(200 * 16);
stepper.runToPosition();
// Wait for a short period of time
delay(1000);
// Move the motor one full revolution in the other direction
stepper.move(-200 * 16);
stepper.runToPosition();
// Wait for a short period of time
delay(1000);
}
در این کد ابتدا پایههای DIR و STEP درایور به پایههای ۲ و ۳ آردوینو متصل شدهاند. سپس سرعت حرکت موتور با استفاده از setMaxSpeed و شتاب آن با استفاده از setAcceleration تعیین میشود. در انتها با استفاده از move و runToPosition، موتور را به سمت یک جهت و سپس به سمت جهت مخالف حرکت میدهیم.
راه اندازی درایور drv8825 با میکروپایتون و برد esp32
برای راه اندازی درایور DRV8825 با میکروکنترلر ESP32 و زبان برنامهنویسی میکروپایتون، میتوانید از کتابخانههای MicroPython DRV8825 و ESP32 MicroPython استفاده کنید. ابتدا، مطمئن شوید که درایور DRV8825 به درستی به ESP32 متصل شده است و مقادیر ورودیهای درایور به درستی تنظیم شدهاند. سپس میتوانید از کتابخانه MicroPython DRV8825 استفاده کنید. در ادامه، یک نمونه کد برای راهاندازی درایور DRV8825 با ESP32 در میکروپایتون آورده شده است.
import machine
import time
from drv8825 import DRV8825
# تعریف پایههای میکروکنترلر برای اتصال به درایور
dir_pin = machine.Pin(12, machine.Pin.OUT)
step_pin = machine.Pin(14, machine.Pin.OUT)
enable_pin = machine.Pin(27, machine.Pin.OUT)
# تعریف درایور با استفاده از پایههای تعریف شده
drv = DRV8825(dir_pin=dir_pin, step_pin=step_pin, enable_pin=enable_pin)
# تنظیم میکروگامها برای سرعت موتور
drv.set_micro_steps(1)
drv.set_speed(1000)
# حرکت دادن موتور به صورت یک طرفه
drv.move(1000)
در این کد، پایههای میکروکنترلر تعریف شدهاند و درایور با استفاده از آنها ایجاد شده است. سپس تنظیمات میکروگام و سرعت برای موتور انجام شده و در نهایت موتور به صورت یکطرفه به حرکت درآمده است. لازم به ذکر است که درایور DRV8825 دارای تنظیمات متعددی مانند تنظیم حالت استپ و راهاندازی با تنظیمات مختلف است. بهتر است در صورت نیاز به این تنظیمات، به مستندات کتابخانه MicroPython DRV8825 مراجعه کنید.
برنامه کنترل استپر موتور با درایور drv8825 با میکروپایتون و رزبری پیکو
برای نوشتن برنامه کنترل استپر موتور با درایور drv8825 در رزبری پیکو با استفاده از میکروپایتون، می توانید از کتابخانه RPi.GPIO استفاده کنید. این کتابخانه این امکان را به شما می دهد تا پایه های GPIO رزبری پیکو را کنترل کنید. برای کنترل درایور drv8825 باید از چهار پایه GPIO استفاده کنید که به موتور درایور وصل می شوند. همچنین باید از یک پایه GPIO دیگر برای کنترل وضعیت درایور استفاده کنید.
در ادامه، یک نمونه برنامه برای کنترل استپر موتور با درایور drv8825 با استفاده از میکروپایتون در رزبری پیکو در ویندوز ارائه شده است.
import RPi.GPIO as GPIO
import time
# تعریف پایه های GPIO برای درایور
dir_pin = 23
step_pin = 24
ms1_pin = 17
ms2_pin = 27
ms3_pin = 22
# تعریف پایه GPIO برای کنترل وضعیت درایور
fault_pin = 25
# تعیین وضعیت پایه های GPIO به عنوان ورودی یا خروجی
GPIO.setmode(GPIO.BCM)
GPIO.setup(dir_pin, GPIO.OUT)
GPIO.setup(step_pin, GPIO.OUT)
GPIO.setup(ms1_pin, GPIO.OUT)
GPIO.setup(ms2_pin, GPIO.OUT)
GPIO.setup(ms3_pin, GPIO.OUT)
GPIO.setup(fault_pin, GPIO.IN)
# تعیین مقدار پایه های ms1, ms2 و ms3
GPIO.output(ms1_pin, GPIO.HIGH)
GPIO.output(ms2_pin, GPIO.HIGH)
GPIO.output(ms3_pin, GPIO.LOW)
# تابع ارسال پالس به درایور
def step():
GPIO.output(step_pin, GPIO.HIGH)
time.sleep(0.005)
GPIO.output(step_pin, GPIO.LOW)
time.sleep(0.005)
# تعریف تابع برای حرکت موتور به جلو یا عقب
def move(direction, steps):
if direction == 'forward':
GPIO.output(dir_pin, GPIO.HIGH)
else:
GPIO.output(dir_pin, GPIO.LOW)
for i in range(steps):
step()
# حرکت به جلو 200 قدم
move('forward', 200)
# حرکت به عقب 200 قدم
move('backward', 200)
# خاموش کردن درایور
GPIO.output(ms1_pin, GPIO.LOW)
GPIO.output(ms2_pin, GPIO.L
مشخصات
- کاربری
- مناسب برای استفاده صنعتی
- نوع ماژول
- درایور
- نوع موتور
- استپر - Stepper
- تعداد قطعات
- 14 عدد
- ابعاد فیبر
- 20.4 * 15.6 میلی متر
- تعداد فیبر
- 1 عدد
- سطح تجربه مورد نیاز
- نیمه حرفه ای
- ولتاژ مورد نياز
- در محدوده 12 تا 24 ولت DC
- ولتاژ ورودی
- 3 - 5.25 ولت DC Logic
- فیبر مدار چاپی
- فایبرگلاس
- جریان
- حداکثر 2.5 آمپر
- تعداد پایه ها
- 16 پایه
- ترتیب پایه ها
- طبق دیتاشیت
- کشور سازنده
- چین
- کد تجاری ماژول و برد
- DRV8825
- وضعیت مونتاژ
- آماده به کار
توسط همین ماژول هم میتوانید اقدام به اجرای درخواستتان کنید. البته اگر فقط بخواهید یک سلول باتری لیتیومی را مدیریت شارژ کنید، همان گزینه ماژول TP4056 مناسب خواهد بود.
امکان راه اندازی چند سنسور DHT با ESP8266 با استفاده از MicroPython وجود دارد. سنسورهای DHT با پروتکل دیجیتال و از طریق پایههای GPIO قابل اتصال به میکروکنترلرها هستند.
برای ساخت یک سیستم کنترل دما با برد میکروکنترلر ESP32، به موارد زیر نیاز دارید:
یک برد میکروکنترلر ESP32
یک سنسور دما مثل DHT DS18B20
یک المان سرد کننده
با استفاده از کتابخانه DHT.h، میتوانید از سنسور دما برای خواندن دمای محیط استفاده کنید. سپس، میتوانید از این دما برای کنترل المان گرمایشی یا سرمایشی استفاده کنید.
در خصوص برنامه نویسی از کتابخانه DHT و در صورت نیاز کتابخانه وای فای برای ارسال دادهها به پلتفرم IoT باید استفاده کنید.