Mitt åttonde projekt: Robotarm med smarta Tank chassi och Bluetooth (7 / 8 steg)
Steg 7: kod
Jag kombinerar sedan koden i 2: a testet med servon och möjliggöra servon flytta i utsedda spänner.
#include < SoftwareSerial.h >
#include < Servo.h >
SoftwareSerial BT(52, 53); som TX och RX på bluetooth till stift 52 och 53 respektive
Servo servo1;
Servo servo2;
Servo servo3;
röding, kommando;
int motorPin = 8; höger sida till IB - framåt
int motorPin2 = 9; vänster sida till IA - framåt
int motorPin3 = 10; höger sida till IA - bakåt
int motorPin4 = 11; vänster sida till IB - bakåt
int pos1 = 90.
int pos2 = 90.
int pos3 = 90.
void setup() {
BT.begin (9600);
Serial.BEGIN (9600);
pinMode (motorPin, produktionen);
pinMode (motorPin2, produktionen);
pinMode (motorPin3, produktionen);
pinMode (motorPin4, produktionen);
servo1.attach(5);
servo1.write(Pos1);
servo2.attach(6);
servo2.write(POS2);
servo3.attach(7);
servo3.write(pos3);
}
void stop() {
digitalWrite (motorPin, låg);
digitalWrite (motorPin2, låg);
digitalWrite (motorPin3, låg);
digitalWrite (motorPin4, låg);
}
void forward() {
digitalWrite (motorPin, hög);
digitalWrite (motorPin2, hög);
digitalWrite (motorPin3, låg);
digitalWrite (motorPin4, låg);
}
void backward() {
digitalWrite (motorPin, låg);
digitalWrite (motorPin2, låg);
digitalWrite (motorPin3, hög);
digitalWrite (motorPin4, hög);
}
void turnLeft() {
digitalWrite (motorPin, hög);
digitalWrite (motorPin2, låg);
digitalWrite (motorPin3, låg);
digitalWrite (motorPin4, hög);
}
void turnRight() {
digitalWrite (motorPin, låg);
digitalWrite (motorPin2, hög);
digitalWrite (motorPin3, hög);
digitalWrite (motorPin4, låg);
}
void open() {
för (pos3 = 110; pos3 > 40; pos3-= 1)
{servo3.write(pos3);
}
}
void close() {
för (pos3 = 40; pos3 < 110; pos3 + = 1)
{servo3.write(pos3);
}
}
void antiClockwise() {
för (pos2 = 90; pos2 > 0; pos2-= 1)
{servo2.write(pos2);
}
}
void clockwise() {
för (pos2 = 0; pos2 < 90; pos2 + = 1)
{servo2.write(pos2);
}
}
void upp () {
för (pos1 = 50; pos1 < 180; pos1 + = 1)
{servo1.write(pos1);
}
}
void down() {
för (pos1 = 180; pos1 > 50; pos1-= 1)
{servo1.write(pos1);
}
}
void loop() {
om (BT.available() > 0) {
kommandot = BT.read();
Växla (kommandot) {
fallet "w":
Forward();
bryta;
fallet "x":
Backward();
bryta;
fallet "a":
turnLeft();
bryta;
fall skulle ":
turnRight();
bryta;
fallet ":
Stop();
bryta;
fall "y":
Open();
bryta;
fallet "u":
Close();
bryta;
fallet "h":
antiClockwise();
bryta;
fallet "j":
Clockwise();
bryta;
fallet 'n':
up();
bryta;
fallet är ":
Down();
bryta;
}
}
}