Accelerometer kontrollerat robot (pickup och plats) (5 / 6 steg)
Steg 5: kodning
Kod: - för sändare
int sen0 = A0; x-axeln av accelerometer
int sen1 = A1; y-axeln accelerometer
int sen2 = A2; Flex sensor
void setup()
{
Serial.BEGIN(9600);
}
void loop()
{
int val0 = map(analogRead(sen0), 260, 450, 100, 210); Mappa de inkommande värdena i requried Serial.print(val0); Skicka data via Xbee
int värde1 = map(analogRead(sen1), 260, 450, 100, 210);
Serial.Print(val1);
int värde2 = map(analogRead(sen2), 450, 620, 100, 210);
Serial.Print(val2);
Delay(50); fördröjning av 50 ms
}
.
.
.
.
Kod - för mottagare
#include < Servo.h >
int servo0Pin = 6;
int servo1Pin = 7.
int servo2Pin = 8;
Servo myservo0;
Servo myservo1;
Servo myservo2;
int val0 = 2;
int värde1 = 3;
int värde2 = 4;
int val3 = 5;
int buttonState0 = 0;
int buttonState1 = 0;
int buttonState2 = 0;
int buttonState3 = 0;
int out0 = 9;
int out1 = 10;
int UT2 = 11;
int UT3 = 12.
int d, i, n;
int u, v, w;
int dlast, nlast, ilast;
void setup()
{
Serial.BEGIN(9600);
pinMode (out0, produktionen);
pinMode (out1, produktionen);
pinMode (UT2, produktionen);
pinMode (UT3, produktionen);
pinMode (val0, ingång);
pinMode (värde1, ingång);
pinMode (värde2, ingång);
pinMode (val3, ingång);
myservo0.attach(servo0Pin);
myservo1.attach(servo1Pin);
myservo2.attach(servo2Pin);
}
void loop()
{
While(Serial.available() == 0);
int data = Serial.read() - '0';
byte en = Serial.read();
byte b = Serial.read();
byte c = Serial.read();
byte f = Serial.read();
byte g = Serial.read();
byte h = Serial.read();
byte k = Serial.read();
byte l = Serial.read();
byte m = Serial.read();
d = (c-48) + (b-48) * 10 + (a-48) * 100;
d = karta (d, 210, 20, 100, 130);
d = begränsa (d, 20, 130);
Jag = (h-48) + (g-48) * 10 + (f-48) * 100;
Jag = karta (i, 210, 20, 100, 130);
jag = begränsa (i, 20, 130);
n = (m-48) + (l-48) * 10 + (k-48) * 100;
n = karta (n, 210, 20, 100, 130);
n = begränsa (n, 20, 130);
om (d < 130 & & d > 20)
{
om (dlast-d < = 20)
{
om (u
{
u = u + 2.
}
om (u == d)
{
u = u;
}
om (u > d)
{
u = u-2;
}
myservo0.write(u);
Serial.Print(u);
Serial.Print ("\t");
}
}
om (jag < 130 & & jag > 20)
{
om (ilast-i < = 20)
{
om (v
{
v = v + 2.
}
om (v == jag)
{
v = v;
}
om (v > jag)
{
v = v-2;
}
myservo1.write(v);
Serial.Print(v);
Serial.Print ("\t");
}
}
om (n < 130 & & n > 20)
{
om (nlast-n < = 20)
{
om (w
{
w = w + 2;
}
IF(w==n)
{
w = w;
}
om (w > n)
{
w = w-2;
}
myservo2.write(w);
Serial.Print(w);
Serial.Print ("\t");
}
}
Serial.println();
Serial.flush();
int d = (int) a;
int e = (int) b;
int f = c (int);
DLast = d;
ilast = i.
nlast = n;
buttonState0 = digitalRead(val0);
buttonState1 = digitalRead(val1);
buttonState2 = digitalRead(val2);
buttonState3 = digitalRead(val3);
om (buttonState3 == låg & & buttonState2 == låg & & buttonState1 == hög & & buttonState0 == låg) {
digitalWrite (out0, hög);
digitalWrite (out1, låg);
digitalWrite (UT2, låg);
digitalWrite (UT3, hög);
}
om (buttonState3 == låg & & buttonState2 == hög & & buttonState1 == låg & & buttonState0 == låg) {
digitalWrite (out0, hög);
digitalWrite (out1, låg);
digitalWrite (UT2, låg);
digitalWrite (UT3, låg);
}
om (buttonState3 == låg & & buttonState2 == hög & & buttonState1 == hög & & buttonState0 == låg) {
digitalWrite (out0, låg);
digitalWrite (out1, låg);
digitalWrite (UT2, låg);
digitalWrite (UT3, hög);
}
om (buttonState3 == hög & & buttonState2 == låg & & buttonState1 == låg & & buttonState0 == låg) {
digitalWrite (out0, låg);
digitalWrite (out1, hög);
digitalWrite (UT2, hög);
digitalWrite (UT3, låg);
}
om (buttonState3 == låg & & buttonState2 == hög & & buttonState1 == låg & & buttonState0 == hög) {
digitalWrite (out0, låg);
digitalWrite (out1, låg);
digitalWrite (UT2, låg);
digitalWrite (UT3, låg);
}
Delay(50);
}