Кодирование нескольких сервоприводов в 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)
}
}
Может ли быть ошибка в коде?
@Jose Nick, 👍-3
Обсуждение1 ответ
Может ли быть ошибка в коде?
Можно сказать, да. Давайте для начала перечислим все синтаксические ошибки:
#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
- Как объявить массив переменного размера (глобально)
- Программирование Arduino с использованием Python, а не C/C ++
- Загрузка Arduino Nano дает ошибку: avrdude: stk500_recv(): programmer is not responding
- Как справиться с rollover millis()?
- Является ли использование malloc() и free() действительно плохой идеей для Arduino?
- Можно ли сделать несколько функций loop() с помощью Arduino Uno?
- Какие накладные расходы и другие соображения существуют при использовании структуры по сравнению с классом?
- устаревшее преобразование из строковой константы в 'char*'
Да, некоторые синтаксические ошибки. На данный момент я отформатировал ваш код правильно и изменил
Void
иInt
на нижний регистр. Но вам действительно нужно описать, в чем заключается ваша реальная проблема. Вы должны получить сообщения об ошибках во время компиляции. Обязательно добавьте их в свой вопрос (нажмите «изменить» под вашим вопросом и отредактируйте его напрямую), @chrisl@chrisl ... "некоторые" синтаксические ошибки...? Я думаю, проще перечислить те части, которые *не* являются синтаксическими ошибками., @Majenko
@user47756 Тебе действительно нужно вернуться к основам в твоих знаниях синтаксиса C++. Изучите базовый синтаксис *прежде чем* пытаться писать код., @Majenko
Крисл, какие синтаксические ошибки ты обнаружил?, @Jose Nick
@user47756, у вас нет синтаксических ошибок?, @jsotola
что означает этот вопрос? ...«Может ли быть ошибка в коде?», @jsotola
Я думаю, что в общей сложности там, возможно, 5 строк, в которых *нет* синтаксических ошибок (не считая скобок)..., @Majenko