Étape 5: codage
Code: - pour l’émetteur
int sen0 = A0 ; axe d’accéléromètre x
sen1 int = A1 ; axe des y d’accéléromètre
sen2 int = A2 ; Capteur de Flex
void setup()
{
Serial.Begin(9600) ;
}
void loop()
{
int val0 = map(analogRead(sen0), 260, 450, 100, 210) ; mapper ces valeurs entrant dans la gamme de requried Serial.print(val0) ; Envoyer des données via Xbee
int val1 = map(analogRead(sen1), 260, 450, 100, 210) ;
Serial.Print(val1) ;
int val2 = map(analogRead(sen2), 620, 450, 210, 100) ;
Serial.Print(val2) ;
Delay(50) ; retard de 50 ms
}
.
.
.
.
Code - pour récepteur
#include < Servo.h >
int servo0Pin = 6 ;
int servo1Pin = 7 ;
int servo2Pin = 8 ;
Servo myservo0 ;
Servo myservo1 ;
Servo myservo2 ;
val0 int = 2 ;
int val1 = 3 ;
int val2 = 4 ;
val3 int = 5 ;
int buttonState0 = 0 ;
int buttonState1 = 0 ;
int buttonState2 = 0 ;
int buttonState3 = 0 ;
int out0 = 9 ;
int out1 = 10 ;
int out2 = 11 ;
out3 int = 12 ;
int d, i, n. ;
int u, v, w ;
int dlast, nlast, ilast ;
void setup()
{
Serial.Begin(9600) ;
pinMode (out0, sortie) ;
pinMode (out1, sortie) ;
pinMode (sortie out2,) ;
pinMode (out3, sortie) ;
pinMode (val0, entrée) ;
pinMode (val1, entrée) ;
pinMode (val2, entrée) ;
pinMode (val3, entrée) ;
myservo0.Attach(servo0Pin) ;
myservo1.Attach(servo1Pin) ;
myservo2.Attach(servo2Pin) ;
}
void loop()
{
while(Serial.available() == 0) ;
données int = Serial.read() - « 0 » ;
octet un = Serial.read() ;
b octets = Serial.read() ;
c octets = Serial.read() ;
octet f = Serial.read() ;
g octet = Serial.read() ;
h octets = Serial.read() ;
k octets = Serial.read() ;
l octets = Serial.read() ;
m octets = Serial.read() ;
d = (c-48) + (b-48) * 10 + (a-48) * 100 ;
d = carte (d, 210, 20, 100, 130) ;
d = contraindre (d, 20, 130) ;
J’ai = (h-48) + (g-48) * 10 + (f-48) * 100 ;
J’ai = carte (i, 210, 20, 100, 130) ;
J’ai = contraindre (i, 20, 130) ;
n = (m-48) + (l-48) * 10 + (k-48) * 100 ;
n = carte (n, 210, 20, 100, 130) ;
n = contraindre (n, 20, 130) ;
Si (d < 130 & & d > 20)
{
Si (dlast-d < = 20)
{
Si (u
{
u = u + 2 ;
}
Si (u == d)
{
u = u ;
}
Si (u > d)
{
u = u-2 ;
}
myservo0.Write(u) ;
Serial.Print(u) ;
Serial.Print ("\t") ;
}
}
Si (j’ai < 130 & & j’ai > 20)
{
Si (ilast-i < = 20)
{
Si (v
{
v = v + 2 ;
}
Si (v == j’ai)
{
v = v ;
}
Si (v > j’ai)
{
v = v-2 ;
}
myservo1.Write(v) ;
Serial.Print(v) ;
Serial.Print ("\t") ;
}
}
Si (n < 130 & & n > 20)
{
Si (nlast-n < = 20)
{
Si (w
{
w = w + 2 ;
}
if(w==n)
{
w = w ;
}
Si (w > n)
{
w = w-2 ;
}
myservo2.Write(w) ;
Serial.Print(w) ;
Serial.Print ("\t") ;
}
}
Serial.println() ;
Serial.Flush() ;
int d = (int) ;
int e = (int) b ;
int f = (int) c ;
DLast = d ;
ilast = i ;
nlast = n ;
buttonState0 = digitalRead(val0) ;
buttonState1 = digitalRead(val1) ;
buttonState2 = digitalRead(val2) ;
buttonState3 = digitalRead(val3) ;
Si (buttonState3 == LOW & & buttonState2 == LOW & & buttonState1 == HIGH & & buttonState0 == faible) {}
digitalWrite (out0, HIGH) ;
digitalWrite (out1, faible) ;
digitalWrite (out2, faible) ;
digitalWrite (out3, HIGH) ;
}
Si (buttonState3 == LOW & & buttonState2 == HIGH & & buttonState1 == LOW & & buttonState0 == faible) {}
digitalWrite (out0, HIGH) ;
digitalWrite (out1, faible) ;
digitalWrite (out2, faible) ;
digitalWrite (out3, faible) ;
}
Si (buttonState3 == LOW & & buttonState2 == HIGH & & buttonState1 == HIGH & & buttonState0 == faible) {}
digitalWrite (out0, faible) ;
digitalWrite (out1, faible) ;
digitalWrite (out2, faible) ;
digitalWrite (out3, HIGH) ;
}
Si (buttonState3 == HIGH & & buttonState2 == LOW & & buttonState1 == LOW & & buttonState0 == faible) {}
digitalWrite (out0, faible) ;
digitalWrite (out1, HIGH) ;
digitalWrite (out2, HIGH) ;
digitalWrite (out3, faible) ;
}
Si (buttonState3 == LOW & & buttonState2 == HIGH & & buttonState1 == LOW & & buttonState0 == HIGH) {}
digitalWrite (out0, faible) ;
digitalWrite (out1, faible) ;
digitalWrite (out2, faible) ;
digitalWrite (out3, faible) ;
}
Delay(50) ;
}