/********* Pleasedontcode.com **********
Pleasedontcode thanks you for automatic code generation! Enjoy your code!
- Terms and Conditions:
You have a non-exclusive, revocable, worldwide, royalty-free license
for personal and commercial use. Attribution is optional; modifications
are allowed, but you're responsible for code maintenance. We're not
liable for any loss or damage. For full terms,
please visit pleasedontcode.com/termsandconditions.
- Project: ESC Control
- Source Code NOT compiled for: Arduino Nano
- Source Code created on: 2024-10-19 13:55:46
********* Pleasedontcode.com **********/
/****** SYSTEM REQUIREMENTS *****/
/****** SYSTEM REQUIREMENT 1 *****/
/* code to control two escs connected to specify */
/* pins, start with calibration and arming for 30s */
/* then run the motors for 45s with 50% of speed */
/* after that turn off the motors */
/****** END SYSTEM REQUIREMENTS *****/
/****** DEFINITION OF LIBRARIES *****/
#include //https://github.com/arduino-libraries/Servo
/****** FUNCTION PROTOTYPES *****/
void setup(void);
void loop(void);
void updateOutputs(void);
/***** DEFINITION OF PWM OUTPUT PINS *****/
const uint8_t esc1_PIN_D6 = 6; // Pin for ESC1
const uint8_t esc2_PIN_D9 = 9; // Pin for ESC2
/***** DEFINITION OF OUTPUT RAW VARIABLES *****/
/***** used to store raw data *****/
uint8_t esc1_PIN_D6_rawData = 0;
uint8_t esc2_PIN_D9_rawData = 0;
/****** DEFINITION OF LIBRARIES CLASS INSTANCES*****/
// Create Servo objects for each ESC
Servo esc1; // Object for ESC1
Servo esc2; // Object for ESC2
void setup(void)
{
// Attach the Servo objects to the corresponding pins
esc1.attach(esc1_PIN_D6); // Attach ESC1 to pin D6
esc2.attach(esc2_PIN_D9); // Attach ESC2 to pin D9
// Initialize ESCs for calibration and arming
for (int i = 0; i < 30; i++) { // 30 seconds for calibration
esc1.write(0); // Send minimum signal to ESC1
esc2.write(0); // Send minimum signal to ESC2
delay(1000); // Wait for 1 second
}
// After calibration, send a signal to arm the ESCs
esc1.write(90); // Send a neutral signal to ESC1
esc2.write(90); // Send a neutral signal to ESC2
delay(2000); // Wait for 2 seconds to ensure ESCs are armed
// Run the motors at 50% speed for 45 seconds
for (int i = 0; i < 45; i++) { // 45 seconds
esc1.write(127); // Set ESC1 to 50% speed
esc2.write(127); // Set ESC2 to 50% speed
delay(1000); // Wait for 1 second
}
// Turn off the motors
esc1.write(0); // Send minimum signal to ESC1
esc2.write(0); // Send minimum signal to ESC2
}
void loop(void)
{
// The loop function is empty as all actions are handled in setup
}
/* END CODE */