Bonjour a tous, tous d'abord je tiens a vous remercier pour tous ce que j'ai pus trouver pour avancer dans mon projet.
Mon projet est un bras articuler monter sur chenille en mode FPV via une télécommande DX6i
le pilotage de la camera ce fait via arduino nano et nrf24l01 qui fonctionne parfaitement et le pilotage du bras via une nano également connecté au récepteur rc
pour le pilotage du bras j'utilise un code assez basic qui fonctionne mais me cause des tremblement a cause des variations de signal du mon récepteur rc
je tien a préciser que j'utilise une alimentation externe que l'arduino (5V 10A largement suffisante pour mes servo) j'utilise l'arduino car dans mon projet j'ai besoin d'une rotation de 180 degré.
le servo na pas de problémé de tremblement si il est connecter en direct sur le récepteur mais une rotation de 120 degré max ne me convient pas ici.
je suis archi nul en programmation et j'ai juste compris la base entrée et sortie pour modifier légèrement les codes que je trouve .
ci dessous voici le code que j'utilise pour le bras
// Commande de 2 servo rotation 180 degre avec commande RC DSMX
#include <Servo.h> // Libraries file | Kütüphane dosyası
Servo servoMotor1; // Servo nesnesi oluşturuluyor
int RCinput1;
int RCinput2;
int RXPin1 = 3; // Receiver pin A4
int kontrol1 = 1400; // Alıcıdan gelen kontrol değeri
Servo servoMotor2; // Servo nesnesi oluşturuluyor
int RXPin2 = 2; // Receiver pin A5
int kontrol2 = 1400; // Alıcıdan gelen kontrol değeri
int ch1, ch2; // Lecture signal RC CH1 CH2
void setup() {
servoMotor1.attach(10); // Servo Pin 5
pinMode(RXPin1, INPUT); // Receiver pin input
servoMotor2.attach(9); // Servo Pin 9
pinMode(RXPin2, INPUT); // Receiver pin input
//TIMSK0=0;
}
void loop() {
kontrol1 = pulseIn(RXPin1, HIGH); // Reading the receiver signal
kontrol1 = map(kontrol1, 1115, 1930, 180, 0);
//kontrol1 = map(kontrol1, 1000, 2000, 0, 180); // Other side
servoMotor1.write(kontrol1); // Servo motor kontrol değeri atanıyor
//delay(10);
kontrol2 = pulseIn(RXPin2, HIGH); // Reading the receiver signal
kontrol2 = map(kontrol2, 1115, 1930, 180, 0);
//kontrol2 = map(kontrol2, 1000, 2000, 0, 180); // Other side
servoMotor2.write(kontrol2); // Servo motor kontrol değeri atanıyor
//delay(30);
}
ma question est il y a t'il moyen de lisser le signal envoyer par le récepteur pour arrêter le tremblement et si oui est ce que une âme charitable pourrais m'aider a modifier le code.
merci d'avance pour votre aide .







