Cesar_Morisco
Active Member
Hey guys, clear me a doubt
Because the pwm control acts on the servo motor control. If the RunNative call is separate
Because the pwm control acts on the servo motor control. If the RunNative call is separate
B4R:
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