#include <SoftwareSerial.h>
SoftwareSerial bt(3, 2); //rx, tx
int speedCar = 80;
char dataBT = ' ' ;
void stop();
void left();
void forward();
void backward();
void right();
void setup()
{
bt.begin(9600);
pinMode(6, OUTPUT);
pinMode(10, OUTPUT);
Serial.begin(9600);
// for(int s=0; s<=9; s++){
// speedCar = s*25;
// Serial.println(s*25);
// forward();
// delay(500);
// }
}
void loop(){
// якщо блютуз данні доступно?
if(bt.available()){
// в символьну змінну з блютузу прочитати данні
char c = bt.read();
//якщо в змінній символ F тоді вперед
if(c == 'F') forward();
if(c == 'B') backward();
if(c == 'S') stop();
if(c == 'L') left();
if(c == 'R') right();
if('0' <= c and c <= '9') speedCar=map(c, '0', '9', 0, 255);
// якщо прийнятий символ від 0 до 9 //speedCar=(c-25)*25;
}
}
void right()
{int rotateSpeed = 255-speedCar;
digitalWrite(6, LOW);
analogWrite(5, ( 255 - rotateSpeed ));
digitalWrite(10, LOW);
analogWrite(9, ( 255 - rotateSpeed ));
}
void forward()
{
digitalWrite(6, LOW);
analogWrite(5, speedCar );
digitalWrite(10, HIGH);
analogWrite(9, 255-speedCar);
}
void stop()
{
digitalWrite(6, HIGH);
analogWrite(5, 255);
analogWrite(9, 255);
digitalWrite(10, HIGH);
}
void backward()
{
digitalWrite(6, HIGH);
analogWrite(5, 255- speedCar);
digitalWrite(10, LOW);
analogWrite(9, speedCar );
}
void left()
{
int rotateSpeed = 255-speedCar;
digitalWrite(6, HIGH);
analogWrite(5, rotateSpeed);
digitalWrite(10, HIGH);
analogWrite(9, rotateSpeed);
}