Я кодирую автомобиль RC в Arduino Ide. < /p>
Вот спецификации того, что я использую: < /p>
arduino nano esp-32 < /li>
wifi Protocol: eSp-now < /li>
atry> /> < /ul>
приемник и отправитель являются одинаковыми Arduino и правильно общаются. Рулевое управление и вперед работают нормально, это меняется, что вообще не работает. < /P>
Что мне нужно делать или я не вижу?#include
#include
#include
#include
typedef struct struct_message {
int steering_stick;
int accelerating_stick;
} struct_message;
struct_message myReceivedData;
Servo steeringServo;
Servo ESC;
// Keep original pin definitions
const int steeringPin = 4;
const int escPin = 6;
// Maintain original mapping constants for accelerating stick
const int deadzoneLow = 1920;
const int deadzoneHigh = 1940;
const int idlePulse = 850; // Confirmed neutral pulse is 1000μs
const int forwardMinPulse = 1100; // Forward begins at this value
const int forwardMaxPulse = 2000; // Full forward
const int reverseMinPulse = 500; // Modified: Less aggressive reverse
const int reverseMaxPulse = 950; // Approach neutral from below
// Keep original steering constants
const int steerMin = 60;
const int steerMax = 130;
// Variables for state tracking
int lastAccel = -1;
int lastSteer = -1;
bool motorBraked = false; // Track if motor is in braked state
unsigned long brakeStartTime = 0; // When braking began
const unsigned long brakeHoldTime = 2000; // Hold time in brake/neutral before reverse
// ESC initialization flags
bool escInitialized = false;
bool reverseModeEnabled = false;
void OnDataRecv(const uint8_t *mac, const uint8_t *incomingData, int len) {
memcpy(&myReceivedData, incomingData, sizeof(myReceivedData));
// Keep the original logging logic
if (myReceivedData.accelerating_stick != lastAccel || myReceivedData.steering_stick != lastSteer) {
Serial.println("Received data:");
Serial.print("Accelerating Stick: ");
Serial.println(myReceivedData.accelerating_stick);
Serial.print("Steering Stick: ");
Serial.println(myReceivedData.steering_stick);
lastAccel = myReceivedData.accelerating_stick;
lastSteer = myReceivedData.steering_stick;
}
// Make sure ESC is initialized
if (!escInitialized) {
return;
}
int escPulse;
// Deadzone handling - stick in neutral position
if (myReceivedData.accelerating_stick >= deadzoneLow && myReceivedData.accelerating_stick
Подробнее здесь: https://stackoverflow.com/questions/795 ... sp-32-nano
Как починить свой бесщеточный мотор, а не наносящую вспять с помощью моего arduino esp-32 nano? ⇐ C++
Программы на C++. Форум разработчиков
1741749320
Anonymous
Я кодирую автомобиль RC в Arduino Ide. < /p>
Вот спецификации того, что я использую: < /p>
arduino nano esp-32 < /li>
wifi Protocol: eSp-now < /li>
atry> /> < /ul>
приемник и отправитель являются одинаковыми Arduino и правильно общаются. Рулевое управление и вперед работают нормально, это меняется, что вообще не работает. < /P>
Что мне нужно делать или я не вижу?#include
#include
#include
#include
typedef struct struct_message {
int steering_stick;
int accelerating_stick;
} struct_message;
struct_message myReceivedData;
Servo steeringServo;
Servo ESC;
// Keep original pin definitions
const int steeringPin = 4;
const int escPin = 6;
// Maintain original mapping constants for accelerating stick
const int deadzoneLow = 1920;
const int deadzoneHigh = 1940;
const int idlePulse = 850; // Confirmed neutral pulse is 1000μs
const int forwardMinPulse = 1100; // Forward begins at this value
const int forwardMaxPulse = 2000; // Full forward
const int reverseMinPulse = 500; // Modified: Less aggressive reverse
const int reverseMaxPulse = 950; // Approach neutral from below
// Keep original steering constants
const int steerMin = 60;
const int steerMax = 130;
// Variables for state tracking
int lastAccel = -1;
int lastSteer = -1;
bool motorBraked = false; // Track if motor is in braked state
unsigned long brakeStartTime = 0; // When braking began
const unsigned long brakeHoldTime = 2000; // Hold time in brake/neutral before reverse
// ESC initialization flags
bool escInitialized = false;
bool reverseModeEnabled = false;
void OnDataRecv(const uint8_t *mac, const uint8_t *incomingData, int len) {
memcpy(&myReceivedData, incomingData, sizeof(myReceivedData));
// Keep the original logging logic
if (myReceivedData.accelerating_stick != lastAccel || myReceivedData.steering_stick != lastSteer) {
Serial.println("Received data:");
Serial.print("Accelerating Stick: ");
Serial.println(myReceivedData.accelerating_stick);
Serial.print("Steering Stick: ");
Serial.println(myReceivedData.steering_stick);
lastAccel = myReceivedData.accelerating_stick;
lastSteer = myReceivedData.steering_stick;
}
// Make sure ESC is initialized
if (!escInitialized) {
return;
}
int escPulse;
// Deadzone handling - stick in neutral position
if (myReceivedData.accelerating_stick >= deadzoneLow && myReceivedData.accelerating_stick
Подробнее здесь: [url]https://stackoverflow.com/questions/79502567/how-do-i-fix-my-brushless-motor-not-reversing-with-my-arduino-esp-32-nano[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия