#include <Servo.h>
Servo servo;
#include <FastLED.h>
CRGB leds[8];
int speed = 125;
void setup(){
servo.attach(11);
FastLED.addLeds<WS2812B, 42, GRB>(leds, 8);
Serial3.begin(9600); //BT
Serial.begin(9600); //USB
int pins[10] = {5, 6, 7, 8, 9, 10};
for(int p=0; p<=6; p++) pinMode(p, OUTPUT);
Serial3.print("BT! Hi from Leo");
}
void loop(){
// ЯКЩО БЛЮТУЗ ДОСТУПНИЙ? (ЩОСЬ CКАЗАВ?)
if(Serial3.available()){
// Прочитати і збрегти символ з блютуза
char c = Serial3.read();
Serial.println(c);
// якщо символ == F, то їдемо forward
fara(c); // виклик функціїї ввімкнення заднього світла
if(c == 'F') control(90, speed);
else if(c == 'B') control(90,-speed);
else if(c == 'L') control(10, speed);
else if(c == 'R') control(170,speed);
else if(c == 'S') control(90, 0);
else if('0'<=c && c<='9')speed=map(c, '0', '9', 0, 255);
// map(value, fromLow, fromHigh, toLow, toHigh)
// меп переводить число з одного діапазону в інший
}
}
// функція для управління лео, швидкістю та рулем
// 1 аргумент - кут руля, 2 аргумент - швидкість
// пустаФункція управляти(цілеЧисло кут, ціле число швидкість)
void control(int angle, int speed){
servo.write(angle);
//аналоговеЗначенння Записати(ніжка, 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 fara(char comand){
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::Red;
leds[1]=CRGB::Red;
leds[2]=CRGB::Red;
leds[3]=CRGB::Red;
leds[4]=CRGB::Red;
leds[5]=CRGB::Red;
leds[6]=CRGB::Red;
leds[7]=CRGB::Red;
}
else if(comand=='R'){
leds[0]=CRGB::Yellow;
leds[1]=CRGB::Yellow;
leds[2]=CRGB::Yellow;
leds[3]=CRGB::Yellow;
}
else if(comand=='L'){
leds[4]=CRGB::Yellow;
leds[5]=CRGB::Yellow;
leds[6]=CRGB::Yellow;
leds[7]=CRGB::Yellow;
}
FastLED.show();
}