Ощибка при установке скетча

Тема в разделе "Arduino & Shields", создана пользователем Уыфгдщм, 16 ноя 2016.

  1. Уыфгдщм

    Уыфгдщм Нерд

    Выдаёт ошибку " Robot-Glazastick:23: error: expected unqualified-id before '.' token "
    При загрузке вот этого скетча
    #include <AFMotor.h> //подключаем библиотеку мотора

    #define Trig 13 //даём имя константе
    #define Echo 10 //даём имя константе
    #include <Servo.h> //подключаем библиотеку сервопривода


    AF_DCMotor motor2(2); //вводим имя левого моторо
    AF_DCMotor motor3(3); //вводим имя правого мотора




    int ugol = 90;
    int smotrim_vlevo;
    int smotrim_vpravo;
    int smotrim_priamo;
    int vremia;



    void setup () {
    Servo.attach(9); // Подключаем сервопривод к 9 пину
    Serial.begin(9600); // Устанавливаем скорость передачи данных в битах в секунду
    }

    void edemVpered() {

    motor2.run(FORWARD); //даём команду левому мотору ехать вперёд
    motor3.run(FORWARD); //даём команду правому мотору ехать вперёд
    motor2.setSpeed(255); //скорость с которой левый мотор будет ехать вперёд
    motor3.setSpeed(255); //скорость с которой правый мотор будет ехать вперёд
    }

    void edemNazad() {

    motor2.run(BACKWARD); //даём команду левому мотору ехать назад
    motor2.run(BACKWARD); //даём команду правому мотору ехать назад
    motor2.setSpeed(255); //скорость с которой левый мотор будет ехать назад
    motor3.setSpeed(255); //скорость с которой правый мотор будет ехать нахад
    }

    void edemVpravo() {
    motor2.run(FORWARD); // левый мотор едет вперёд
    motor2.setSpeed(255); // скорость левого мотора 255
    }
    void edemVlevo() {
    motor3.run(FORWARD); // правый мотор едет вперёд
    motor3.setSpeed(255); // скорость правого мотора 255
    }


    void stoim() {

    motor2.run(RELEASE); //левый мотор останавливается
    motor3.run(RELEASE); //правый мотор останавливается
    Serial.begin(9600); // Устанавливает скорость передачи данных в битах в секунду
    Serial.println("Motor"); //// Выводим на порт
    }

    void kak_meriat_sleva() {
    digitalWrite(Trig, HIGH); //Подаем значение HIGH на цифровой выход
    delayMicroseconds(10); //Приоставлеваем программу на заданное количество микросекунд
    digitalWrite(Trig, LOW);//Подаем значение LOW на цифровой выход
    vremia = pulseIn(Echo, HIGH); //Считываем длину сигнала на заданном порту
    smotrim_vlevo = vremia / 58;
    }

    void kak_meriat_priamo() {
    digitalWrite(Trig, HIGH); //Подаем значение HIGH на цифровой выход
    delayMicroseconds(10); //Приоставлеваем программу на заданное количество микросекунд
    digitalWrite(Trig, LOW);//Подаем значение LOW на цифровой выход
    vremia = pulseIn(Echo, HIGH); //Считываем длину сигнала на заданном порту
    smotrim_priamo = vremia / 58;
    Serial.println(smotrim_priamo); // Выводим на порт
    }

    void kak_meriat_sprava() {
    digitalWrite(Trig, HIGH); //Подаем значение HIGH на цифровой выход
    delayMicroseconds(10); //Приоставлеваем программу на заданное количество микросекунд
    digitalWrite(Trig, LOW); //Подаем значение LOW на цифровой выход
    vremia = pulseIn(Echo, HIGH); //Считываем длину сигнала на заданном порту
    smotrim_vpravo = vremia / 58;
    }


    void loop() {


    edemVpered();

    kak_meriat_priamo();
    if (smotrim_priamo < 30) {
    stoim();
    delay(50); //задерживаем на 50
    for (ugol = 90; ugol >= 10; ugol--) {
    Servo.write(ugol); //Записываем значение серво
    delay(10); //задерживаем на 10
    }
    edemNazad();
    delay(150); //задерживаем на 150
    stoim();

    kak_meriat_sprava();
    delay(50); //задерживаем на 50
    for (ugol = 10; ugol <= 170; ugol++) {
    Servo.write(ugol); //Записываем значение серво
    delay(10); //задерживаем на 10
    }

    kak_meriat_sleva();
    delay(50); //задерживаем на 50
    for (ugol = 170; ugol >= 90; ugol--) {
    servo.write(ugol); //Записываем значение серво
    delay(10); //задерживаем на 10
    }

    if (smotrim_vpravo > smotrim_vlevo) {


    edemVpravo();
    delay(300); //задерживаем на 300
    stoim();
    }

    else {

    edemVlevo();
    delay(300); //задерживаем на 300
    stoim();
    }

    }


    }


    В чём может быть проблема?
     

    Вложения:

  2. fogary

    fogary Гик

    Забыли создать объект "Servo".
    Фрагмент примера с arduino.cc:
    Код (C++):
    #include <Servo.h>

    Servo myservo;  // create servo object to control a servo

    void setup() {
      myservo.attach(9);  // attaches the servo on pin 9 to the servo object
    }
    PS Вставляйте текст программы в тэг для кода (кнопка "<>")
     
    Tomasina нравится это.