Étape 8: Étape 8: programmation de l’Arduino
1. Télécharger la bibliothèque Amarino pour l’Arduino (lien).
2. extraire le fichier zip dans le dossier : arduino_install_dir/libraries/extract_meetandroid.zip_here 3.
4. vous pouvez procéder à l’Arduino Uno de programmation.
Voici le code source de l’Arduino. Copiez le code ci-dessous et de le charger sur l’Arduino:-
#include < MeetAndroid.h >
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 (uint8_t drapeau, valeurs uint8_t)
{
Serial.Print ("erreur:") ;
Serial.Print(flag) ;
}
void setup() {}
Serial.Begin(9600) ;
Serial.println("\t\t\t.---.") ;
Serial.println ("\t\t\t| Mise en service... |");
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 octets, numOfValues octets)
{
meetAndroid.getFloatValues(data) ;
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, élevé) ;
digitalWrite (Motor_2_A, élevé) ;
digitalWrite (Motor_1_B, basse) ;
digitalWrite (Motor_2_B, basse) ;
analogWrite (EnablePin1, intdata[0]) ;
analogWrite (EnablePin2, intdata[0]) ;
}
ElseIf (data [0] > = 2)
{
digitalWrite (Motor_1_A, basse) ;
digitalWrite (Motor_2_A, basse) ;
digitalWrite (Motor_1_B, élevé) ;
digitalWrite (Motor_2_B, élevé) ;
analogWrite (EnablePin1, intdata[0]) ;
analogWrite (EnablePin2, intdata[0]) ;
}
ElseIf (-1 < = data [0] < = 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) ;
}
}
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) ;
}
}
}