Android kontrollerade Arduino Bluetooth Panzer (9 / 11 steg)
Steg 9: Arduino skiss
Ladda upp denna skiss till din Arduino:
/*
Chienline @ 2015
Kontrollera en Arduino bil/tank med en Android-telefon via Bluetooth-anslutning.
Android-programvara: BlueCam 2 av Johnny Visser [i PlayStore].
*/
char dataIn = s '; Karaktär/Data från telefonen. S = stopp;
int IN1Pin = 2; Motor en IN1
int ENAPin = 3; Motor en aktivera
int IN2Pin = 4; Motor en IN2
int IN3Pin = 5; Motor B IN3
int ENBPin = 6; Motor B aktivera
int IN4Pin = 7. Motor B IN4
int fördröjningstid = 100;
void setup()
{
Serial.BEGIN(9600); Initiera seriell kommunikation med Bluetooth-modul på 9600 baud.
pinMode (IN1Pin, OUTPUT);
pinMode (ENAPin, OUTPUT);
pinMode (IN2Pin, OUTPUT);
pinMode (IN3Pin, OUTPUT);
pinMode (ENBPin, OUTPUT);
pinMode (IN4Pin, OUTPUT);
Stoppa båda motorer på makt upp.
stopMotors();
}
void loop()
{
om (Serial.available() > 0) //Check för data på de seriella linjerna.
{
dataIn = Serial.read(); Få karaktär skickas av telefonen och lagra den i "dataIn".
om (dataIn == "F") {//if inkommande data är en F, gå framåt
moveForward();
Delay(delayTime);
}
annars om (dataIn == 'B') {//if inkommande data är ett B, flytta bakåt
moveBackward();
Delay(delayTime);
}
annars om (dataIn == "L") {//if inkommande data är en L, flytta hjul åt vänster
moveLeft();
Delay(delayTime);
}
annars om (dataIn == "R") {//if inkommande data är en R, flytta hjul höger
moveRight();
Delay(delayTime);
}
annat {
stopMotors();
}
stopMotors();
}
}
Dessa riktning funktioner är utformade för Keyes L298N Motor Driver.
Du måste ändra dem för att passa din andra motor förare.
void moveForward() {
digitalWrite (IN1Pin, låg);
digitalWrite (IN2Pin, hög); L-Forward
digitalWrite (IN3Pin, låg);
digitalWrite (IN4Pin, hög); R-Forward
digitalWrite (ENAPin, hög);
digitalWrite (ENBPin, hög);
}
void moveBackward() {
digitalWrite (IN1Pin, hög);
digitalWrite (IN2Pin, låg); L-bakåt
digitalWrite (IN3Pin, hög);
digitalWrite (IN4Pin, låg); R-bakåt
digitalWrite (ENAPin, hög);
digitalWrite (ENBPin, hög);
}
void stopMotors() {
digitalWrite (ENAPin, låg);
digitalWrite (ENBPin, låg);
}
void moveLeft() {
digitalWrite (IN1Pin, hög);
digitalWrite (IN2Pin, låg); L-bakåt
digitalWrite (IN3Pin, låg);
digitalWrite (IN4Pin, hög); R-Forward
digitalWrite (ENAPin, hög);
digitalWrite (ENBPin, hög);
}
void moveRight() {
digitalWrite (IN1Pin, låg);
digitalWrite (IN2Pin, hög); L-Forward
digitalWrite (IN3Pin, hög);
digitalWrite (IN4Pin, låg); R-bakåt
digitalWrite (ENAPin, hög);
digitalWrite (ENBPin, hög);
}