Это совместимая с Ардуино плата, содержит микроконтроллер Atmega328 и микросхему драйвера биполярного шагового двигателя STK682-010.
Микросхема STK682-010 — гибридная интегральная схема от ON Semiconductor, способная обеспечить ток до 2,5 А с входным питанием до 32 В.
Представленный в данной статье драйвер на базе этой микросхемы имеет несколько режимов микрошага: полный шаг, 1/2 шага, 1/4 шага, 1/8 шага, 1/16 шага, 1/32 шага, 1/64 шага, 1/128 шага. Частота прерывания установлена с помощью конденсатора С5 100пФ на уровне 83,3 кГц. Микрошаг можно установить с помощью перемычек J1, J2, J3.
В схеме переменный резистор PR1 предназначен для настройки затухания: 3,5 В для медленного затухания, от 1,1 В до 3,1 В для смешанного затухания, от 0,8 до 1 В для быстрого затухания, а переменный резистор PR2 предназначен для установки выходного тока.
В данной плате микросхема STK682-010 по умолчанию включена, поскольку на контакте ENB есть подтягивающий резистор, но вы можете подать на этот вывод низкий уровень сигнала для отключения микросхемы. Плата драйвера требует два напряжения питания: одно для питания шагового двигателя, другое для питания логики (5 В).
STK682-010 имеет встроенную функцию половинного тока для уменьшения вибрации и функцию тока, когда двигатель находится в статическом режиме. Для надежной работы драйвера следует использовать радиатор.
Функции драйвера шагового двигателя
- Питание двигателя: 9-32 В (разъем CN1)
- Питание логики: 5 В (разъем CN4)
- Разъем для двигателя: 2,5 А (разъем CN2)
- Перемычки J1, J2, J3 для установки микрошага
- Переменный резистор PR2 для регулировки тока
- Переменный резистор PR1для регулировки затухания
- Встроенная функция автоматического поддержания половинного тока.
- Встроенная схема защиты от перегрузки по току (внутри IC)
- Встроенная схема термозащиты (внутри IC)
- Индикатор питания на плате — светодиод D1
- Размеры печатной платы 57,94 x 46,67 мм
Работа совместно с Ардуино
Ниже представлен простой скетч для тестирования платы с помощью Ардуино. В коде есть возможность управлять скоростью шагового двигателя с помощью потенциометра 10 кОм, подключенного к аналоговому выводу A1 (разъема U3).
// *** Простой пример управления шаговым двигателем *** // Определяем номера выводов const int stepPin = 5; const int dirPin = 10; // Определяем переменные int customDelay,customDelayMapped; void setup() { // Устанавливаем два контакта как выходы pinMode(stepPin,OUTPUT); pinMode(dirPin,OUTPUT); // Включаем вращение в определенном направлении digitalWrite(dirPin,HIGH); } void loop() { // Получаем пользовательские значения задержки из пользовательской функции speedUp customDelayMapped = speedUp(); // Создаем пулы с настраиваемой задержкой, в зависимости от потенциометра, от которого зависит скорость двигателя digitalWrite(stepPin, HIGH); delayMicroseconds(customDelayMapped); digitalWrite(stepPin, LOW); delayMicroseconds(customDelayMapped); } // Функция для чтения потенциометра int speedUp() { // Считываем потенциометр int customDelay = analogRead(A1); // Преобразуем считанные значения потенциометра от 0 до 1023 в желаемые значения задержки (от 300 до 4000) int newCustom = map(customDelay, 0, 1023, 300,4000); return newCustom; }
Пользователь может написать свой собственный код для управления шаговым двигателем в соответствии со своими требованиями.
Микрошаговый режим является автономным и работает независимо от микроконтроллера. К Ардуино(Atmega328) подключены только выводы CLK (D5), DIR (D10), ENB (D6).
Новый микроконтроллер Atmega328 требует программирования загрузчика и загрузки скетча Ардуино, дополнительную информацию см. по ссылке.
Контакты Ардуино
- Цифровой вывод D6: Enable STK682-010, по умолчанию на этом выводе высокий уровень с использованием подтягивающего резистора R9. Подтяните этот вывод к земле, чтобы отключить драйвер двигателя.
- Цифровой вывод D5: Clock/Pulse STK682-010
- Цифровой вывод D10: Dir (Motor CCW / CW Low or High) STK682-010, по умолчанию на этом выводе высокий уровень с использованием подтягивающего резистора R3
- Аналоговый вывод A1: аналоговый вход, потенциометр или подключение датчика
Скачать рисунок печатной платы (192,3 KiB, скачано: 171)