Étape 3: Code
Voici le code s’il vous plaît respect le temps qu'il a fallu pour cela :
RC PulseIn série lu par : Nick Poole
prolongée par Jason Mclaughlin
2015
#include < Servo.h > / / pour servo en exemple
Servo myservo ; entité //servo
int pos = 0 ; position pour servo
ch1 int ; Voici où nous tiendrons notre canal valeurs //servo 2
int ch2 ; moteurs
int ch3 ; servo
const int channel_a_enable = 6 ;
const int channel_a_input_1 = 4 ;
const int channel_a_input_2 = 7 ;
const int channel_b_enable = 5 ;
const int channel_b_input_3 = 3 ;
const int channel_b_input_4 = 2 ;
void setup() {}
pinMode (channel_a_enable, sortie) ; Canal A activer
pinMode (channel_a_input_1, sortie) ; Une entrée 1 canal
pinMode (channel_a_input_2, sortie) ; Une entrée 2 Channel
pinMode (channel_b_enable, sortie) ; Permettre à canal B
pinMode (channel_b_input_3, sortie) ; Entrée du canal B 3
pinMode (channel_b_input_4, sortie) ; Entrée du canal B 4
myservo.Attach(11) ;
pinMode (10, entrée) ; La valeur de nos broches d’entrée comme tel
pinMode (9, entrée) ;
pinMode (8 entrées) ;
Serial.Begin(9600) ; Verser un bol de série
}
void loop() {}
CH1 = pulseIn (10, haute, 25000) ; Lire la largeur d’impulsion de
CH2 = pulseIn (9, HIGH, 25000) ; chaque canal
CH3 = pulseIn (8, hauts, 25000) ;
Serial.Print ("canal 1:") ; Imprimer la valeur de
Serial.println(CH1) ; chaque canal
Serial.Print ("canal 2:") ;
Serial.println(CH2) ;
Serial.Print ("canal 3:") ;
Serial.println(CH3) ;
Si ((ch3 > = 1500) & & (ch3 < = 1600)) {/ / la postion de centre pour contrôleur
Serial.println("between") ;
POS = 90 ; //set servo pour centrer
myservo.Write(POS) ; la valeur op qui est 90
}
ElseIf ((ch3 > = 1100) & & (ch3 < = 1490)) {}
Serial.println("Right") ;
POS = 180 ;
myservo.Write(POS) ; va de 180 degrés à 0 degrés
attend 15 ms pour le servo atteindre la position
}
else {}
Serial.println("left") ;
(pos = 0) ; va de 0 degrés à 180 degrés
par incréments de 1 degré
myservo.Write(POS) ;
dire de servo pour aller à positionner dans la variable « pos »
}
moteur
Si ((ch1 > = 1000) & & (ch1 < = 1060)) {}
Serial.println ("moteurs hors") ;
analogWrite (channel_a_enable, 125,5) ;
digitalWrite (channel_a_input_1, basse) ;
digitalWrite (channel_a_input_2, basse) ;
analogWrite (channel_b_enable, 125,5) ;
digitalWrite (channel_b_input_3, basse) ;
digitalWrite (channel_b_input_4, basse) ;
Delay(50) ;
}
ElseIf ((ch1 > = 1060) & & (ch1 < = 1500)) {}
Serial.println ("support moteurs") ;
analogWrite (channel_a_enable, 50) ;
digitalWrite (channel_a_input_1, HIGH) ;
digitalWrite (channel_a_input_2, basse) ;
analogWrite (channel_b_enable, 50) ;
digitalWrite (channel_b_input_3, HIGH) ;
digitalWrite (channel_b_input_4, basse) ;
Delay(50) ;
}
else {}
Serial.println ("moteurs haut") ;
analogWrite (channel_a_enable, 255) ;
digitalWrite (channel_a_input_1, HIGH) ;
digitalWrite (channel_a_input_2, basse) ;
analogWrite (channel_b_enable, 255) ;
digitalWrite (channel_b_input_3, HIGH) ;
digitalWrite (channel_b_input_4, basse) ;
Delay(50) ;
}
Delay(100) ; J’ai mis cela ici, juste pour faire du terminal
fenêtre de plus heureux
}