Помогите скодом для робота! Хотел сделать ему клещню из серво, но работает либо одно или другое
Либо робот едет, но клешня не шевелится. Либо клешня шевелится, а робот стоит. Я уже совсем отчаялся перепробовав почти всё.
C++:
#include <Servo.h>
Servo servo1;
byte Blu;
byte GAZ = 127;//при включении газ на 127
void setup() {
Serial.begin(9600);
pinMode(2, OUTPUT); // Левые моторы
pinMode(3, OUTPUT); // Левые моторы
pinMode(4, OUTPUT); // Правые моторы
pinMode(5, OUTPUT); // Правые моторы
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
servo1.attach(13); // привязываем сервопривод к аналоговому выходу 13
}
void loop() {
if (Serial.available() > 0) {
Blu = Serial.read();
if (Blu >= 0 && Blu <= 100) {
GAZ = map(Blu, 0, 100, 0, 255); // Указываем значение газа
}
if (Blu == 106) { // тормозим
analogWrite(9, GAZ);
analogWrite(10, GAZ);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
}
if (Blu == 102) { // вперёд
analogWrite(9, GAZ);
analogWrite(10, GAZ);
digitalWrite(2, HIGH);
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
}
if (Blu == 103) { // назад
analogWrite(9, GAZ);
analogWrite(10, GAZ);
digitalWrite(3, HIGH);
digitalWrite(2, LOW);
digitalWrite(5, HIGH);
digitalWrite(4, LOW);
}
if (Blu == 104) { // влево
analogWrite(9, GAZ);
analogWrite(10, GAZ);
digitalWrite(2, HIGH);
digitalWrite(3, LOW);
digitalWrite(5, HIGH);
digitalWrite(4, LOW);
}
if (Blu == 105) { // вправо
analogWrite(9, GAZ);
analogWrite(10, GAZ);
digitalWrite(3, HIGH);
digitalWrite(2, LOW);
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
}
if (Blu == 101) {
servo1.write(36);
}
if (Blu == 107) {
servo1.write(72);
}
if (Blu == 108) {
servo1.write(108);
}
if (Blu == 109) {
servo1.write(144);
}
if (Blu == 110) {
servo1.write(180);
}
}
}
Изменено: