1. Уважаемые форумчане! Убедительная просьба, используйте наиболее подходящие темы для своих сообщений. Спасибо за понимание.
    Скрыть объявление

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

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

Поделиться этой страницей

  1. DrCasper

    DrCasper Участник

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

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

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

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

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

    bojarin Участник

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

    DrCasper Участник

    Регистрация:
    12.06.2014
    125
    15
    Имя:
    Дмитрий
    Не нужно ничего удалять. Разные файлы используются для разных языков/плат. Выбор нужной осуществляется на этапе компиляции через указание соответствующих констант.
    "Весь проект целиком не совсем верный" -- это из чего сделан такой вывод, если у всех все собирается и работает? Может, в консерватории что-то поправить? (с)
    "Ошибок нет" -- это подтверждение того, что "весь проект целиком", как раз, верный. А экран не показывает, потому что может быть неправильно подключен, либо (если, например, другие тестовые скетчи работают нормально с экраном), пины прописаны неверно. Указываются они в 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
    18
    6
    Имя:
    Евгений
    Все программки я уже давно прогнал.Только эта не идет!
     
  6. ЕвгенийBEER

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

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

    DrCasper Участник

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

    bojarin Участник

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

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

    Регистрация:
    18.11.2013
    445
    16
    Перепрошить на загрузчик УНО
    --- сообщения объединены, 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
    296
    81
    Имя:
    Олег
    По ошибке ругается, что в проетк нет вызываемой функции 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
    296
    81
    Имя:
    Олег
    Подключил верно. Тебе необходимо поменять в 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
    18
    6
    Имя:
    Евгений
    Приобрел дисплей МЭЛТ 20*4,заливал разные прошивки:2.8.3...
    На английском языке все идет отлично,закачиваю на русском-тоже все идет,но как то корявенько написан сам тест,
    т.е. текст с орфографическими ошибками,часть слов на русском часть на англ..Может у кого-нибудь есть файл с нормальным русским текстом?
    Пытался его переделать (перевести) , ничего не получается.А хочу чтоб было на русском)
    Ведь для чего МЭЛТ дисплей покупал)
    Помогите пожалуйста!Заранее огромное спасибо)
     
  16. Serg_V

    Serg_V Новенький

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