@shinodaaa

Почему робот не выполняет действие?

Работаю с роботом-манипулятором, суть чтобы после отправки в монитор порта строки, он считывал номер в коде указано как S1-5 и значение, после чего в зависимости от номера начинал работать определенный сервопривод, код рабочий, ардуино принимает, но сервы не работают. Проблем с распиновкой вроде нету.
#include <Servo.h>
#include <Arduino_JSON.h>

// const int ServoOnePin = 4;
const int ServoPlecho = 5;
const int ServoVrashenie = 3;
const int ServoPredplechie = 9;
const int ServoLapkaVrashenie = 11;
const int ServoLapka = 13;
// Servo servoOne;
Servo servoOne;
Servo servoTwo;
Servo servoThree;
Servo servoFour;
Servo servoFive;

// {"S1": 12}
String input = "";

void setup() {
  Serial.begin(9600);
  // pinMode(ServoOnePin, OUTPUT);
  pinMode(ServoPlecho, OUTPUT);
  pinMode(ServoVrashenie, OUTPUT);
  pinMode(ServoPredplechie, OUTPUT);
  pinMode(ServoLapkaVrashenie, OUTPUT);
  pinMode(ServoLapka, OUTPUT);
  servoOne.attach(ServoPlecho);
  servoTwo.attach(ServoVrashenie);
  servoThree.attach(ServoPredplechie);
  servoFour.attach(ServoLapkaVrashenie);
  servoFive.attach(ServoLapka);
}
void loop() {
  // put your main code here, to run repeatedly:
  if (Serial.available()) {
    while (Serial.available() > 0) {
      input += (char)Serial.read();
      delay(2);
    }
    Serial.println(input);
    JSONVar myObject = JSON.parse(input);
    if (JSON.typeof(myObject) == "undefined") {
      Serial.println("Parsing input failed!");
      return;
    }

    if (myObject.hasOwnProperty("S1")) {
      Serial.print("myObject[\"S1\"] = ");
      Serial.println((int)myObject["S1"]);
      int gr = (int)myObject["S1"];
      servoOne.write(gr);
      input = "";
    }

    if (myObject.hasOwnProperty("S2")) {
      Serial.print("myObject[\"S2\"] = ");
      Serial.println((int)myObject["S2"]);
      int gr = (int)myObject["S2"];
      servoOne.write(gr);
      input = "";
    }
    if (myObject.hasOwnProperty("S3")) {
      Serial.print("myObject[\"S3\"] = ");
      Serial.println((int)myObject["S3"]);
      int gr = (int)myObject["S3"];
      servoOne.write(gr);
      input = "";
    }
    if (myObject.hasOwnProperty("S4")) {
      Serial.print("myObject[\"S4\"] = ");
      Serial.println((int)myObject["S4"]);
      int gr = (int)myObject["S4"];
      servoOne.write(gr);
      input = "";
    }
    if (myObject.hasOwnProperty("S5")) {
      Serial.print("myObject[\"S5\"] = ");
      Serial.println((int)myObject["S5"]);
      int gr = (int)myObject["S5"];
      servoFive.write(gr);
      input = "";
    }  
  }
}
  • Вопрос задан
  • 176 просмотров
Пригласить эксперта
Ответы на вопрос 2
@kalapanga
1) Проверить работоспособность серв - закомментировать весь этот loop, а последними строчками в setup пошевелить всеми сервами (servoOne.write.... и т.п.). Работают - хорошо.
2) По коду везде расставлен вывод в serial отладочной информации (это хорошо). Так рассказывайте, что выводит-то!
Ответ написан
@archichi
соберите схему в протеусе там все ардуино есть и подставляйте код и отладка будет вам в радость
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы