ожидается '}' в конце ввода
Привет, я получаю эту ошибку, я предполагаю, что у меня отсутствует скобка или она находится не в том месте. любая помощь приветствуется, все еще новичок в этом. спасибо
(код ниже)
#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>
#include <XBOXRECV.h>
Adafruit_PWMServoDriver pwm1 = Adafruit_PWMServoDriver(0x40);
USB Usb;
XBOXRECV Xbox(&Usb);
// счетчик нашего сервопривода
// Вы можете изменить значение от 0 до 15 (серво от 1 до 16)
uint8_t util1servo = 0;
uint8_t util2servo = 1;
uint8_t ldoorservo = 2;
uint8_t rdoorservo = 7;
uint8_t sdoorservo = 3;
uint8_t mdoorservo = 8;
//Определение пределов сервопривода.
// Вам нужно будет выяснить, какие числа соответствуют вашему сервоприводу, будьте осторожны с ними,
// это может сломать ваш сервопривод, если вы выйдете за пределы. Перечисленные здесь предназначены для моей собственной установки
#define UTIL1MIN 150 // Закрытое положение верхней вспомогательной руки
#define UTIL1MAX 310 // Открытое положение верхней вспомогательной консоли
#define UTIL2MIN 140 // Закрытое положение нижнего вспомогательного рычага
#define UTIL2MAX 300 // Открытое положение нижнего вспомогательного рычага
#define LDOORMIN 390 // Закрытое положение левой двери
#define LDOORMAX 550 // открытое положение левой двери
#define RDOORMIN 555 // Закрытое положение правой двери
#define RDOORMAX 360 // открытое положение правой двери
#define SDOORMIN 492 // Закрытое положение маленькой двери
#define SDOORMAX 200 // Открытое положение Малой двери
#define MDOORMIN 550 // Закрытое положение средней двери
#define MDOORMAX 380 // Открытое положение средней двери
//Статус для каждой двери открыта/закрыта
int LDOORSTATUS = 0; // Статус 0 = Закрыто, 1 = Открыто
int RDOORSTATUS = 0; // Статус 0 = Закрыто, 1 = Открыто
int SDOORSTATUS = 0; // Статус 0 = Закрыто, 1 = Открыто
int MDOORSTATUS = 0; // Статус 0 = Закрыто, 1 = Открыто
void setup() {
pwm1.begin();
pwm1.setPWMFreq(60); // Аналоговые сервоприводы работают с частотой обновлений ~60 Гц
Wire.begin();
}
void loop() {
//Левая дверь
if (Xbox.getButtonClick(LEFT, 0)){
if (Xbox.getButtonPress(R1, 0)) {
if(LDOORSTATUS == 0){
for (uint16_t lpulselen = LDOORMIN; lpulselen < LDOORMAX; lpulselen++){
pwm1.setPWM(ldoorservo, 0, lpulselen); //Открой дверь
delay(1);
}
LDOORSTATUS = 1;
}
else if (LDOORSTATUS == 1){
for (uint16_t lpulselen = LDOORMAX; lpulselen > LDOORMIN; lpulselen--){
pwm1.setPWM(ldoorservo, 0, lpulselen); //Закрыть дверь
delay(1);
}
LDOORSTATUS = 0;
}
@corey, 👍-4
Обсуждение1 ответ
▲ 2
Автоматическое форматирование привело к следующему: посмотрите на свою функцию loop()
, и вы увидите проблему:
#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>
#include <XBOXRECV.h>
Adafruit_PWMServoDriver pwm1 = Adafruit_PWMServoDriver(0x40);
USB Usb;
XBOXRECV Xbox(&Usb);
// счетчик нашего сервопривода
// Вы можете изменить значение от 0 до 15 (серво от 1 до 16)
uint8_t util1servo = 0;
uint8_t util2servo = 1;
uint8_t ldoorservo = 2;
uint8_t rdoorservo = 7;
uint8_t sdoorservo = 3;
uint8_t mdoorservo = 8;
//Определение пределов сервопривода.
// Вам нужно будет выяснить, какие числа соответствуют вашему сервоприводу, будьте осторожны с ними,
// это может сломать ваш сервопривод, если вы выйдете за пределы. Перечисленные здесь предназначены для моей собственной установки
#define UTIL1MIN 150 // Закрытое положение верхней вспомогательной руки
#define UTIL1MAX 310 // Открытое положение верхней вспомогательной консоли
#define UTIL2MIN 140 // Закрытое положение нижнего вспомогательного рычага
#define UTIL2MAX 300 // Открытое положение нижнего вспомогательного рычага
#define LDOORMIN 390 // Закрытое положение левой двери
#define LDOORMAX 550 // открытое положение левой двери
#define RDOORMIN 555 // Закрытое положение правой двери
#define RDOORMAX 360 // открытое положение правой двери
#define SDOORMIN 492 // Закрытое положение маленькой двери
#define SDOORMAX 200 // Открытое положение Малой двери
#define MDOORMIN 550 // Закрытое положение средней двери
#define MDOORMAX 380 // Открытое положение средней двери
//Статус для каждой двери открыта/закрыта
int LDOORSTATUS = 0; // Статус 0 = Закрыто, 1 = Открыто
int RDOORSTATUS = 0; // Статус 0 = Закрыто, 1 = Открыто
int SDOORSTATUS = 0; // Статус 0 = Закрыто, 1 = Открыто
int MDOORSTATUS = 0; // Статус 0 = Закрыто, 1 = Открыто
void setup() {
pwm1.begin();
pwm1.setPWMFreq(60); // Аналоговые сервоприводы работают с частотой обновлений ~60 Гц
Wire.begin();
}
void loop() {
//Левая дверь
if (Xbox.getButtonClick(LEFT, 0)) {
if (Xbox.getButtonPress(R1, 0)) {
if (LDOORSTATUS == 0) {
for (uint16_t lpulselen = LDOORMIN; lpulselen < LDOORMAX; lpulselen++) {
pwm1.setPWM(ldoorservo, 0, lpulselen); //Открой дверь
delay(1);
}
LDOORSTATUS = 1;
}
else if (LDOORSTATUS == 1) {
for (uint16_t lpulselen = LDOORMAX; lpulselen > LDOORMIN; lpulselen--) {
pwm1.setPWM(ldoorservo, 0, lpulselen); //Закрыть дверь
delay(1);
}
LDOORSTATUS = 0;
}
,
@JRobert
Смотрите также:
- Как остановить серводвигатель в текущем положении при использовании последовательного порта? Я хочу, чтобы он оставался в одном положении при получении «0».
- Как быстро и без задержки переместить сервопривод?
- Когда я включаю сервопривод, он вращается сам по себе, прежде чем перейти в нужное положение и начать скетч.
- Как перемещать сервопривод с помощью функции
- Код, из-за которого серводвигатель не работает!
- Как добавить задержку, закрыть сервопривод и снова перейти к началу?
- Проверка ввода данных в arduino
- Tower Pro MG996R сервопривод с высоким крутящим моментом 180 °, управляющий с помощью Arduino
Автоформат в среде IDE — ваш друг..., @Majenko
Вы должны отредактировать свой вопрос, выбрать код и нажать кнопку форматирования кода
{}
., @Duncan Cпонизьте голос, потому что вы просите помощи с небрежно отформатированным кодом, @jsotola