Étape 6: Code 2
#include
const int EnablePin1 = 3 ;
const int EnablePin2 = 6 ;
const int Motor_1_A = 2 ;
const int Motor_1_B = 4 ;
const int Motor_2_A = 5 ;
const int Motor_2_B = 7 ;
flotteur de données [3] = {0} ;
int intdata [3] = {0} ;
int i = 1 ;
MeetAndroid meetAndroid(error) ;
void erreur (drapeau d’uint8_t, uint8_t
valeurs)
{
Serial.Print ("erreur:") ;
Serial.Print(flag) ;
}
void setup() {}
Serial.Begin(9600) ;
Serial.println ("\t\t
\t.----------------------.");
Serial.println ("\t\t\t| À partir
Vers le haut... |");
Serial.println ("\t\t
\t'----------------------'");
pinMode (EnablePin1, sortie) ;
pinMode (EnablePin2, sortie) ;
pinMode (Motor_1_A, sortie) ;
pinMode (Motor_1_B, sortie) ;
pinMode (Motor_2_A, sortie) ;
pinMode (Motor_2_B, sortie) ;
Delay(1000) ;
meetAndroid.registerFunction
(floatValues, « A ») ;
}
void loop()
{
meetAndroid.receive() ;
}
void floatValues (drapeau de l’octet, byte
numOfValues)
{
meetAndroid.getFloatValues
(données) ;
pour (int i = 0; i < 3; i ++)
{
meetAndroid.send(data[i]) ;
}
Si (-10 < = data [0] < = 10) / /
Il s’agit pour la marche avant/marche arrière
{
intdata [0] = int(data[0]) ;
intdata [0] = intdata [0] * 24 ;
Si (data [0] < = -2)
{
intdata [0] = abs (intdata
[0]);
digitalWrite (Motor_1_A,
HAUTE) ;
digitalWrite (Motor_2_A,
HAUTE) ;
digitalWrite (Motor_1_B,
FAIBLE) ;
digitalWrite (Motor_2_B,
FAIBLE) ;
analogWrite (EnablePin1,
intdata[0]) ;
analogWrite (EnablePin2,
intdata[0]) ;
}
ElseIf (data [0] > = 2)
{
digitalWrite (Motor_1_A,
FAIBLE) ;
digitalWrite (Motor_2_A,
FAIBLE) ;
digitalWrite (Motor_1_B,
HAUTE) ;
digitalWrite (Motor_2_B,
HAUTE) ;
analogWrite (EnablePin1,
intdata[0]) ;
analogWrite (EnablePin2,
intdata[0]) ;
}
ElseIf (-1 < = data [0] < = 1)
{
digitalWrite (Motor_1_A,
FAIBLE) ;
digitalWrite (Motor_2_A,
FAIBLE) ;
digitalWrite (Motor_1_B,
FAIBLE) ;
digitalWrite (Motor_2_B,
FAIBLE) ;
digitalWrite (EnablePin1,
FAIBLE) ;
digitalWrite (EnablePin2,
FAIBLE) ;
}
}
Si (-10 < = données [1] < = 10) / /
C’est pour tourner à gauche/tourner à droite
{
Si (données [1] < = -2)
{
digitalWrite
(Motor_1_A, élevé) ;
digitalWrite
(Motor_2_B, élevé) ;
digitalWrite
(Motor_1_B, basse) ;
digitalWrite
(Motor_2_A, basse) ;
analogWrite
(EnablePin1, intdata[0]) ;
analogWrite (EnablePin2,
intdata[0]) ;
}
ElseIf (données [1] > = 2).
{
digitalWrite
(Motor_1_A, basse) ;
digitalWrite
(Motor_2_B, basse) ;
digitalWrite
(Motor_1_B, élevé) ;
digitalWrite
(Motor_2_A, élevé) ;
analogWrite
(EnablePin1, intdata[0]) ;
analogWrite
(EnablePin2, intdata[0]) ;
}
ElseIf (-1 < = données [1] < = 1)
{
digitalWrite
(Motor_1_A, basse) ;
digitalWrite
(Motor_2_A, basse) ;
digitalWrite
(Motor_1_B, basse) ;
digitalWrite
(Motor_2_B, basse) ;
digitalWrite
(EnablePin1, basse) ;
digitalWrite
(EnablePin2, basse) ;
}
}
}