Всем привет, помогите пожалуйста адаптировать код под блютуз модуль "hc-05" Должно управляться с приложения написанного на MIT App inventor, 4 кнопки, вперёд, назад, влево, вправо. Код (C++): int buttonState = 0; //состояние кнопки int val; //подключение моторов IN - управление EN - подключение int IN1 = 4; int IN2 = 7; int IN3 = 7; int IN4 = 7; int EN1 = 6; int EN2 = 5; int EN3 = 5; int EN4 = 5; int pos = 0; void setup() { Serial.begin(9600); // скорость передачи //подключение моторов на вывод информации pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(EN1, OUTPUT); pinMode(EN2, OUTPUT); pinMode(IN3, OUTPUT); pinMode(EN3, OUTPUT); pinMode(IN4, OUTPUT); pinMode(EN4, OUTPUT); } void loop() { if (Serial.available()) { val = Serial.read(); // Задаём движение вперёд if (val == 'W') // При нажатии клавиши «W» { // Выводы конфигурируются согласно работе Motor Shield'а // Моторы крутятся вперед digitalWrite(EN1, HIGH); digitalWrite(EN2, HIGH); digitalWrite(EN3, HIGH); digitalWrite(EN4, HIGH); digitalWrite(IN1, HIGH); digitalWrite(IN2, HIGH); digitalWrite(IN3, HIGH); digitalWrite(IN4, HIGH); } // Задаём движение назад if ( val == 'S') { digitalWrite(EN1, HIGH); digitalWrite(EN2, HIGH); digitalWrite(EN3, HIGH); digitalWrite(EN4, HIGH); digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); } // Задаём движение вправо if ( val == 'D') { digitalWrite(EN1, HIGH); digitalWrite(EN2, HIGH); digitalWrite(EN3, HIGH); digitalWrite(EN4, HIGH); digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); } // Задаём движение влево if ( val == 'A') { digitalWrite(EN1, HIGH); digitalWrite(EN2, HIGH); digitalWrite(EN3, HIGH); digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH); digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH); } // Стоп режим // При отпускании клавиш в программе в порт шлется «T» if ( val == 'T') // При нажатии клавиши «T» { // Выводы ENABLE притянуты к минусу, моторы не работают digitalWrite(EN1, LOW); digitalWrite(EN2, LOW); digitalWrite(EN3, LOW); digitalWrite(EN4, LOW); } } }
приложение отправляет в порт буквы, которые уже отдают сигнал на ардуино в итоге при подключении к блютузу, при нажатии на кнопки ничего не происходит Код (C++): // Задаём движение вперёд if (val == 'W') // При нажатии клавиши «W» { // Выводы конфигурируются согласно работе Motor Shield'а // Моторы крутятся вперед digitalWrite(EN1, HIGH); digitalWrite(EN2, HIGH); digitalWrite(EN3, HIGH); digitalWrite(EN4, HIGH); digitalWrite(IN1, HIGH); digitalWrite(IN2, HIGH); digitalWrite(IN3, HIGH); digitalWrite(IN4, HIGH); }
Ну, были бы другие, я б отказал в поддержке Ибо нефиг покупать у китайцев, а идти к Амперке Кто захотел меня засудить за грубость? М?
Сейчас проверил всё ещё раз, теперь сигнал на пины поступает но моторы не реагируют, если их напрямую подключать к 5 вольтам и земле, они работают
вы бы для начала убедились, что у вас команды с блютуза поступают. Добавте в код приемника СофтСериал и выводите все пришедшее с блютуза в монитор порта. Сразу будет видно, в чем затык. И, стесняюсь спросить, у вас блютуз-то с телефоном спаривается?