Я кодирую автомобиль 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++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Ошибка при загрузке .HEX Файл в Arduino Nano с использованием Arduinouploader в .net c#
Anonymous » » в форуме C# - 0 Ответы
- 24 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как сохранить активную среднюю связь между Arduino Nano 33 BLE (NRF52) и iPad
Anonymous » » в форуме IOS - 0 Ответы
- 22 Просмотры
-
Последнее сообщение Anonymous
-