Étape 16 : programmation
Voici le code je l’ai utilisé doit être explicite si vous passez par là :
#include < AFMotor.h >
#include < SoftwareSerial.h > //Software Serial Port#include < Servo.h >
Servo myservo ;
mySpeed int ;
int turretAngle ;
char de val ;
char prevAction ;
AF_DCMotor motor_1(1) ;
AF_DCMotor motor_2(2) ;
AF_DCMotor motor_3(3) ;
AF_DCMotor motor_4(4) ;#define A0 rouge
#define SET A1
#define RxD A5 / / il s’agit de l’axe que le Bluetooth (BT_TX) transmettra à l’Arduino (RxD)
#define TxD A4SoftwareSerial blueToothSerial(RxD,TxD) ;
int switchVal ;
bool en cours d’exécution ;void setup() {}
Serial.Begin(9600) ; Permettre une communication série via un câble USB à l’ordinateur (si nécessaire)
pinMode (entrée, RxD) ; Configurer l’Arduino pour recevoir des entrées provenant du bouclier de bluetooth sur Digital 6 Pin
pinMode (TxD, sortie) ; Configurer l’Arduino pour envoyer des données (OUTPUT) pour le bouclier de bluetooth sur Digital 7 broches
pinMode(13,OUTPUT) ; Utiliser des LED à bord si nécessaire.
pinMode (rouge, sortie) ;
pinMode(SET,INPUT_PULLUP) ;
blueToothSerial.begin(9600) ;
turretAngle = 90 ;
switchVal = élevé ;
mySpeed = 255 ;
mettre en marche le moteur
SetSpeed () ;
myservo.Attach(9) ;
Release() ;
}
void loop() {}
int sensorVal = digitalRead(SET) ;
Si (sensorVal == faible)
{
en cours d’exécution = ! en cours d’exécution ;
digitalWrite (rouge, en cours d’exécution ? HIGH:LOW) ;
retard (400) ;
}
Si (vrai)
{
if(blueToothSerial.available())
{
Val = blueToothSerial.read() ;
Serial.Print(Val) ; Imprimer le caractère a reçu pour le Serial Monitor (si nécessaire)
prevAction = val ;
Si (val == « F ») //fwd
{
SetSpeed() ;
Mémoire ;
}
else if (val == « L ») //left
{
SetSpeed() ;
Left() ;
}
else if (val == « R ») //right
{
SetSpeed() ;
Right() ;
}
else if (val == « B ») //reverse
{
SetSpeed() ;
Reverse() ;
}
else if (val == les de ') / / top
{
Release() ;
}
else if (val == « G ») / / NW
{
NorthWest() ;
}
else if (val == « I ») / / NE
{
NorthEast() ;
}
else if (val == « J ») / / SE
{
SouthEast() ;
}
else if (val == « H ») / / SW
{
SouthWest() ;
}
else if (val == « 1 ») / / Vitesse
{
mySpeed = 255/10 ;
}
else if (val == « 2 ») / / Vitesse
{
mySpeed = 255/10 * 2 ;
}
else if (val == « 3 ») / / Vitesse
{
mySpeed = 255/10 * 3 ;
}
else if (val == « 4 ») / / Vitesse 1
{
mySpeed = 255/10 * 4 ;
}
else if (val == « 5 ») / / Vitesse 1
{
mySpeed = 255/10 * 5 ;
}
else if (val == « 6 ») / / Vitesse 1
{
mySpeed = 255/10 * 6 ;
}
else if (val == « 7 ») / / Vitesse 1
{
mySpeed = 255/10 * 7 ;
}
else if (val == « 8 ») / / Vitesse 1
{
mySpeed = 255/10 * 8 ;
}
else if (val == « 9 ») / / Vitesse 1
{
mySpeed = 255/10 * 9 ;
}
else if (val == « q ») / / Vitesse 1
{
mySpeed = 255 ;
}
else if (val == « X » || val == « x »)
{
Reverse() ;
Delay(50) ;
Mémoire ;
Delay(50) ;
Release() ;
}
else if (val == « V » || val == « v »)
{
en cours d’exécution = ! en cours d’exécution ;
digitalWrite (rouge, en cours d’exécution ? HIGH:LOW) ;
}
}
d’autre
{
Si (val == « W »)
{
TurretLeft() ;
}
else if (val == « U »)
{
TurretRight() ;
}
}
}
d’autre
{
Release() ;
}
}
Sub MoveTurret()
{
Si (turretAngle < 30)
turretAngle = 30 ;
Si (turretAngle > 150)
turretAngle = 150 ;
myservo.Write(turretAngle) ;
}
Sub TurretLeft()
{
turretAngle += 1 ;
MoveTurret() ;
Delay(10) ;
}
Sub TurretRight()
{
turretAngle-=1 ;
MoveTurret() ;
Delay(10) ;
}
mémoire vide
{
motor_1.Run(Forward) ;
motor_2.Run(Forward) ;
motor_3.Run(Forward) ;
motor_4.Run(Forward) ;
}
Reverse() Sub
{
motor_1.Run(Backward) ;
motor_2.Run(Backward) ;
motor_3.Run(Backward) ;
motor_4.Run(Backward) ;
}
Left() Sub
{
motor_1.Run(Forward) ;
motor_2.Run(Backward) ;
motor_3.Run(Backward) ;
motor_4.Run(Forward) ;
}
Right() Sub
{
motor_1.Run(Backward) ;
motor_2.Run(Forward) ;
motor_3.Run(Forward) ;
motor_4.Run(Backward) ;
}
void Release()
{
motor_1.Run(Release) ;
motor_2.Run(Release) ;
motor_3.Run(Release) ;
motor_4.Run(Release) ;
}
Sub NorthWest()
{
SetSpeedLeft() ;
}
Sub NorthEast()
{
SetSpeedRight() ;
Mémoire ;
}
Sub SouthEast()
{
SetSpeedRight() ;
Reverse() ;
}
Sub SouthWest()
{
SetSpeedLeft() ;
Reverse() ;
}
Sub SetSpeed()
{
motor_1.setSpeed(mySpeed) ;
motor_2.setSpeed(mySpeed) ;
motor_3.setSpeed(mySpeed) ;
motor_4.setSpeed(mySpeed) ;
}
Sub SetSpeedRight()
{
motor_1.setSpeed(mySpeed/2) ;
motor_2.setSpeed(mySpeed) ;
motor_3.setSpeed(mySpeed) ;
motor_4.setSpeed(mySpeed/2) ;
}
Sub SetSpeedLeft()
{
motor_1.setSpeed(mySpeed) ;
motor_2.setSpeed(mySpeed/2) ;
motor_3.setSpeed(mySpeed/2) ;
motor_4.setSpeed(mySpeed) ;
}