Кодирование нескольких сервоприводов в Arduino

Я первый год изучаю мехатронную инженерию, и у меня возникли проблемы с кодом, который я использую для управления двуногим роботом в своем проекте.

#include <servo.h>
Servo myservoa;
           myservob;
           myservoc;
           myservod;
int     myservoa=10;
          myservob=55;
          myservoc=25;
          myservod=125;

void setup() {
    myservoa.attach(2)
    myservob.attach(3)
    myservoc.attach(4)
    myservod.attach(5)
}

void loop() {
    for pos=10;pos<=75;pos+=1;
    {
        myservoa.write(pos);
        delay(1000);
    }
    for pos=55;pos<=100;pos+=1;
    {
        myservob.write(pos)
        delay (1800)
    }
    for pos=25;pos<=165;pos+=1;
    {
        myservoc.write(pos)
        delay (1000)
    }
    for pos=125;pos<=170;pos+=1;
    {
        myservod.write(pos)
        delay (1800)
    }
}

Может ли быть ошибка в коде?

, 👍-3

Обсуждение

Да, некоторые синтаксические ошибки. На данный момент я отформатировал ваш код правильно и изменил Void и Int на нижний регистр. Но вам действительно нужно описать, в чем заключается ваша реальная проблема. Вы должны получить сообщения об ошибках во время компиляции. Обязательно добавьте их в свой вопрос (нажмите «изменить» под вашим вопросом и отредактируйте его напрямую), @chrisl

@chrisl ... "некоторые" синтаксические ошибки...? Я думаю, проще перечислить те части, которые *не* являются синтаксическими ошибками., @Majenko

@user47756 Тебе действительно нужно вернуться к основам в твоих знаниях синтаксиса C++. Изучите базовый синтаксис *прежде чем* пытаться писать код., @Majenko

Крисл, какие синтаксические ошибки ты обнаружил?, @Jose Nick

@user47756, у вас нет синтаксических ошибок?, @jsotola

что означает этот вопрос? ...«Может ли быть ошибка в коде?», @jsotola

Я думаю, что в общей сложности там, возможно, 5 строк, в которых *нет* синтаксических ошибок (не считая скобок)..., @Majenko


1 ответ


3

Может ли быть ошибка в коде?

Можно сказать, да. Давайте для начала перечислим все синтаксические ошибки:

#include <servo.h>
Servo myservoa;
           myservob; // У этого нет типа. Это просто слово само по себе.
           myservoc; // У этого нет типа. Это просто слово само по себе.
           myservod; // У этого нет типа. Это просто слово само по себе.


int     myservoa=10; // Вы уже определили myservoa как тип Servo.
          myservob=55; // У этого нет типа. Это просто слово само по себе.
          myservoc=25; // У этого нет типа. Это просто слово само по себе.
          myservod=125; // У этого нет типа. Это просто слово само по себе.

void setup()
{
    myservoa.attach(2) // Точка с запятой должна завершать все операторы.
    myservob.attach(3) // Точка с запятой должна завершать все операторы.
    myservoc.attach(4) // Точка с запятой должна завершать все операторы.
    myservod.attach(5) // Точка с запятой должна завершать все операторы.
}

void loop()
{
    for pos=10;pos<=75;pos+=1; // Скобки отсутствуют, pos не определен и дополнительный ;
    {
        myservoa.write(pos);
        delay(1000);
    }
    for pos=55;pos<=100;pos+=1; // Скобки отсутствуют, pos не определен и дополнительный ;
    {
        myservob.write(pos)  // Точка с запятой должна завершать все операторы.
        delay (1800) // Точка с запятой должна завершать все операторы.
    }
    for pos=25;pos<=165;pos+=1; // Скобки отсутствуют, pos не определен и дополнительный ;
    {
        myservoc.write(pos) // Точка с запятой должна завершать все операторы.
        delay (1000) // Точка с запятой должна завершать все операторы.
    }
    for pos=125;pos<=170;pos+=1; // Скобки отсутствуют, pos не определен и дополнительный ;
    {
        myservod.write(pos) // Точка с запятой должна завершать все операторы.
        delay (1800) // Точка с запятой должна завершать все операторы.
    }
}

Вам действительно нужно разобраться с синтаксисом языка, прежде чем вы начнете программировать на этом языке. Я насчитал там всего 6 строк (не включая { и }) допустимого кода на языке C, и две из них предоставлены вам IDE.

,

Я просто вставил код от друга, только что он использовал два сервопривода. Majenko, не могли бы вы отформатировать мой код и отправить его мне заново? Возможно, у меня проблемы со многими сервоприводами., @Jose Nick

@user47756 Это не бесплатный сервис кодирования. Majenko указал на синтаксические ошибки в вашем коде. Посмотрите базовый учебник C/C++, изучите и затем перепишите код самостоятельно. Вы не должны просто копировать у других людей, потому что если вы не понимаете код на самом деле, вы не сможете изменить его правильно, чтобы достичь своей цели. Приложите немного усилий здесь., @chrisl

О! Я понял. Теперь мой код в порядке и успешно выполняется после загрузки. Спасибо, ребята. @majenko,@chrisl, @Jose Nick