Stap 9: Arduino Sketch
Upload deze schets aan de Arduino:
/* Chienline @ 2015 Controlling an Arduino car/tank using an Android phone over Bluetooth connection. Android Software : BlueCam 2 by Johnny Visser [in PlayStore]. */ char dataIn = 'S'; //Character/Data coming from the phone. S=Stop; int IN1Pin = 2; // Motor A IN1 int ENAPin = 3; // Motor A Enable int IN2Pin = 4; // Motor A IN2 int IN3Pin = 5; // Motor B IN3 int ENBPin = 6; // Motor B Enable int IN4Pin = 7; // Motor B IN4 int delayTime = 100; void setup() { Serial.begin(9600); //Initialize serial communication with Bluetooth module at 9600 baud rate. pinMode(IN1Pin, OUTPUT); pinMode(ENAPin, OUTPUT); pinMode(IN2Pin, OUTPUT); pinMode(IN3Pin, OUTPUT); pinMode(ENBPin, OUTPUT); pinMode(IN4Pin, OUTPUT); //Stop both motors on power up. stopMotors(); } void loop() { if (Serial.available() > 0) //Check for data on the serial lines. { dataIn = Serial.read(); //Get the character sent by the phone and store it in 'dataIn'. if (dataIn == 'F'){ //if incoming data is a F, move forward moveForward(); delay(delayTime); } else if (dataIn == 'B'){ //if incoming data is a B, move backward moveBackward(); delay(delayTime); } else if (dataIn == 'L'){ //if incoming data is a L, move wheels left moveLeft(); delay(delayTime); } else if (dataIn == 'R'){ //if incoming data is a R, move wheels right moveRight(); delay(delayTime); } else { stopMotors(); } stopMotors(); } } //These direction functions are designed for Keyes L298N Motor Driver. //You need to change them to suit your other motor drivers. void moveForward(){ digitalWrite(IN1Pin, LOW); digitalWrite(IN2Pin, HIGH); //L-Forward digitalWrite(IN3Pin, LOW); digitalWrite(IN4Pin, HIGH); //R-Forward digitalWrite(ENAPin, HIGH); digitalWrite(ENBPin, HIGH); } void moveBackward(){ digitalWrite(IN1Pin, HIGH); digitalWrite(IN2Pin, LOW); //L-Backward digitalWrite(IN3Pin, HIGH); digitalWrite(IN4Pin, LOW); //R-Backward digitalWrite(ENAPin, HIGH); digitalWrite(ENBPin, HIGH); } void stopMotors(){ digitalWrite(ENAPin, LOW); digitalWrite(ENBPin, LOW); } void moveLeft(){ digitalWrite(IN1Pin, HIGH); digitalWrite(IN2Pin, LOW); //L-Backward digitalWrite(IN3Pin, LOW); digitalWrite(IN4Pin, HIGH); //R-Forward digitalWrite(ENAPin, HIGH); digitalWrite(ENBPin, HIGH); } void moveRight(){ digitalWrite(IN1Pin, LOW); digitalWrite(IN2Pin, HIGH); //L-Forward digitalWrite(IN3Pin, HIGH); digitalWrite(IN4Pin, LOW); //R-Backward digitalWrite(ENAPin, HIGH); digitalWrite(ENBPin, HIGH); }