ожидается '}' в конце ввода

Привет, я получаю эту ошибку, я предполагаю, что у меня отсутствует скобка или она находится не в том месте. любая помощь приветствуется, все еще новичок в этом. спасибо

(код ниже)

#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;     
     }

, 👍-4

Обсуждение

Автоформат в среде IDE — ваш друг..., @Majenko

Вы должны отредактировать свой вопрос, выбрать код и нажать кнопку форматирования кода {}., @Duncan C

понизьте голос, потому что вы просите помощи с небрежно отформатированным кодом, @jsotola


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;
      }
,