Помогите с скетчем для ардуино, пожалуйста
- Войдите на сайт для отправки комментариев
Пт, 26/04/2019 - 19:28
Здравствуйте, ардуинщики. Хотел попросить у вас совета насчёт моего скетча. Делаю мини-проект по управлению жалюзи сенсорной кнопкой (по первому нажатию поворачивается, по повторному - в обратном направлении).
Но при включении ардуино ничего не происходит. Помогите новичку, пожалуйста)
Мой скетч
#include <CustomStepper.h> // Подключаем библиотеку CustomStepper
CustomStepper stepper(8, 9, 10, 11); // Указываем пины, к которым подключен драйвер шагового двигателя
const int buttonPin = 2; // Выставляем значения порта, подсоединённого с сигнал-портом кнопки
void setup()
{
stepper.setRPM(12); // Устанавливаем количество оборотов в минуту
stepper.setSPR(4075.7728395); // Устанавливаем колочество шагов на полный оборот. Максимальное значение 4075.7728395
pinMode(LED_BUILTIN, OUTPUT); // Команда для адекватного реагирования светодиода
pinMode(buttonPin, INPUT); // Открываем порт для считывания
}
void loop()
{
int buttonState = digitalRead(buttonPin); // Считываем статус кнопки (нажата / не нажата)
if (digitalRead(buttonPin) && stepper.isDone())
{
digitalWrite(LED_BUILTIN, HIGH); // Подаём напряжение на LED_BUILTIN - значение для встроенного светодиода
stepper.setDirection(CW); // Устанавливает направление вращения (против часовой)
stepper.rotateDegrees(180); // Поворачивает вал на заданное кол-во градусов
}
stepper.run(); // Этот метод обязателен в блоке loop. Он инициирует работу двигателя, когда это необходимо
}
вставьте код правильно, без этого никакая дискуссия невозможна
Подожду <code>
А пока вопрос по подключению драйвера по питанию : откуда взял и какое?
Моё первое знакомство с Ардуино как раз и началось с того, что первым делом сгорела буквально огнём и дымом микросхема uln2003apg драйвера. Хотя подключал от 5V UNO.
Здравствуйте, ардуинщики.
Не, извините, но у Вас сразу не получилось. Минус 20 к репе...
Неправильная вставка программы - минус 50 к репе...
По первому нажатию поворачивается, по второму в обратном направлении. Значит остановить после запуска жалюзи уже не получится. У данного двигателя реально 4000 шагов на оборот, эт я округлил просто? Не жалко на жалюжи, или бездумно взяли цифру. Я так подозреваю, ардуино желая сделать 12 оборотов в минуту захочет сделать 40 000 шагов для этого, намотав все на двигатель. И я бы смотрел не на скетч, если он из стандартных примеров, а на двигатель, на его подключение. И изменил бы как начинающий порядок разработки.
Подключаем двигатель к драйверу, там есть два пина, один для включения реверся, другой шагает. Подаем 5 вольт на шагающий пин, через резистор, короткими шажками. Шагает по одному шагу, хорошо, двигатель греется, обмотки включены неверно. Вообще ничего не делает, тоже не верно, но по другому, т.е. напряжение подается между обмотками. Если интересно, расскажу как прозванивать обмотки без тестера, если его конечно нет, а если есть, звоним тестером, и подключам правильно. Ищем стандартный скетч, который просто крутит двигатель, не быстро, подключаем к ардуинке. Получилось? Все, наращиваем новые функции, зажигаем кнопкой светодиод, а движка при этом крутиться. ПОлучилось? Будем кнопкой менять направление. Ну и т.д., сделал шаг, проверил.
Не думаю, что код просто скопирован.
Извините, просто здесь новичок. А вообще, как правильно вставить?) Честно, не знаю
В этом же разделе форума выше на две строчки инструкция
Единственно добавлю ... прежде чем вставить ... нужно в IDE в кнопке "правка" выбрать строчку "скопировать для форума".
Брал отдельно, 5v от usb. С тестовым скетчем отлично поворачивается
У 28BYJ-48 реально 4096 шагов в полустепе. И драйвер у него не Step/Dir, так что никакого "шагания кнопкой" и прочей пурги с ним провернуть не получится.
Повторяю вопрос: зачем 15 -ая строка?
если в 16 -ой не пользуемся.
Извините, не убрал с прошлой версии скетча. Мой косяк
pinskihl, очевидно, что нужно как-то при каждом нажатии менять направление вращения - так? Т.е. если на предыдущем нажатии было CW, то на текущем должно быть CCW.
Меня смущает число шагов на один оборот. Точно знаю, что Ардуино не обрабатывает адекватно больше 9 знаков. И то ... под настроение.
Вообще, да . Я сейчас хочется в принципе разобраться с проблемой. А так, хочу сделать ято-то по типу
Если что, это просто пример
Тогда попробую округлить. А так, как я и говорил, оно работало в примере с тем же кол-вом шагов
А количество шагов моежт и большим быть. Если двигатель с редуктором, чтото я про них забыл. Но вот только дробную часть я бы убрал, там же не требуются доли градуса.
Спасибо за совет. Попробую
Вообще, да . Я сейчас хочется в принципе разобраться с проблемой. А так, хочу сделать ято-то по типу
Вполне нормально для начала.