Код (C++): #include <Servo.h> #define LED 11 #define LEFT_MOTOR_SPEED 5 //порт(шим) управления скоростью левого двигателя #define RIGHT_MOTOR_SPEED 6 //порт(шим) управления скоростью правого двигателя #define LEFT_MOTOR_CONTROL_1 2 //порты управления левым двигателем #define LEFT_MOTOR_CONTROL_2 4 #define RIGHT_MOTOR_CONTROL_1 7 //порты управления правым двигателем #define RIGHT_MOTOR_CONTROL_2 8 #define SERVO_CONTROL 10 //порт управления сервомашинкой #include <NewPing.h> #define PIN_TRIG 8 #define PIN_ECHO 9 #define MAX_DISTANCE 200 NewPing sonar(PIN_TRIG, PIN_ECHO, MAX_DISTANCE); Servo servo; void LeftMotorForward() { //функция движения вперед левого двигателя digitalWrite(LEFT_MOTOR_CONTROL_1, HIGH); digitalWrite(LEFT_MOTOR_CONTROL_2, LOW); } void LeftMotorBackward() //функция движения назад левого двигателя { digitalWrite(LEFT_MOTOR_CONTROL_1, LOW); digitalWrite(LEFT_MOTOR_CONTROL_2, HIGH); } void RightMotorForward() //функция движения вперед правого двигателя { digitalWrite(RIGHT_MOTOR_CONTROL_1, LOW); digitalWrite(RIGHT_MOTOR_CONTROL_2, HIGH); } void RightMotorBackward() //функция движения назад правого двигателя { digitalWrite(RIGHT_MOTOR_CONTROL_1, HIGH); digitalWrite(RIGHT_MOTOR_CONTROL_2, LOW); } void Reverse() //функция движения робота назад { RightMotorBackward(); LeftMotorBackward(); } void RotateRight() //функция вращения робота направо { LeftMotorForward(); RightMotorBackward(); } void RotateLeft() //функция вращения робота налево { RightMotorForward(); LeftMotorBackward(); } void Run() //фукнция движения робота вперед { RightMotorForward(); LeftMotorForward(); } void Stop() //функция движения назад правого двигателя { digitalWrite(RIGHT_MOTOR_CONTROL_1, LOW); digitalWrite(RIGHT_MOTOR_CONTROL_2, LOW); digitalWrite(LEFT_MOTOR_CONTROL_1, LOW); digitalWrite(LEFT_MOTOR_CONTROL_2, LOW); } void setup() { Serial.begin(9600); servo.attach(SERVO_CONTROL); servo.write(90); pinMode(LEFT_MOTOR_CONTROL_1, OUTPUT); pinMode(LEFT_MOTOR_CONTROL_2, OUTPUT); pinMode(LEFT_MOTOR_SPEED, OUTPUT); pinMode(RIGHT_MOTOR_CONTROL_1, OUTPUT); pinMode(RIGHT_MOTOR_CONTROL_2, OUTPUT); pinMode(RIGHT_MOTOR_SPEED, OUTPUT); pinMode(LED, OUTPUT); digitalWrite(LED, LOW); } void loop() { delay(50); unsigned int distance = sonar.ping_cm(); if (distance < 10){ RotateLeft(); delay(1000); Run(); { if (distance < 10){ Run(); { } } пишет exit status 1 expected '}' at end of input что тут не так?
а еще вопрос, версия 1 8 5 Код (C++): #include <Wire.h> // подключаем библиотеку I2C #include <LiquidCrystal_I2C.h> // подключаем библиотеку дисплея LiquidCrystal_I2C lcd(0x27,16,2); // Устанавливаем какой дисплей void setup() { lcd.init(); // инициализируем дисплей lcd.backlight(); // Включаем подсветку дисплея lcd.setCursor(0, 0); // переходим на позицию - первый ноль это позиция символа // второй ноль это позиция строки // т.е. первый ноль - переходим на первый символ // второй ноль - переходим на первую строку lcd.print("Hello World"); // выводим надпись "Hello World" lcd.setCursor(0, 1); // переходим на позицию - первый ноль это позиция символа // вторая единица это позиция строки // т.е. первый ноль - переходим на первый символ // вторая единица - переходим на вторую строку lcd.print("LCD 1602"); // выводим надпись "LCD 1602" } void loop() { // в этом простом примере в loop ничего ненужно } пишет exit status 1 'class LiquidCrystal_I2C' has no member named 'init' хотя библиотека есть нашел код в инете так как первый раз с 1602 работаю
Потому что коды надо не в инете искать, а писать самому. по делу - пишет что в библиотеке LiquidCrystal_I2C нет метода 'init' - то есть либо библиотека не та, либо код с ошибкой
смысла переустанавливать эту же самую библиотеку нет - либо ищите другую с таким же названием, либо разбирайтесь в программе и переписывайте код под ту. что есть. Второе предпочтительнее.
Они (LiquidCrystal_I2C) бывают разные. В одних init, а в других begin. Найдёшь, смотри какая попалась и ставь ту, где init есть.