Stap 3: Code
Freaduino controle Side-code#include < NewSoftSerial.h >
#include < avr/pgmspace.h >
#define rxPin 2
#define txPin 3
NewSoftSerial mySerial (rxPin, txPin);
VOID Setup
{
pin modi voor tx, rx pinnen definiëren:
pinMode (rxPin, INPUT);
pinMode (txPin, OUTPUT);
pinMode (A0, INPUT);
pinMode (A1, INPUT);
mySerial.begin(9600);
Serial.begin(9600);
}
void loop {}
0.175 is voor het corrigeren van de pokken tot 90, servor pos defoult 90. Deze gegevens die kunt u zelf
int. posX = (int) analogRead (A0) * 0.175;
int posY = (int) analogRead (A1) * 0.175;
mySerial.print("x");
mySerial.print(posX);
mySerial.print("y");
mySerial.print(posY);
mySerial.println("End");
Serial.Print("x=");
Serial.println(posX);
Serial.Print("y=");
Serial.println(posY);
delay(300);
}
Arduino controle Side-code
#include < NewSoftSerial.h >
#include < Servo.h >
#include < String.h >
#define rxPin 2
#define txPin 3
NewSoftSerial mySerial (rxPin, txPin);
Servo myservoX; maken van servo-object om te bepalen van een servo
Servo myservoY; maximaal acht servo-objecten kan worden gemaakt
VOID Setup
{
Serial.begin(9600);
mySerial.begin(9600);
myservoX.attach(5); de servo op pin 9 hecht aan de servo-object
myservoY.attach(3);
}
void loop {}
int i = 0, n = 0, graaf = 0;
char someChar [32] = {0};
Wanneer tekens komen via de seriële poort...
if(Serial.available()) {}
{}
someChar [i ++] = Serial.read();
} terwijl (Serial.available() > 0);
Als (someChar [0] == 'x')
{
int vlag = 1;
while(Flag)
{
if(Serial.available()) {}
{}
someChar [graaf ++] = Serial.read();
} terwijl (Serial.available() > 0);
Als (strstr (someChar, "End"))
{
vlag = 0;
terwijl (someChar [n]! = 'y') n ++;
char tmpbufx [4] = {0};
strncpy (tmpbufx, someChar, n);
int posX = atoi(tmpbufx);
myservoX.write(posX);
n = 0;
char * str = strchr(someChar,'y');
char tmpbufy [4] = {0};
terwijl (str [n]! = 'E') n ++;
strncpy (tmpbufy, str + 1, n-1);
int posY = atoi(tmpbufy);
if(posY>105) posY = 105;
anders if(posY<85) posY = 85;
myservoY.write(posY);
}
}
}
}
}
}