// #include <SoftwareSerial3.h>
// SoftwareSerial3 bt(1, 0); //rx, tx
#include <Servo.h>
Servo servo;
#include <FastLED.h>
CRGB leds[8];
// функція для управління лео, швидкістю та рулем
// 1 аргумент - кут руля, 2 аргумент - швидкість
// пустаФункція управляти(цілеЧисло кут, ціле число швидкість)
void control(int angle, int speed){
servo.write(angle);
digitalWrite(26, angle < 90);
digitalWrite(27, angle > 90);
digitalWrite(46, speed < 0 );
if(speed<0) tone(31, 500, 50);
//аналоговеЗначенння Записати(ніжка, 0-255)
bool forward = true; // чи крутимо колеса вперед?
if (speed < 0) {forward = false; speed *=-1;}
analogWrite(5, speed);// SpeedA - швидкість лівого мотору
analogWrite(10,speed);// SpeedB - швидкість правого мотору
digitalWrite(6, forward);
digitalWrite(7, not forward);
digitalWrite(8, forward);
digitalWrite(9, not forward);
}
void setup(){
FastLED.addLeds<WS2812B, 42, GRB>(leds, 8);
// bt.begin(9600);
Serial3.begin(9600);
servo.attach(11);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(26, OUTPUT);
pinMode(27, OUTPUT);
pinMode(46, OUTPUT);
pinMode(31, OUTPUT);
}
float spedK = 150;
void loop(){
// ЯКЩО БЛЮТУЗ ДОСТУПНИЙ? (ЩОСЬ С КАЗАВ?)
if(Serial3.available()){
// Прочитати і збрегти символ з блютуза
char c = Serial3.read();
// якщо символ == F, то їдемо f
fara(c); // виклик функціїї ввімкнення заднього світла
if(c == 'F') control(90, spedK);
if(c == 'B') control(90,-spedK);
if(c == 'L') control(10, spedK);
if(c == 'R') control(170,spedK);
if(c == 'S') control(90, 0);
if(c >='0' and c <='9') spedK = map(c, '0', '9', 50, 200);
}
}
//функція ввмикання задньої фари по команді F або B ...
void fara(char comand){
// цикл для(числоЦіле лічильник; умова; крок)
// for(int i=0;0<=7;i++)leds[i]=CRGB::Black;
leds[0]=CRGB::Black;leds[1]=CRGB::Black;leds[2]=CRGB::Black;leds[3]=CRGB::Black;leds[4]=CRGB::Black;leds[5]=CRGB::Black;leds[6]=CRGB::Black;leds[7]=CRGB::Black;
if(comand=='S'){
leds[0]=CRGB::Yellow; //: shift Ж
leds[7]=CRGB::Yellow; //: shift Ж
}
if(comand=='L'){
leds[7]=CRGB::Red; //: shift Ж
}
FastLED.show();
if(comand=='R'){
leds[0]=CRGB::Red; //: shift Ж
}
FastLED.show();
}L Backward R