Étape 3: Code
Code Freaduino contrôle côté#include < NewSoftSerial.h >
#include < avr/pgmspace.h >
#define rxPin 2
#define txPin 3
NewSoftSerial mySerial (rxPin, txPin) ;
void setup()
{
définir les modalités de la broche pour tx, broches rx :
pinMode (rxPin, entrée) ;
pinMode (txPin, sortie) ;
pinMode (entrée, A0) ;
pinMode (entrée, A1) ;
mySerial.begin(9600) ;
Serial.Begin(9600) ;
}
void loop() {}
0,175 est pour corriger la vérole à 90, assistés pos defoult 90. Ces données, que vous pouvez modifier par vous-même
posX int = (int) analogRead (A0) * 0,175 ;
Bouquet d’int = (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) ;
}
Code côté contrôle Arduino
#include < NewSoftSerial.h >
#include < Servo.h >
#include < String.h >
#define rxPin 2
#define txPin 3
NewSoftSerial mySerial (rxPin, txPin) ;
Servo myservoX ; Créez l’objet servo pour contrôler un servo
Servo myservoY ; vous pouvez créer un maximum de huit objets de servo
void setup()
{
Serial.Begin(9600) ;
mySerial.begin(9600) ;
myservoX.attach(5) ; attache le servo sur la broche 9 à l’objet de servo
myservoY.attach(3) ;
}
void loop() {}
int i = 0, n = 0, count = 0 ;
char someChar [32] = {0} ;
Quand les personnages arrivent sur le port série...
{if(Serial.available())}
{}
someChar [i ++] = Serial.read() ;
} tandis que (Serial.available() > 0) ;
Si (someChar [0] == « x »)
{
drapeau de l’int = 1 ;
while(flag)
{
{if(Serial.available())}
{}
someChar [count ++] = Serial.read() ;
} tandis que (Serial.available() > 0) ;
Si (strstr (someChar, « End »))
{
drapeau = 0 ;
tandis que (someChar [n]! = « y ») n ++ ;
char tmpbufx [4] = {0} ;
strncpy (tmpbufx, someChar, n) ;
posX int = atoi(tmpbufx) ;
myservoX.write(posX) ;
n = 0 ;
char * str = strchr(someChar,'y') ;
char tmpbufy [4] = {0} ;
tandis que (str [n]! = « E ») n ++ ;
strncpy (tmpbufy, str + 1, n-1) ;
Bouquet d’int = atoi(tmpbufy) ;
if(posY>105) bouquet = 105 ;
d’autre if(posY<85) bouquet = 85 ;
myservoY.write(posY) ;
}
}
}
}
}
}