1. ВАЖНО!!! Прошел умный спамер-робот. После регистрации создает переписку с сообщением о зачислении на ваш счет средств и ссылкой для подробностей. Ни в коем случае не переходите по ссылке и необходимо "покунить" такую переписку. Отвечать также не нужно. Временно переводим на ручное одобрение пользователей, посмотрим за обстановкой
    Скрыть объявление
  2. Уважаемые форумчане! Убедительная просьба, используйте наиболее подходящие темы для своих сообщений. Спасибо за понимание.
    Скрыть объявление

Контроллер своими руками

Тема в разделе "Автоматика", создана пользователем Yuriiv, 6 апр 2014.

  1. DrCasper

    DrCasper Участник

    Регистрация:
    12.06.2014
    128
    16
    Имя:
    Дмитрий
    ЕвгенийBEER, что это за поток сознания!? :)

    Если вопрос о вкладках, то это файлы ОДНОГО ПРОЕКТА. Их не нужно (да и не получится) загружать "по одному", т.к. проект компилируется и загружается целиком.
    Если не работает ввод и/или вывод -- в первую очередь нужно проверить настройки пинов в скетче. Если не компилируется и вылетает с ошибкой -- я уже писал выше, как включить детальный вывод информации о компиляции. Тогда будет видно, обо что "споткнулся" компилятор и куда смотреть.
     
    • Класс Класс x 1
  2. ЕвгенийBEER

    ЕвгенийBEER Новенький

    Регистрация:
    05.05.2016
    25
    6
    Имя:
    Евгений

    Хорошо.Там некоторые вкладки лишние:с разными пинами,LCD экранами...Лишние нужно удалить.Как?Весь проект целиком не совсем верный.часть нужно убирать,корректировать.
    Ошибок нет,но и экран ничего не показывает.А другие программы идут.
     
  3. bojarin

    bojarin Участник

    Регистрация:
    28.02.2015
    100
    13
    Для себя делал. А зачем цвет? На функционал не влияет. Эргономика? То же вряд ли.
    --- сообщения объединены, 14 мар 2017, дата первого сообщения: 14 мар 2017 ---
    Евгений проблем может быть куча. Начните с простейшей прошивки. hello world. И как с ней всей получится переходите к пивоварне.
     
    • Класс Класс x 1
  4. DrCasper

    DrCasper Участник

    Регистрация:
    12.06.2014
    128
    16
    Имя:
    Дмитрий
    Не нужно ничего удалять. Разные файлы используются для разных языков/плат. Выбор нужной осуществляется на этапе компиляции через указание соответствующих констант.
    "Весь проект целиком не совсем верный" -- это из чего сделан такой вывод, если у всех все собирается и работает? Может, в консерватории что-то поправить? (с)
    "Ошибок нет" -- это подтверждение того, что "весь проект целиком", как раз, верный. А экран не показывает, потому что может быть неправильно подключен, либо (если, например, другие тестовые скетчи работают нормально с экраном), пины прописаны неверно. Указываются они в header-файле (в "закладке"), соответствующем КОНКРЕТНОЙ реализации платы.

    В основном файле скетча английским по белому написано (в качестве примера цитирую ArdBir 2.8.3):
    Код:
    // ==============================================
    // ATTENTION!!!!!
    // YOU MUST SET ONLY THIS SECTION
    // ==============================================
    
    //SET PCB
    // 1 Brauduino Original (Matho's PCB)
    // 2 Brauduino by DanielXan
    // 3 ArdBir by DanielXan
    // 4 ArdBir All-in-One
    #define PCBType 3
    
    // SET LCD and Language
    // LCD 16 or 20
    #define LCDType 20
    
    // LANGUAGE
    // 1 English
    // 2 Italian
    // 3 Spanish
    // 4 Portuguese
    // 5 Russian    (only 20 x 4)
    // 6 Norwegian  (only 20 x 4)
    // 7 Romanian
    #define LCDLanguage 2
    Что обеспечивает выбор нужных header-файлов в зависимости от выбранных настроек. Если, например, выбран (как в листинге выше) тип платы №3 (#define PCBType 3), то будет использован .h-файл "Pcb_ArdBir_DanielXan.h". Почему? Потому что ниже в файле есть соответствующие условия для препроцессора:
    Код:
    // SETTING PCB*****
    #if PCBType == 1
      #include "Pcb_Brauduino_Original.h"
    #elif PCBType == 2
      #include "Pcb_Brauduino_DanielXan.h"
    #elif PCBType == 3
      #include "Pcb_ArdBir_DanielXan.h"
    #elif PCBType == 4
      #include "Pcb_ArdBir_All-in-One.h"
    #elif PCBType == 5
      #include "Pcb_11s.h"
    #endif
    Соответственно, настройки пинов для дисплея, кнопок и реле насоса/тэна нужно выставлять именно в этом файле. Либо, если используется другая плата -- указать ее тип в константе PCBType и курочить соответствующий файл.

    Тоже самое с языком и типом дисплея -- в зависимости от значений LCDType (16х2 или 20х4 символов) и LCDLanguage (язык из списка доступных) будет подгружен нужный .h-файл. Другие .h-файлы проекта, хоть и остаются в "закладках" -- просто игнорируются при компиляции.

    За сим ликбез считаю законченным. Аспекты программирования на C/Processing и работы с Arduino IDE оставляю за кадром, ибо это интересная тема для изучения и просто писать "нажми здесь и ткни туда" -- бесполезно.

    PS: Вся (!) приведенная выше информация пережевывалась уже 100500 раз, поиск по форуму в помощь.
     
  5. ЕвгенийBEER

    ЕвгенийBEER Новенький

    Регистрация:
    05.05.2016
    25
    6
    Имя:
    Евгений
    Все программки я уже давно прогнал.Только эта не идет!
     
  6. ЕвгенийBEER

    ЕвгенийBEER Новенький

    Регистрация:
    05.05.2016
    25
    6
    Имя:
    Евгений
    Что делать если скетч слишком большой на arduino 2.8.3?У кого то закачалось?
     
  7. DrCasper

    DrCasper Участник

    Регистрация:
    12.06.2014
    128
    16
    Имя:
    Дмитрий
    Воспользоваться поиском
     
  8. bojarin

    bojarin Участник

    Регистрация:
    28.02.2015
    100
    13
    обрезать, выкинув "лишнее, взять ардуино с памятью "побольше", курить форум
    --- сообщения объединены, 13 апр 2017, дата первого сообщения: 13 апр 2017 ---
    еще раз конкретнее в чем проблема? версия ардуино (софт), плата уно? библиотеки для ардуино все стоят в нужном месте? листинг ошибки?
     
  9. Олег

    Олег Участник

    Регистрация:
    18.11.2013
    459
    17
    Перепрошить на загрузчик УНО
    --- сообщения объединены, 13 апр 2017, дата первого сообщения: 13 апр 2017 ---
    Читайте форум не ленитесь об этом писалось.
    Как маленькие дети.
     
  10. Serg_V

    Serg_V Новенький

    Регистрация:
    07.06.2017
    5
    0
    Имя:
    Сергей
    Скетч ArdBir_2_6_62e выдает ошибки при компиляции в ДСВ16х2_ENG :
    Код:
     case(7):
    
          lcd.setCursor(12,1);
    
          if (unitSet<100)LCDSpace(1);
    
          lcd.print(unitSet);
    
          Gradi();
    
    Ошибка:
    
    exit status 1
    
    'Gradi' was not declared in this scope
    
    Я так понимаю - идет обращение к основному скетчу. Так как у других подобной проблеммы нет, наверное я что-то делаю не так в установках?

    Экран у меня 16х2 с кнопками, А0 использовать не могу и поэтому задействовал А4 - но тут криминала особого нет.
    Код:
    // sensor and lcd
    
    OneWire ds(11);
    
    LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
    
    
    // push buttons
    
    const char Button_up    = A3;
    
    const char Button_dn    = A4;
    
    const char Button_start = A1;
    
    const char Button_enter = A2;
    
    
    // outputs
    
    const byte Pump = 3;
    
    const byte Buzz = 10;
    
    const byte Heat = 12;
    
    Ну и установки в основном скетче:

    Код:
    //libraries
    
    #include <EEPROM.h>
    
    #include <LiquidCrystal.h>
    
    //#include <LiquidCrystalRus.h>
    
    #include <OneWire.h>
    
    #include <PID_v1.h>
    
    //#include <SD.h>
    
    //#include <Serial.h>
    
    
    // SETTING PCB*****
    
    // Select your PCB Version
    
    
    // Testing PCB
    
    //#include "Pcb_05.h"
    
    //#include "Pcb_11s.h"
    
    //#include "Pcb_14.h"
    
    
    // Supported PCB
    
    //#include "Pcb_ArdBir_DanielXan.h"
    
    #include "Pcb_Brauduino_DanielXan.h"
    
    //#include "Pcb_Brauduino_Original.h"
    
    
    // Porzioni di codice
    
    #include "ArdBir1.h"
    
    //#include "Funzioni.h"
    
    
    // SETTING LCD*****
    
    // Select your LCD
    
    
    // LANGUAGE ITA
    
    //#include "LCD16x2_ITA.h"
    
    //#include "LCD20x4_ITA.h"
    
    
    // LANGUAGE ENG
    
    #include "LCD16x2_ENG.h"
    
    //#include "LCD20x4_ENG.h"
    
    
    // LANGUAGE RUS
    
    //#include "LCD16x2_ENG.h"
    
    //#include "LCD20x4_rus.h"
    
    Версия 2.5 встала без проблемм(за исключением пищалки), но хотелось попробовать эту!


    И еще, у меня пищалка активная(три контакта) - постоянно пищит)))) что и где в скетче поменять, чтоб нормально работала?
    я так понимаю это тут:
    Код:
    void Buzzer(byte NumBeep, int Period)
    {
      for (byte i=0; i < NumBeep; i++)
    {
    //    digitalWrite (Buzz, HIGH);
        analogWrite (Buzz, 100);
        delay (Period);
    //    digitalWrite(Buzz, LOW);
        analogWrite(Buzz, 0);
        delay(100);
      }
    }
    
     
  11. Phantom

    Phantom Active Member

    Регистрация:
    11.05.2014
    382
    106
    Имя:
    Олег
    По ошибке ругается, что в проетк нет вызываемой функции Gradi();
    Она должна находиться в файле LCD16x2_ENG.h. Проверь, есть ли. Возможно файл не подцепляется. Какой путь до папки с проектом? Попробуй перенести его например в папку C:\1\
    По буззеру. Не встречал никогда 3 контактного. Дай ссылку на него и распиши, каким образом он у тебя подключен.
     
  12. Serg_V

    Serg_V Новенький

    Регистрация:
    07.06.2017
    5
    0
    Имя:
    Сергей
    По ошибке, получается вообще ерунда какая то: если ее исключить (//) то не находит следующую функцию...функции эти описаны в файле ArdBir_2_6_62e ...
    я так понимаю, что должно быть какое то обращение от второстепенных файлов(библиотек) к основному
    может как-то #include <ArdBir_2_6_62e.inо> но у меня не получилось.
    положил в папку C:\1\ файл из форума, ничего в нем не менял, попробовал скомпилировать - аналогичная ошибка в файле LCD20x4_rus.h
    --- сообщения объединены, 18 июл 2017, дата первого сообщения: 18 июл 2017 ---
    До загрузки даже дело не доходит, при проверке скетча ошибки вылетают!
    Ссылки могут видеть только зарегистрированные пользователи. Зарегистрируйтесь или авторизуйтесь для просмотра ссылок!
    подключение зуммера: питание к 5 вольтам ардуино, управление (I/0) к 10 пину ну и масса...
     
  13. Phantom

    Phantom Active Member

    Регистрация:
    11.05.2014
    382
    106
    Имя:
    Олег
    Подключил верно. Тебе необходимо поменять в Funzioni.h
    Код:
    void Buzzer(byte NumBeep, int Period){
      for (byte i=0; i < NumBeep; i++){
        digitalWrite(Buzz, LOW);
        delay (Period);
        digitalWrite (Buzz, HIGH);  
        delay(100);
      }
    }
    и если при запуске будет пищать, то в скетче после строки
    Код:
    pinMode (Buzz, OUTPUT);
    добавь еще
    Код:
    digitalWrite (Buzz, HIGH);
     
  14. Serg_V

    Serg_V Новенький

    Регистрация:
    07.06.2017
    5
    0
    Имя:
    Сергей
    Это сработало, но по окончанию нагрева пищит 3 раза и замолкает, можно не услышать. Можно сделать чтоб пищало пока не нажмешь OK?
    получилось вот так:
    Код:
    void Buzzer(int number)
    {
      for (byte i=0; i < number; i++)
      {
      digitalWrite (Buzz,LOW);
          delay (500);
        digitalWrite(Buzz,HIGH);
         delay(100);
      }
    }
    
     
  15. ЕвгенийBEER

    ЕвгенийBEER Новенький

    Регистрация:
    05.05.2016
    25
    6
    Имя:
    Евгений
    Приобрел дисплей МЭЛТ 20*4,заливал разные прошивки:2.8.3...
    На английском языке все идет отлично,закачиваю на русском-тоже все идет,но как то корявенько написан сам тест,
    т.е. текст с орфографическими ошибками,часть слов на русском часть на англ..Может у кого-нибудь есть файл с нормальным русским текстом?
    Пытался его переделать (перевести) , ничего не получается.А хочу чтоб было на русском)
    Ведь для чего МЭЛТ дисплей покупал)
    Помогите пожалуйста!Заранее огромное спасибо)
     
  16. Serg_V

    Serg_V Новенький

    Регистрация:
    07.06.2017
    5
    0
    Имя:
    Сергей
    Прошивка 2.8.3 экран 16х2 английский - все грузится и работает, но PID параметры не могу установить(половина из них не отражается на экране в PID меню при перелистывании) предыдущая прошивка работает нормально.
     
  17. Rabbitus

    Rabbitus Новенький

    Регистрация:
    08.02.2014
    6
    0
    Имя:
    Андрей
    У меня та же проблема, при установке параметров ПИД и BOIL все моргает, ни черта не видно. На 2.6. такого не наблюдается
     
  18. alexgo

    alexgo Active Member

    Регистрация:
    07.10.2014
    707
    33
    Имя:
    Александр
    в чём особая необходимость в прошивке 2.8.3? чем 2.6.7b10 с фиксами не устроила? по моему в ней допилили практически всё что необходимо для клона
     
    • За За x 1
  19. Phantom

    Phantom Active Member

    Регистрация:
    11.05.2014
    382
    106
    Имя:
    Олег
    в свое время при беглом взгляде на 2.8.3 сделал вывод, что она в первую очередь ориентирована на 20х4 дисплей. для 16х2 недостаточно отлажена. отсюда и моргания. Некорректно сделан вывод информации. Пишет значение, затем поверх него пробелы, затем опять значения - пробелы. Отсюда и моргания. Плюс может строка убежать.. Или править код, или сменить дисплей на 20х4.
     
  20. Rabbitus

    Rabbitus Новенький

    Регистрация:
    08.02.2014
    6
    0
    Имя:
    Андрей
    Так то все устраивает, но я так понял, что в 2.8 реализована звуковая сигнализация при охлаждении ( поправьте, если ошибаюсь). Я использую блок для затирания солодовых дистиллятов и хотелось бы иметь звуковое оповещение в этом режиме
    Спасибо за ответ. Я тоже так подумал, ведь этот глюк проявляется только в одном месте
    --- сообщения объединены, 21 ноя 2017, дата первого сообщения: 20 ноя 2017 ---
    Поковырялся в библиотеке LCD16x2_ENG.h , внес небольшие коррективы. Теперь на 16х2 английское меню нормально работает, без морганий (если ничего не пропустил). Прикрепляю отредактированную LCD16x2_ENG_1.h Можно из нее скопировать код и вставить вместо исходного, или подключить как библиотеку
     

    Вложения:

    • Полезно Полезно x 1