Étape 4: Comment ça marche & le côté Arduino
Chaque fois que vous appuyez sur un bouton sur la page, l’instruction case arrive et le "dossier" (vraiment le port) est ouvert, mis en mode écriture, un seul numéro ASCII est écrit, et puis il est fermé. Vous devez fermer chaque fois sinon ça ne marchera pas. Du côté de l’Arduino, tout simplement lire dans le port série à l’aide de Serial.read() dans la loop(). J’ai utilisé un gros si l’instruction de vérifier pour chaque nombre ASCII, donc si 1 est envoyé, puis faire une chose, si 2 est envoyé, à faire autre chose, etc.. Étant donné que vous utilisez un serveur PHP, vous pouvez accéder à la page sur le serveur de n’importe où dans le monde et il commandera l’Arduino. Voici des exemples de code arduino que j’avais l’habitude de commander des moteurs :#include < Servo.h >
Tout d’abord, mettre en place des servos
Servo servo1 ;
Servo servo2 ;
int debugPin = 13 ; utilisé pour une led pour tester des trucs
int motor1Pin = 9 ; Numéro de port du premier moteur
int motor2Pin = 10 ; Numéro de port du deuxième moteur
int usbnumber = 0 ; Cette variable contient ce que nous lisons actuellement de série
void setup() {//call une fois au début
pinMode (motor1Pin, sortie) ;
pinMode (debugPin, sortie) ;
pinMode (motor2Pin, sortie) ;
SERVO1.Attach(motor1Pin,1000,2000) ;
Servo2.Attach(motor2Pin,1000,2000) ;
Serial.Begin(9600) ; démarrage du port série
}
void loop() {//main boucle
Si (Serial.available() > 0) {//if il y a quelque chose sur le port série, lisez-le
usbnumber = Serial.read() ; stocker dans la variable usbnumber
}
Si (usbnumber > 0) {//if nous lisons quelque chose
Si (usbnumber == 49) {}
SERVO1.Write(93) ;
Servo2.Write (93); //if nous lisons un 1, arrêt
analogWrite (debugPin, 0) ;
}
Si (usbnumber == 50) {}
SERVO1.Write(120) ;
Servo2.Write(120) ; Si nous lisons un 2, lent
analogWrite (debugPin, 85) ;
}
Si (usbnumber == 51) {}
SERVO1.Write(150) ;
Servo2.Write(150) ; Si nous lisons un milieu 3,
analogWrite (debugPin, 170) ;
}
Si (usbnumber == 52) {}
SERVO1.Write(179) ;
Servo2.Write(179) ; Si nous lisons un 4, rapide
analogWrite (debugPin, 255) ;
}
Si (usbnumber == 53) {}
SERVO1.Write(130) ;
Servo2.Write(50) ; Si nous lisons un droit 5,
analogWrite (debugPin, 255) ;
}
Si (usbnumber == 54) {}
SERVO1.Write(50) ;
Servo2.Write(130) ; Si nous lisons une gauche 6,
analogWrite (debugPin, 255) ;
}
}
usbnumber = 0 ; remise à zéro
}