Private Sub AppStart
Serial1.Initialize(115200)
Log("AppStart")
RunNative("initialize", Null) ' Inicializar O PWM
RunNative("initializeServo", Null) ' Inicializa o servo
End Sub
Case "CMDE"
ServoValue = ServoValue + 10 ' Incrementa o ângulo do servo X
RunNative("setServoAngle", Null) ' Atualiza os servos
Case "CMDF"
ServoValue = ServoValue - 10 ' Incrementa o ângulo do servo X
RunNative("setServoAngle", Null) ' Atualiza os servos
Case "CMDM" ' Aumentar Velocidade
PwmValue=PwmValue+1
RunNative("Pwm", Null) ' Chama a função PWM para atualizar o valor
Case "CMDN" ' Diminuir Velocidade
PwmValue=PwmValue-1
RunNative("Pwm", Null) ' Chama a função PWM para atualizar o valor
'PWM
#if C
void initialize(B4R::Object* o) {
// Configura o canal PWM com a frequência e resolução de timer
ledcSetup(b4r_main::_channel, b4r_main::_freq, b4r_main::_ledc_timer_13_bit);
ledcAttachPin(b4r_main::_pinpwm1, b4r_main::_channel);
Serial.println("PWM Initialized");
}
void Pwm(B4R::Object* o) {
// Escreve o valor PWM no canal configurado
ledcWrite(b4r_main::_channel, b4r_main::_pwmvalue);
printf("PWM Value set to: %d\n", b4r_main::_pwmvalue);
}
#End If
'Motor servo2
#If C
#include <ESP32Servo.h>
Servo servo; // Instância do objeto Servo
void initializeServo(B4R::Object* o) {
servo.attach(b4r_main::_pinservo); // Conecta o servo ao pino configurado no B4R
}
void setServoAngle(B4R::Object* o) {
int angle = b4r_main::_servovalue; // Obtém o valor de ângulo configurado no B4R
servo.write(angle); // Move o servo para o ângulo especificado
}
#End If