/
mapb19ator
/
cpp
Обзор
Документация
Войти
/
mapb19ator
/
cpp
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
line
93 строки
3 KB
mapb19ator
линия
21 мар 2026, 12:18
Верифицирован
21 мар 2026, 12:18
63f049e
Код
Авторство
О чём код?
// подключите один мотор к клемме: M1+ и M1- // а второй к клемме: M2+ и M2- // Motor shield использует четыре контакта 4, 5, 6, 7 для управления моторами // 4 и 7 — для направления, 5 и 6 — для скорости #define SPEED_1 5 #define DIR_1 4 #define SPEED_2 6 #define DIR_2 7 #define BTN1_PIN 14 #define DEBOUNCE_DELAY 150 #define LINE_PIN_1 2 #define LINE_PIN_2 3 //класс для кнопки class Button { private: bool _lastButtonState = HIGH; bool _buttonState = HIGH; bool _currentReading; int _btn_pin; int _debounce_delay; public: Button(int btn_pin, int debounce_delay) { _btn_pin = btn_pin; _debounce_delay = debounce_delay; } void init() { pinMode(_btn_pin, INPUT_PULLUP); } bool read() { _currentReading = digitalRead(_btn_pin); // Если состояние изменилось if (_currentReading != _lastButtonState) { delay(_debounce_delay); // Ждем стабилизации _currentReading = digitalRead(_btn_pin); // Читаем повторно } _lastButtonState = _currentReading; _buttonState = _currentReading; return _buttonState; } }; //копии класса Кнопка int btn=14; void setup() { // настраиваем выводы платы 4, 5, 6, 7 на вывод сигналов for (int i = 4; i < 8; i++) { pinMode(i, OUTPUT); pinMode(LINE_PIN_1, INPUT); pinMode(LINE_PIN_2, INPUT); } while (digitalRead(btn) == LOW) { } } int START = 0; void loop() { if(digitalRead(LINE_PIN_1) == HIGH && digitalRead(LINE_PIN_2) == HIGH) { digitalWrite(DIR_1, LOW); analogWrite(SPEED_1, 150); digitalWrite(DIR_2, HIGH); analogWrite(SPEED_2, 150); } if(digitalRead(LINE_PIN_1) == LOW && digitalRead(LINE_PIN_2) == HIGH) { digitalWrite(DIR_1, LOW); analogWrite(SPEED_1, 0); digitalWrite(DIR_2, HIGH); analogWrite(SPEED_2, 150); } if(digitalRead(LINE_PIN_1) == HIGH && digitalRead(LINE_PIN_2) == LOW) { digitalWrite(DIR_1, LOW); analogWrite(SPEED_1, 150); digitalWrite(DIR_2, HIGH); analogWrite(SPEED_2, 0); } // устанавливаем направление мотора «M1» в одну сторону // ждём одну секунду /* if (buttonPressed) { // включаем мотор на максимальной скорости analogWrite(SPEED_1, 0); // ждём одну секунду delay(100000); analogWrite(SPEED_2, 0); // ждём одну секунду delay(100000); } if chyoto tam chyoto tam togda chyoto tam chyoto tam */ }