Ардуино уно, сделал шаговый двигатель через кнопку, через усб все прекрасно работает, но не могу сделать от блока питания. Помогите.
двигатель и драйвер обычные из набора
перемычку снимал, земля с драйвера на землю уно, 12в с драйвера на 5в уно, и ничего
Зелёный провод пошевели, контакта нету.
я от фоанаря цвета проводов ставил, за что зеленый отвечает
понимаю сарказм, ну а все же
Намеков не понимаете? Вы просите помощи в работе схемы, которую мы здесь не видим. Какой помощи вы ожидаете?
плата ардуино уно, к ней подключен драйвер ULN2003 к нему шаговый двигатель 28BYJ-48, к пину 2 и к земле кнопка. Скетч работает так, кнопку нажал, дигатель работает, еще раз нажал останавливается. Так вот, через усб все работает, а надо чтобы работало от блока питания без юсб. Перемычку на драйвере снял. Земля с драйвера идет на землю уно, 12в с драйвера идет на 5в уно, но без усб ничего не работает.
сам скечт
/*
- Шаговый двигатель 28BYJ-48 + ULN2003
- Управление кнопкой (вкл/выкл)
- Без сторонних библиотек
*/
// Пины для драйвера ULN2003
#define IN1 8
#define IN2 9
#define IN3 10
#define IN4 11
// Пин кнопки
#define BUTTON_PIN 2
// Последовательность шагов для 28BYJ-48 (полушаговый режим)
// Это 8 шагов на один полный шаг двигателя
int stepSequence[8][4] = {
{1, 0, 0, 0},
{1, 1, 0, 0},
{0, 1, 0, 0},
{0, 1, 1, 0},
{0, 0, 1, 0},
{0, 0, 1, 1},
{0, 0, 0, 1},
{1, 0, 0, 1}
};
int currentStep = 0; // Текущий шаг (0-7)
bool motorOn = false; // Состояние мотора
int lastButtonState = HIGH; // Для кнопки
unsigned long lastStepTime = 0; // Для тайминга шагов
int stepDelay = 2000; // Задержка между шагами (микросекунды)
// Меньше число = быстрее вращение
void setup() {
Serial.begin(9600);
Serial.println(“Шаговый двигатель с кнопкой”);
// Настройка пинов
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
pinMode(BUTTON_PIN, INPUT_PULLUP); // Кнопка на пин 2 и GND
pinMode(13, OUTPUT); // Встроенный светодиод
// Выключаем все обмотки
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
}
void loop() {
// — Обработка кнопки —
int buttonState = digitalRead(BUTTON_PIN);
// Если кнопка нажата (переход с HIGH на LOW)
if (buttonState == LOW && lastButtonState == HIGH) {
delay(50); // Защита от дребезга
motorOn = !motorOn; // Переключаем состояние
if (motorOn) {
Serial.println("Мотор ВКЛ");
digitalWrite(13, HIGH); // Зажигаем светодиод
} else {
Serial.println("Мотор ВЫКЛ");
digitalWrite(13, LOW); // Тушим светодиод
// Выключаем все обмотки при остановке
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
}
}
lastButtonState = buttonState;
// — Управление мотором (если включен) —
if (motorOn) {
// Делаем шаг с определенной скоростью
if (micros() - lastStepTime >= stepDelay) {
lastStepTime = micros();
// Делаем один шаг вперед
currentStep++;
if (currentStep >= 8) currentStep = 0;
// Устанавливаем пины согласно последовательности
digitalWrite(IN1, stepSequence[currentStep][0]);
digitalWrite(IN2, stepSequence[currentStep][1]);
digitalWrite(IN3, stepSequence[currentStep][2]);
digitalWrite(IN4, stepSequence[currentStep][3]);
}
}
}
![]()
мы понимаем, схему не осилить, хоть фотку сделайте.
Меняйте БП на тот, от которого работает.
как написано так и работает
от усб да, с перемычкой
мальчик, пока схемы рисовать не научишься - к ардуине не лезь.
в чем проблема
видимо, в низком IQ.
я новичок, от усб получилось собрать
вместо помощи, начинается обсуждения личности, чето куда то не туда ты свернул

