Кодирование нескольких сервоприводов в 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 ответ
▲ 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
Смотрите также:
- Как объявить массив переменного размера (глобально)
- Программирование Arduino с использованием Python, а не C/C ++
- Загрузка Arduino Nano дает ошибку: avrdude: stk500_recv(): programmer is not responding
- Как справиться с rollover millis()?
- Является ли использование malloc() и free() действительно плохой идеей для Arduino?
- Можно ли сделать несколько функций loop() с помощью Arduino Uno?
- Какие накладные расходы и другие соображения существуют при использовании структуры по сравнению с классом?
- устаревшее преобразование из строковой константы в 'char*'