/
mapb19ator
/
cpp
Обзор
Документация
Войти
/
mapb19ator
/
cpp
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
new_file
159 строк
3 KB
mapb19ator
Update: new_file
24 июн 2026, 14:22
Верифицирован
24 июн 2026, 14:22
f2be54c
Код
Авторство
О чём код?
#include <Servo.h> class Motors { private: int _left_speed; int _right_speed; int _left_dir1; int _left_dir2; int _right_dir1; int _right_dir2; public: Motors(int l_s, int r_s, int l_d1, int l_d2, int r_d1, int r_d2) { _left_speed = l_s; _right_speed = r_s; _left_dir1 = l_d1; _left_dir2 = l_d2; _right_dir1 = r_d1; _right_dir2 = r_d2; } void init() { pinMode(_left_speed, OUTPUT); pinMode(_right_speed, OUTPUT); pinMode(_left_dir1, OUTPUT); pinMode(_left_dir2, OUTPUT); pinMode(_right_dir1, OUTPUT); pinMode(_right_dir2, OUTPUT); } void forward(int speed){ analogWrite(_left_speed, speed); analogWrite(_right_speed, speed); digitalWrite(_left_dir1, HIGH); digitalWrite(_right_dir1, HIGH); digitalWrite(_left_dir2, LOW); digitalWrite(_right_dir2, LOW); } void stop(){ analogWrite(_left_speed, 0); analogWrite(_right_speed, 0); digitalWrite(_left_dir1, LOW); digitalWrite(_right_dir1, LOW); digitalWrite(_left_dir2, LOW); digitalWrite(_right_dir2, LOW); } void right(int speed){ analogWrite(_left_speed, speed); analogWrite(_right_speed, speed); digitalWrite(_left_dir1, HIGH); digitalWrite(_left_dir2, LOW); digitalWrite(_right_dir1, LOW); digitalWrite(_right_dir2, HIGH); } void left(int speed){ analogWrite(_left_speed, speed); analogWrite(_right_speed, speed); digitalWrite(_left_dir1, LOW); digitalWrite(_left_dir2, HIGH); digitalWrite(_right_dir1, HIGH); digitalWrite(_right_dir2, LOW); } void nazad(int speed){ analogWrite(_left_speed, speed); analogWrite(_right_speed, speed); digitalWrite(_left_dir1, LOW); digitalWrite(_right_dir1, LOW); digitalWrite(_left_dir2, HIGH); digitalWrite(_right_dir2, HIGH); } }; Motors motors(9,3,7,6,5,4); int line1 = 10; int line2 = 11; char r = ' '; char b = ' '; char inf = ' '; int mode = 1; Servo servo1; Servo servo2; Servo servo3; void setup() { motors.init(); pinMode(line1, INPUT); pinMode(line2, INPUT); servo1.attach(2); servo2.attach (12); servo3.attach (13); servo1.write(90); servo2.write(90); servo3.write(90); Serial.begin(9600); } void loop() { if(Serial.available() > 0 ){ inf = Serial.read(); } if(inf == 'r') { mode = 1; } if(inf == 'b') { mode = 2; } if(mode == 1){ if(digitalRead(line1) == HIGH && digitalRead(line2) == HIGH) { motors.forward(200); } if(digitalRead(line1) == HIGH && digitalRead(line2) == LOW) { motors.right(150); } if(digitalRead(line1) == LOW && digitalRead(line2) == HIGH) { motors.left(150); } if(digitalRead(line1) == LOW && digitalRead(line2) == LOW) { motors.stop(); } }else{ Serial.println("Remote controll enabled"); motors.stop(); while(mode == 2) { if(Serial.available() > 0) { inf = Serial.read(); } if(inf == 'w'){ motors.forward(250); Serial.println("forward"); } if(inf == 'a'){ motors.left(250); Serial.println("left"); } if(inf == 'd'){ motors.right(250); Serial.println("right"); } if(inf == 's'){ motors.nazad(250); Serial.println("nazad"); } if(inf == 'q'){ motors.stop(); Serial.println("stop"); } if(inf == 'e'){ servo1.write(90); } if(inf == 'z'){ servo2.write(90); } if(inf == 'x'){ servo3.write(90); } if(inf == 'r'){ Serial.println("break"); break; mode = 1; } } } }