Собрал машинку четырехколесную. Подключил блютус модуль и через приложение на телефоне хотел запустить. Пищит но не едет. Подскажите в чем причина

Собрал машинку четырехколесную. Подключил блютус модуль и через приложение на телефоне хотел запустить. Пищит но не едет. Подскажите в чем причина

Что-то не правильно сделал. Не благодари.

2 лайка

в шестом моторе перепутано питание, телефон моторолла не поддерживается, а в коде в строке 434 ошибка

Я хотел виде снять как он пищит. Думал если кто то сталкивался поймет. Видео можно сюда скидывать?

видео не нужно.

А нужно - схему, код и подробное описание проекта

а так по механике все в норме. К контакту V если подсоединить поочередно все четыре провода от колес, то колеса могу вращаться во все стороны.

Ну вот и отлично. Удачи в новых проектах.

Есть варианты:

  1. неправильно собрал
  2. неправильно подключил
  3. неправильное приложение
  4. забыл запустить
  5. колёса застряли
  6. неправильна машинка (на самом деле, это катер)
  7. неправильный модуль – не блютус, а звуковая плата
  8. кончился бензин (соляра, батарейка, солнце не попадет на панель, или на чём она там у Вас)

Есть ещё варианты. Надо?

1 лайк

А автор-то - рецидивист

Три месяца назад я ему уже писал

похоже что человек … как бы это сказать… не сообразительный.
Так и не дошло, как правильно вопросы задавать.

@AAA
поищите другой форум для общения, ок?

Я сталкивался много раз - пищат обмотки мотора от шима.
…когда машинка едет - писк не слышен.

Пищит и не едет:
Питается только от USB, нормальная батарея 18650 не подключена.
В программе задаётся маленькая скорость двигателя. analogWrite(enA, motor_speed); // PWM output
У меня моторы начинают уверенно крутиться с 100. (L298N)
Если меньше - то для старта приходится помогать мотору рукой.

Во истину так!

\// Подключаем библиотеку для создания дополнительных последовательных (Serial) портов.
#include <SoftwareSerial.h>
#include “motor.h”
#include “move_case.h”
//Создаем последовательный порт на пинах 13-чтение и 2-передача.
SoftwareSerial BTSerial(10, 11); // RX, TX
// Переменная для приема данных по Bluetooth.
char bt_input;
// Хранит время последнего нажатия кнопки.
unsigned long _time;
//=================================//
//== Функция инициализации
void setup()
{
// Переменные – номера контактов (пинов) Arduino.
// Для левых и правых моторов машинки.
setup_motor_system(2, 3, 4, 5);
_stop(); //Двигатели остановлены.
// Устанавливаем скорость передачи данных для НС-05 (Bluetooth-модуль).
BTSerial.begin(9600);
// Переключаем A0 в двоичный режим работы, на передачу.
// если вы его еще не отключили
pinMode(14, OUTPUT);
// Устанавливаем скорость передачи данных по кабелю.
// Порт компьютера
//Serial.begin(9600);
_time = micros();
}
// Основная программа.
void loop()
{
if (BTSerial.available())
{
// Читаем команду и заносим ее в переменную. char преобразует
// код символа команды в символ.
bt_input = (char)BTSerial.read();
// Отправляем команду в порт, чтобы можно было
// их проверить в “Мониторе порта”.
//Serial.println(bt_input);
//Вызов функции выбора действия по команде
move_case(bt_input);
_time = micros();
}
if ((micros() - _time) > _move_time)
{
_stop();
}
if ((micros() - _time) >= 500)
{
_time = micros();
move_case(bt_input);
}
}

\\

Вот уж точно, “воистЕну”! :face_with_open_eyes_and_hand_over_mouth:

1 лайк

Как надо было код загружать? напомните.

@AAA
Выложенный код неполный, вращения моторов в нем вообще нет

Свою старую тему посмотрите. Там Вам всё объяснили.

Хотите, чтобы объясняли ещё раз – это уже не бесплатно.

