Remote Control bil med Arduino och Bluetooth (4 / 7 steg)
Steg 4: Steg 3: skapa Arduino koden
När du har din mobiltelefon app redo nu måste du programmera din Arduino Uno.
1. först och främst måste du hämta de bibliotek som behövs för att göra programmet. Dessa behövs för att arbeta med Adafruit motorn sköld. Efter dataöverföring, bör du kopiera dem till mappen där du har alla Arduino bibliotek.
2. När du har installerat dem, kan du börja skriva din kod. Det är mycket viktigt att du inkluderar ditt bibliotek innan du gör något annat. Du ska skriva:
#include
#include
#include "utility/Adafruit_MS_PWMServoDriver.h"
#include
#include
3. nu har du att deklarera dina fyra DC-motorer för de fyra hjul. Du måste också deklarera din ingångar för Bluetooth och servomotor.
Adafruit_MotorShield AFMS = Adafruit_MotorShield();
Adafruit_DCMotor * myMotor1 = AFMS.getMotor(1);
Adafruit_DCMotor * myMotor2 = AFMS.getMotor(2);
Adafruit_DCMotor * myMotor3 = AFMS.getMotor(3);
Adafruit_DCMotor * myMotor4 = AFMS.getMotor(4);
int ledde = 13.
char estado; SoftwareSerial dospositivo (10, 11); RX = 10, Tx = 11
Servo myservo;
4. i avsnittet "Installation" hastigheten för varje motor, kommer inledande ståndpunkt, och den PIN-kod som servomotor är ansluten att tilldelas.
void setup() {
Serial.BEGIN (9600);
Serial.printIn ("Adafruit Motorshield v2 - DC Motor test!");
pinMode ledde (, OUTPUT);
AFMS.begin();
dispositivo.BEGIN(9600);
myMotor1 -> setSpeed(255);
myMotor2 -> setSpeed(255);
myMotor3 -> setSpeed(255);
myMotor4 -> setSpeed(255);
myservo.attach(9);
myservo.write(0);
}
5. i avsnittet Loop tilldelas den riktning där varje motor snurrar. Detta hjälper för att definiera i vilken riktning bilen som helhet kommer att flytta. Det beror på vilken bokstav som skickas av registeransvarige App. Du måste se till att de bokstäver som du använder i din Arduino kod matchar bokstäverna förklarade på din App.
void loop() {
Estado = "0";
IF(dispositivo.available() > 0) {
Estado=dispisitivo.Read();
}
Växla (estado) {
fallet "e": //forward
myMotor1 -> run(FORWARD);
myMotor2 -> run(FORWARD);
myMotor3 -> run(FORWARD);
myMotor4 -> run(FORWARD);
bryta;
fallet "f": //right
myMotor1 -> run(FORWARD);
myMotor2 -> run(FORWARD);
myMotor3 -> run(BACKWARD);
myMotor4 -> run(BACKWARD);
bryta;
fallet "g": //reverse
myMotor1 -> run(BACKWARD);
myMotor2 -> run(BACKWARD);
myMotor3 -> run(BACKWARD);
myMotor4 -> run(BACKWARD);
bryta;
fallet "h": //left
myMotor1 -> run(BACKWARD);
myMotor2 -> run(BACKWARD);
myMotor3 -> run(FORWARD);
myMotor4 -> run(FORWARD);
bryta;
fallet ": //stop
myMotor1 -> run(RELEASE);
myMotor2 -> run(RELEASE);
myMotor3 -> run(RELEASE);
myMotor4 -> run(RELEASE);
bryta;
fallet "q": //attack
myservo.write(150);
Delay(500);
myservo.write(30);
Delay(500);
myservo.write(150);
Delay(500);
bryta;
}