Спасите, помогите. автокормушка для кота.

Тема в разделе "Arduino & Shields", создана пользователем Памидора, 29 фев 2020.

  1. Добрый вечер. С сыном для школы готовим проект Автокормушка для кота http://wiki.amperka.ru/slot-box:three-automatic-animal-feeder. по этой ссылки автокормушка №3. Макет собрали (но не из оргстекла у нас его нет в городе) схему подключили. Установили программу Arduino IDE. Но при загрузке с сайта скетча пишет ошибку:
    animal-fider-3:5:10: error: TroykaRTC.h: No such file or directory

    #include <TroykaRTC.h>

    ^~~~~~~~~~~~~

    compilation terminated.

    exit status 1
    TroykaRTC.h: No such file or directory
    Я полный профан в программировании ((( Нашла что дело в библиотеке ... но на TroykaRTC я не могу ее найти.
    Помогите пожалуйста проект горит уже, и кот голодный ходит )))
     
  2. parovoZZ

    parovoZZ Гуру

    надо соответствующую библиотеку поставить.
     
  3. Airbus

    Airbus Радиохулиган Модератор

    TroykaRTC.h Откуда скачать?Полагаю с Гитхаба или с сайта Амперки.Гугл 29 фераля не работает?А Коту просто так сосиску кинуть не?
     
  4. Искала, не могу ее найти ... тут ... Гитхаб (для TroykaRTC нет ничего)
     
  5. Ariadna-on-Line

    Ariadna-on-Line Гуру

  6. // Подключаем библиотеки для работы
    #include <Wire.h>
    #include <iarduino_RTC.h>
    #include <Servo.h>

    // Время первого кормления
    #define FEED_HOUR_1 9
    #define FEED_MINUTE_1 0
    // Время второго кормления
    #define FEED_HOUR_2 12
    #define FEED_MINUTE_2 0
    // Время третьего кормления
    #define FEED_HOUR_3 19
    #define FEED_MINUTE_3 0
    // Пин к которому подключается кнопка принудительного поворота
    #define BUTTON_PIN 4
    // Пин к которому подключается сервопривод
    #define SERVO_PIN A0
    // Пины к которым подключены датчики линии
    #define LINE_SENSOR_1 A1
    #define LINE_SENSOR_2 A2
    #define LINE_SENSOR_3 A3
    #define LINE_SENSOR_4 A6
    // Флаг "Уже покормили"
    boolean flag = true;

    RTC clock;

    Servo servo;

    void setup() {
    // Инициализируем часы
    clock.begin();
    servo.attach(SERVO_PIN);
    servo.write(90);
    // Устанавливаем время
    clock.set(__TIMESTAMP__);
    }

    void loop() {
    clock.read();

    if (((clock.getHour() == FEED_HOUR_1) && (clock.getMinute() == FEED_MINUTE_1))
    || ((clock.getHour() == FEED_HOUR_2) && (clock.getMinute() == FEED_MINUTE_2))
    || ((clock.getHour() == FEED_HOUR_3) && (clock.getMinute() == FEED_MINUTE_3))
    || (flag && !digitalRead(BUTTON_PIN))) {
    // Если время пришло устанавливаем флаг "Уже покормили"
    flag == false;
    // Включаем сервопривод
    servo.write(88);
    delay(50);
    while ((analogRead(LINE_SENSOR_1) > 100) && (analogRead(LINE_SENSOR_2) > 100)
    && (analogRead(LINE_SENSOR_3) > 100) && (analogRead(LINE_SENSOR_4) > 100)) {
    // Ожидаем пока не срадобает датчик поворота
    }
    // Как только сработал датчик что сектор над миской останавливаем вращение сервы
    servo.write(90);
    } else {
    flag == true;
    long timeMs = millis();
    while (millis() - timeMs < 10) {}
    servo.write(90);
    }
    }
     
  7. Airbus

    Airbus Радиохулиган Модератор

    АААА!!!!!Вставьте код как на шпаргалке
    [​IMG]
     
    Последнее редактирование: 29 фев 2020
  8. Airbus

    Airbus Радиохулиган Модератор

    Скетч в первом Вашем посте и в последнет один и тот же?Если да то где там TroykaRTC.h?Что то Вы не то делаете
     
    alp69 нравится это.
  9. Airbus

    Airbus Радиохулиган Модератор

    Нельзя тупо менять одну библиотеку на другую даже если они для одного устройства.Тут придется весь код править.Возьмите код из ВИКИ скачайте библиотеку из поста #5 и будет Вам щастье!
     
  10. NikitOS

    NikitOS Король шутов Администратор


    Тыжмодератор
     
    olegoriy нравится это.
  11. Код (C++):
    #include <Wire.h>
    #include <TroykaRTC.h>
    #include <Servo.h>
    // Время первого кормления
    #define FEED_HOUR_1     9
    #define FEED_MINUTE_1   0
    // Время второго кормления
    #define FEED_HOUR_2     12
    #define FEED_MINUTE_2   0
    // Время третьего кормления
    #define FEED_HOUR_3     19
    #define FEED_MINUTE_3   0
    // Пин к которому подключается кнопка принудительного поворота
    #define BUTTON_PIN 4
    // Пин к которому подключается сервопривод
    #define SERVO_PIN A0
    // Пины к которым подключены датчики линии
    #define LINE_SENSOR_1 A1
    #define LINE_SENSOR_2 A2
    #define LINE_SENSOR_3 A3
    #define LINE_SENSOR_4 A6
    // Флаг "Уже покормили"
    boolean flag = true;
    RTC clock;
    Servo servo;
    void setup() {
      // Инициализируем часы
      clock.begin();
      servo.attach(SERVO_PIN);
      servo.write(90);
      // Устанавливаем время
      clock.set(__TIMESTAMP__);
    }
    void loop() {
      clock.read();
      //Проверяем не пришло ли время покормить животное
      if (((clock.getHour() == FEED_HOUR_1) && (clock.getMinute() == FEED_MINUTE_1))
      || ((clock.getHour() == FEED_HOUR_2) && (clock.getMinute() == FEED_MINUTE_2))
      || ((clock.getHour() == FEED_HOUR_3) && (clock.getMinute() == FEED_MINUTE_3))
      || (flag && !digitalRead(BUTTON_PIN))) {
        // Если время пришло устанавливаем флаг "Уже покормили"
        flag == false;
        // Включаем сервопривод
        servo.write(88);
        delay(50);
        while ((analogRead(LINE_SENSOR_1) > 100) && (analogRead(LINE_SENSOR_2) > 100)
        && (analogRead(LINE_SENSOR_3) > 100) && (analogRead(LINE_SENSOR_4) > 100)) {
          // Ожидаем пока не срадобает датчик поворота
        }
        // Как только сработал датчик что сектор над миской останавливаем вращение сервы
        servo.write(90);
      } else {
        flag == true;
        long timeMs = millis();
        while (millis() - timeMs < 10) {}
        servo.write(90);
      }
    }
    }
     
  12. Доброе утро подключила библиотеку, огромное спасибо за ссылку, но сейчас выдает вот такую ошибку
    Arduino: 1.8.11 (Windows 10), Плата:"Arduino Nano, ATmega328P"


    Скетч использует 4722 байт (15%) памяти устройства. Всего доступно 30720 байт.

    Глобальные переменные используют 344 байт (16%) динамической памяти, оставляя 1704 байт для локальных переменных. Максимум: 2048 байт.

    Произошла ошибка при загрузке скетча

    avrdude: Expected signature for ATmega328P is 1E 95 0F

    Double check chip, or use -F to override this check.


    Этот отчёт будет иметь больше информации с

    включенной опцией Файл -> Настройки ->

    "Показать подробный вывод во время компиляции"
     
  13. И даже примеры не идут Blink такая же ошибка ...
     

    Вложения:

    • 1.jpg
      1.jpg
      Размер файла:
      382,8 КБ
      Просмотров:
      198
  14. parovoZZ

    parovoZZ Гуру

    Считанная из МК сигнатура указывает на другой МК, нежели выбран в IDE.
     
  15. Asper Daffy

    Asper Daffy Иксперд

    Вот это:
    будет кричать кот, когда вы с сыном запустите свою кормушку в эксплуатацию :)
     
  16.  
  17. Все загрузила. Теперь следующий вопрос Сейчас в IDE я не могу поменять время кормления (весь скетч серый изменить ничего не могу в нем ) почему?
     
  18. и должен ли серво крутить с кнопки крышку?