/ Объявляем переменные для хранения состояния двух моторов.
int motor_L1, motor_L2;
int motor_R1, motor_R2;
//===============================================
// Функция инициализации управления моторами.
void setup_motor_system(int L1, int L2, int R1, int R2)
{
// Заносятся в переменные номера контактов (пинов) Arduino.
motor_L1 = L1; motor_L2 = L2;
// Для левых и правых моторов робота.
motor_R1 = R1; motor_R2 = R2;
// Переводятся указанные порты в состояние вывода данных.
pinMode(motor_L1, OUTPUT);
pinMode(motor_L2, OUTPUT);
pinMode(motor_R1, OUTPUT);
pinMode(motor_R2, OUTPUT);
}
//===============================================
// движение вперед.
void forward()
{
// Если двигатель будет работать не в ту сторону,
// поменять на нем контакты местами.
digitalWrite(motor_L1, HIGH);
digitalWrite(motor_L2, LOW);
digitalWrite(motor_R1, HIGH);
digitalWrite(motor_R2, LOW);
}
//===============================================
// Поворот налево с блокировкой левых колес.
void forward_left()
{
// блокировка вращения левых колес.
digitalWrite(motor_L1, LOW);
digitalWrite(motor_L2, LOW);
// правые колеса вращаются.
digitalWrite(motor_R1, HIGH);
digitalWrite(motor_R2, LOW);
}
//===============================================
// Поворот направо с блокировкой правых колес.
void forward_right()
{
// левые колеса вращаются.
digitalWrite(motor_L1, HIGH);
digitalWrite(motor_L2, LOW);
// блокировка вращения правых колес.
digitalWrite(motor_R1, LOW);
digitalWrite(motor_R2, LOW);
}
// Поворот налево на месте.
void left()
{
// левые колеса вращаются назад.
digitalWrite(motor_L1, LOW);
digitalWrite(motor_L2, HIGH);
// правые колеса вращаются вперед.
digitalWrite(motor_R1, HIGH);
digitalWrite(motor_R2, LOW);
}
//===============================================
// Поворот направо на месте.
void right()
{
// левые колеса вращаются вперед.
digitalWrite(motor_L1, HIGH);
digitalWrite(motor_L2, LOW);
// правые колеса вращаются назад.
digitalWrite(motor_R1, LOW);
digitalWrite(motor_R2, HIGH);
}

// Включаем движение назад.
void backward()
{
// Смена направления вращения двигателей.
digitalWrite(motor_L2, HIGH);
digitalWrite(motor_L1, LOW);
digitalWrite(motor_R2, HIGH);
digitalWrite(motor_R1, LOW);
}
//===============================================
// Включаем движение назад.
void backward_left()
{
// Смена направления вращения двигателей.
digitalWrite(motor_L2, LOW);
digitalWrite(motor_L1, HIGH);
digitalWrite(motor_R2, HIGH);
digitalWrite(motor_R1, LOW);
}
//===============================================
// Включаем движение назад.
void backward_right()
{
// Смена направления вращения двигателей.
digitalWrite(motor_L2, HIGH);
digitalWrite(motor_L1, LOW);
digitalWrite(motor_R2, LOW);
digitalWrite(motor_R1, HIGH);
}
//===============================================

void _stop()
{
// Блокировка всех колес.
digitalWrite(motor_L2, LOW);
digitalWrite(motor_L1, LOW);
digitalWrite(motor_R2, LOW);
digitalWrite(motor_R1, LOW);
}

// Пременная изменения скорости.
unsigned long _move_time;
// == Выбор действий
void move_case(char bt_input)
{
switch (bt_input) {
// Вперед
case ‘F’:
forward();
break;
// Назад
case ‘B’:
backward();
break;
// Влево
case ‘L’:
left();
break;
// Вправо
case ‘R’:
right();
break;
// Прямо и влево
case ‘G’:
forward_left();
break;
// Прямо и вправо
case ‘I’:
forward_right();
break;
// Назад и влево
case ‘H’:
backward_left();
break;
// Назад и вправо
case ‘J’:
backward_right();
break;
// Стоп
case ‘S’:
_stop();
break;
// Скорость 0%
case ‘0’:
_move_time = 0;
break;
// Скорость 10%
case ‘1’:
_move_time = 50;
break;
// Скорость 20%
case ‘2’:
_move_time = 100;
break;
// Скорость 30%
case ‘3’:
_move_time = 150;
break;
// Скорость 40%
case ‘4’:
_move_time = 200;
break;
// Скорость 50%
case ‘5’:
_move_time = 250;
break;
// Скорость 60%
case ‘6’:
_move_time = 300;
break;
// Скорость 70%
case ‘7’:
_move_time = 350;
break;
// Скорость 80%
_move_time = 400;
break;
// Скорость 90%
case ‘9’:
_move_time = 450;
break;
// Скорость 100%
case ‘q’:
_move_time = 500;
break;
case ‘X’:
//switch_rejim = 1;
break;
case ‘x’:
//switch_rejim = 0;
break;
case ‘D’:
_stop(); //switch_rejim = 0;
break;
}
}

Эти два тоже во вкладках