Правильное использование 5-контактной кнопки с Arduino
В настоящее время я пытаюсь создать простой тестовый скетч двигателя для тестирования шагового двигателя NEMA 23 и шагового драйвера DM542T.
Вот код, и у меня возникли проблемы с пониманием того, как правильно подключить кнопку с 5 выводами (+, -, Common, NO, NC).
Вот этот код
// Номера контактов
const int buttonPin = 2;
const int directionPin = 8;
const int stepPin = 9;
// Другие константы
const int NumSteps = 5000; // шаги
const int Speed = 500;
void setup() {
pinMode(buttonPin, INPUT_PULLUP);
pinMode(directionPin, OUTPUT);
pinMode(stepPin, OUTPUT);
digitalWrite(directionPin, LOW);
digitalWrite(stepPin, LOW);
}
void loop() {
if (digitalRead(buttonPin)) {
// Двигаться в одном направлении
for (int distance = 0; distance < NumSteps; distance++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(Speed);
digitalWrite(stepPin, LOW);
delayMicroseconds(Speed);
}
// Обратное направление
digitalWrite(directionPin, !digitalRead(directionPin));
}
delay(5);
}
Кнопка - это мгновенная кнопка, поэтому я удерживаю ее, чтобы имитировать защелкивающуюся кнопку.
У меня есть кнопки Common и Neg, соединенные вместе и подключенные к контакту Gnd на Arduino (mega rev3) У меня есть положительные кнопки и ЧПУ, соединенные вместе и подключенные к контакту 2.
Подключение этой кнопки таким образом отлично работает в скетче мигания с управлением кнопкой, но здесь не работает (светодиод на кнопке не загорается, и тест двигателя не запускается).
Примечание: я использую мгновенную кнопку с 5 выводами, так как именно для этого проекта будут использоваться эти двигатели.
Любая помощь приветствуется.
@dinotom, 👍0
Обсуждение1 ответ
Лучший ответ:
Контакты кнопки следующие:
- +: Анод светодиода
- -: Катод светодиода
- C: Общий вывод переключателя
- NC: нормально закрытый - обычно подключается к контакту C до тех пор, пока не будет нажата кнопка
- НЕТ: Нормально разомкнут - подключается к контакту C при нажатии кнопки
Итак, чтобы использовать кнопку в качестве кнопки, вам нужны два вывода: C и NO. Используйте эти контакты (в любом порядке), как и любую обычную кнопку с подтягивающим резистором (или внутренним резистором INPUT_PULLUP).
Использовать светодиод может быть немного сложнее. Большинство кнопок этого типа имеют светодиод, настроенный на использование 12 В. Хотя вы можете получить небольшое свечение от него при 5 В, вам, вероятно, потребуется переключить его с помощью транзистора и включить питание от 12 В, чтобы он загорелся должным образом. Однако ваша кнопка может быть рассчитана по-разному и нуждаться в другом напряжении.
Итак, в этом случае что бы вы использовали в качестве сигнала и послали на вывод 2: провод NO или общий? Я полагаю, что другой пошел бы в Gnd., @dinotom
@dinotom Это действительно не имеет значения. Это просто куски металла, которые соприкасаются, когда вы нажимаете кнопку, и, поскольку вы не используете вывод NC, который является which для C и NO, не имеет абсолютно никакого значения., @Majenko
Да, использовал NO для вывода 2 и C для Gnd, последовательный монитор показывает, что он меняется. Перейдем к следующей проблеме: кнопка не включает двигатели. При подключении pos к 5V и Neg к Gnd индикатор на кнопке начинает мигать, странно, что он работает, как описано ранее. Я отправлю другой вопрос позже, если я не смогу разобраться в этом сам. Сначала моторы., @dinotom
- Как использовать SPI на Arduino?
- Подключение HX711 к трехпроводному датчику нагрузки
- Правильное использование * и & при передаче объектов в методах.
- ISO C++ запрещает принимать адрес неквалифицированной или заключенной в скобки нестатической функции-члена для формирования указателя на функцию-член
- Разница между массивом char и массивом unsigned char
- Печать содержимого файла SD - карты на ЖК-дисплее
- Отправка строки из RPi в Arduino - Рабочий код
- Изменение ШИМ на Arduino Mega, контакты 9 и 10 на 20–25 кГц
Можете ли вы перейти по ссылке на страницу продукта buttons или техническое описание? Простая кнопка с 5 контактами встречается не очень часто, поэтому важно, как кнопка использует контакты., @chrisl
Для этого нет спецификации. Это стандартная светодиодная кнопка с 5 выводами с +,-, common, NC, NO. Он отлично работал при подключении к скетчу мигания с кнопочным управлением, когда NO не подключен, NC и + подключены вместе к 5 В, а общие и - подключены вместе к Gnd. Светодиод на кнопке загорается, а светодиод на Mega загорается при нажатии кнопки, @dinotom
О, не видел, что это светодиодная кнопка. Не могли бы вы, пожалуйста, составить диаграмму, какие соединения у вас действительно есть? Это трудно интерпретировать с помощью текста (и у вас разные проводки в вопросе и вашем комментарии). Вы также можете использовать встроенный редактор схем редактора вопросов. Используйте обычный переключатель и светодиод для имитации вашего 5-контактного переключателя, @chrisl
первая мысль: не подключайте светодиод к переключателю .... вторая мысль: если кнопка работает в скетче мигания, то используйте рабочий код переключателя в скетче двигателя, @jsotola
Для управления встроенным светодиодом вам не нужен скетч. Просто подключите + к 5 В, а - к Gnd, и кнопка включит / выключит встроенный светодиод. Если это светодиодный ореол или кнопка с подсветкой, совместите NO и + с 5V, а общие и - с Gnd., @dinotom