/**********************************************************************
Filename : RF24_Remote_Car.ino
Product : Freenove 4WD Car for UNO
Description : A RF24 Remote Car.
Auther : www.freenove.com
Modification: 2020/11/27
**********************************************************************/
#include "Freenove_4WD_Car_for_Arduino.h"
#include "RF24_Remote.h"
#define NRF_UPDATE_TIMEOUT 1000
u32 lastNrfUpdateTime = 0;
//RDD Add code to use the servo
#include <Servo.h>
Servo servo1;
void setup() {
pinsSetup();
servo1.attach(PIN_SERVO); //RDD
if (!nrf24L01Setup()) {
alarm(4, 2);
}
//Serial.begin(9600);
}
void loop() {
if (getNrf24L01Data()) {
clearNrfFlag();
updateCarActionByNrfRemote();
//handle the servo
float servospeed = nrfDataRead[0] /1023.0; // 1023.0 not 1023
//Serial.println(servospeed);
if (nrfDataRead[5] == 0 ) {
servo1.write( int(91 + servospeed * 36)); // servo reaches max positive speed at 127
} else if (nrfDataRead[6] == 0 ) {
servo1.write(int(91 - servospeed * 32)); // servo reaches max negative speed at 63
} else {
servo1.write(91); //servo stops at 91
}
lastNrfUpdateTime = millis();
}
if (millis() - lastNrfUpdateTime > NRF_UPDATE_TIMEOUT) {
lastNrfUpdateTime = millis();
resetNrfDataBuf();
updateCarActionByNrfRemote();
}
}
Freenove 4WD Controller and Car Simulator.
Servo angles represent the speed
of the left and right car motors.
Servo Speed
Dial
Car Turning
Speed Dial