Понедельник, 07.10.2024, 00:26
Радиосервис - ИЗМАИЛ

Меню сайта

Статистика
Форма входа
Друзья сайта

Форум поддержки программ "Tiny Tools" (CPLD/USB-S/USB-F/USB-SPI EJTAG Tiny Tools)

Электроника на KitPost
Поиск
Наш опрос
Оцените мой сайт
1. Отлично
2. Хорошо
3. Неплохо
4. Ужасно
5. Плохо
Всего ответов: 86
Ссылки по uCoz
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • [ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
    Модератор форума: Alexandr_  
    Инфракрасная паяльная станция своими руками на ARDUINO
    Alexandr_
    Дата: Среда, 08.02.2017, 19:55 | Сообщение # 1        
    Генералиссимус
    Группа: Администраторы
    Сообщений: 814
    Статус: Offline

    Форумчане, куплю-продажу и личные сделки выяснять в личке, либо в новом форуме, этот форум для вопросов по электронной части станции.

    Архив по станции от hominidae с проектом efimsu ->здесь
    Проект Леонида, Leonid0071 "UNO-MAX6675-PC" и его доработки на форуме Амперки -> скачать

    Люби грешников, ненавидь сам грех!
     

    Cinema
    Дата: Среда, 29.08.2018, 09:29 | Сообщение # 181        
    Генерал-майор
    Группа: Проверенные
    Сообщений: 618
    Статус: Offline

    DIM ...
    Цитата DIM ()
    Cinema, ваш скетч компилируется, но не грузится экран пустой.Код
    LiquidCrystal_PCF8574 lcd(0x27); //вместо (0x3f) указываем адрес своего дисплея //закомментировать если дисплей без I2C
    
    эта строчка вообще в никуда если честно, даже я далекий от программирования вижу...
    Вам показал наглядно (с картинками), что у меня всё работает. Указал версию IDE. Выложил библиотеки, которые использую.
    Цитата DIM ()
    а в вашем скетче что написано?
    Код
    LiquidCrystal_PCF8574 lcd (0x27); //вместо (0x3f) указываем адрес своего дисплея //закомментировать если дисплей без I2C
    как это понимать? и где указание на кол-во строк и символов как то
    
    Код
    (0x3f, 20, 4)
    ?
    я вас попросил помочь а не давать мне то что не для моего случая писанно
    Как я должен это понимать?
    Комплектующие у нас имеют одинаковые названия, полагаю?
    Моя библиотека этого не требует, на ввод указанных вами данных ругается:

    
    Код
    release270818:5: error: no matching function for call to 'LiquidCrystal_PCF8574::LiquidCrystal_PCF8574(int, int, int)'

    \v1.3.3\release270818\release270818.ino:5:38: note: candidates are:

    In file included from C:\Documents and Settings\Popov\Рабочий стол\v1.3.3\release270818\release270818.ino:4:0:

    \libraries\LiquidCrystal_PCF8574-master\src/LiquidCrystal_PCF8574.h:83:3: note: LiquidCrystal_PCF8574::LiquidCrystal_PCF8574(uint8_t)

       LiquidCrystal_PCF8574(uint8_t adr);

       ^

    \libraries\LiquidCrystal_PCF8574-master\src/LiquidCrystal_PCF8574.h:83:3: note:   candidate expects 1 argument, 3 provided

    \libraries\LiquidCrystal_PCF8574-master\src/LiquidCrystal_PCF8574.h:81:7: note: constexpr LiquidCrystal_PCF8574::LiquidCrystal_PCF8574(const LiquidCrystal_PCF8574&)

     class LiquidCrystal_PCF8574 : public Print {

           ^

    \libraries\LiquidCrystal_PCF8574-master\src/LiquidCrystal_PCF8574.h:81:7: note:   candidate expects 1 argument, 3 provided

    \libraries\LiquidCrystal_PCF8574-master\src/LiquidCrystal_PCF8574.h:81:7: note: constexpr LiquidCrystal_PCF8574::LiquidCrystal_PCF8574(LiquidCrystal_PCF8574&&)
    \libraries\LiquidCrystal_PCF8574-master\src/LiquidCrystal_PCF8574.h:81:7: note:   candidate expects 1 argument, 3 provided

    exit status 1
    no matching function for call to 'LiquidCrystal_PCF8574::LiquidCrystal_PCF8574(int, int, int)'
    Прикрепления: 5466666.jpg (98.9 Kb)

    "Опыт — это то, что получаешь, не получив того, что хотел" © интернет
     

    DIM
    Дата: Среда, 29.08.2018, 12:31 | Сообщение # 182        
    Подполковник
    Группа: Пользователи
    Сообщений: 172
    Статус: Offline

    Cinema, у вас написано 0x27 а далее
    вместо (0x3f) указываем адрес своего дисплея
    это не на что не наводит? абсурдом не попахивает?
    и потом зачем мне это: LiquidCrystal_PCF8574
    ???
    у меня индикатор LCD2004 и у него библиотека LiquidCrystal_I2C, а для нее такой код нужен:
    LiquidCrystal_I2C lcd(0x3f, 20, 4);
    а вы мне что пытаетесь объяснить?
    к тому же во как у меня выглядит экран после заливки того скетча который вы у меня "забраковали".

    а ваш скетч как мне заливать, из ведра? уж если помогаете, то помогайте, а
    не вводите в заблуждение и еще только хуже меня запутывая.
    думаю мои доводы более чем.
    больше не пишите мне, если помочь не хотите или не можете.
    я подожду того кто действительно мне в силах помочь.
    или я спросил на этом портале что то уж невыполнимое?
    Прикрепления: 9711328.png (463.2 Kb)


    Сообщение отредактировал DIM - Среда, 29.08.2018, 12:33
     

    Cinema
    Дата: Среда, 29.08.2018, 14:18 | Сообщение # 183        
    Генерал-майор
    Группа: Проверенные
    Сообщений: 618
    Статус: Offline

    DIM
    Мой lcd 2004 i2c корректно работает с предоставленной мною библиотекой. Адрес моего дисплея на шине i2c именно 0x3F, эта информация получена с помощью скетча i2c scanner. В оригинальном скетче sketch_feb07a1_work от Roniks59, ссылку на который я вам тоже дал, прописана именно LiquidCrystal_PCF8574.h. Остальную информацию изложил в постах выше.
    У вас IDE 1.6.5, кстати. Возможно, у нас немного разные модули i2c на дисплеях, возможно, IDE, используемая вами не дружит с предоставленной мною библиотекой, возможно, что-то ещё...
    Будьте так добры, более не обращайтесь ко мне за помощью.

    "Опыт — это то, что получаешь, не получив того, что хотел" © интернет

    Сообщение отредактировал Cinema - Среда, 29.08.2018, 14:21
     

    DIM
    Дата: Среда, 29.08.2018, 15:17 | Сообщение # 184        
    Подполковник
    Группа: Пользователи
    Сообщений: 172
    Статус: Offline

    Cinema, у вас написано 0x27 в скетче, и вы заявляете что он у вас загружается и работает с индикатором который как вы сами написали
    Цитата Cinema ()
    Адрес моего дисплея на шине i2c именно 0x3F, эта информация получена с помощью скетча i2c scanner.
    как же так? вам пытаюсь открыть глаза на скетч, который по определению не может работать у вас с дисплеем LCD2004!
     

    dscOlga
    Дата: Среда, 29.08.2018, 18:30 | Сообщение # 185        
    Майор
    Группа: Пользователи
    Сообщений: 83
    Статус: Offline

    DIM вы не правы.
    вы пишите
    
    Цитата
    у вас написано 0x27 в скетче, и вы заявляете что он у вас загружается и работает с индикатором который как вы сами написали
    а я вижу в скетче Cinema
    Код
    LiquidCrystal_PCF8574 lcd(0x3F);//вместо (0x3f) указываем адрес своего дисплея //закомментировать если дисплей без I2C
    вы пишите
     
    Цитата
    и где указание на кол-во строк и символов как то
    а вот оно
    
    Код
    lcd.begin(20, 4); //закомментировать если дисплей без I2C
    вы пишите
    
    Цитата
    и потом зачем мне это: LiquidCrystal_PCF8574
    а это библиотека для работы с индикаторами у которых i2c чип PCF8574, такие как правило у всех китайцев.
    вы пишите
     
    Цитата
    вам пытаюсь открыть глаза на скетч, который по определению не может работать у вас с дисплеем LCD2004!
    как не странно для вас, но как раз работает. Проверял у себя, проверял в эмуляторе.
    вы пишите
    
    Цитата
    у меня индикатор LCD2004 и у него библиотека LiquidCrystal_I2C, а для нее такой код нужен:
    LiquidCrystal_I2C lcd(0x3f, 20, 4);
    можно и так, а можно как Cinema LiquidCrystal_PCF8574 библиотеку использовать.

    Добавлено (29.08.2018, 18:41)
    ---------------------------------------------

    Цитата DIM ()
    тут странно что все молчат, а так вас в пору обсудить за такой дилетантизм. а вы еще кому то что то советуете.
    Зачем человека обижать? Он искренне пытался вам помочь. Не красиво...
     

    Cinema
    Дата: Среда, 29.08.2018, 19:56 | Сообщение # 186        
    Генерал-майор
    Группа: Проверенные
    Сообщений: 618
    Статус: Offline

    Цитата Cinema ()
    DIM Попробуйте версию из архива.
    Это предложение, а не продажа, чтоб мне предъявлять претензии.
    Цитата DIM ()
    Cinema, мне нужно только рабочая версия скетча под мой набор:LCD2004 с модулем I2C
    Это заявление.
    Цитата Cinema ()
    Скетч в работе. Будет еще много правок.Можете воспользоваться исходным скетчем под вашу электронику по ссылкам
    Не солгал ни на символ, наоборот, предложил обратиться к первоисточнику.

    P.S.2: Благодаря подсказкам revolover удалось запустить графики на ПК, продолжу попытки оптимизации кода :).
    Прикрепления: 6312706.zip (38.4 Kb)

    "Опыт — это то, что получаешь, не получив того, что хотел" © интернет

    Сообщение отредактировал Cinema - Среда, 29.08.2018, 20:20
     

    Cinema
    Дата: Четверг, 30.08.2018, 00:56 | Сообщение # 187        
    Генерал-майор
    Группа: Проверенные
    Сообщений: 618
    Статус: Offline

    Ещё немного поизголялся над скетчем, переподключил оба модуля MAX6675 так, что освободились два цифровых пина. Остальное отразил в файлах с именем ПРАВКИ в папках с релизами.
    Прикрепления: 6672309.zip (75.9 Kb)

    "Опыт — это то, что получаешь, не получив того, что хотел" © интернет
     

    Cinema
    Дата: Четверг, 30.08.2018, 09:17 | Сообщение # 188        
    Генерал-майор
    Группа: Проверенные
    Сообщений: 618
    Статус: Offline

    Цитата
    Скетч в работе. Будет еще много правок.

    Теперь по теме. MAX6675. В качестве тестовых, термопары применяю от сгоревших нагревательных элементов от термовоздушки Lukey 852 D++. Показания каналов разнятся на ~2*С (с учетом вывода только целых чисел и воздействия фильтров Калмана), даже после "устаканивания" через delay. Перекоммутировал все доступные варианты, менял питание, менял пины подключения... Бестолку всё. Кто-нибудь знает, как в коде скетча или в коде библиотеки MAX6675 это поправить?
    Библиотеку не подключаю, она переписана Dmitrysh (dscOlga) прямо в скетч:
    

    
    Код
    double max6675_read_temp (int ck, int cs, int so)             
    { char i;
        int tmp = 0;
       digitalWrite(cs, LOW);//cs = 0;                            // Stop a conversion in progress
       asm volatile
        (
         " nop"        "\n\t"
        );
       for (i=15;i>=0;i--)
        {  digitalWrite(ck, HIGH);
          asm volatile
        (
         " nop"        "\n\t"
        );
          if( digitalRead(so))
          tmp|=(1<<i);
       

          digitalWrite(ck, LOW);
        asm volatile
        (
         " nop"        "\n\t"
        );
        }
       digitalWrite(cs, HIGH);
       if (tmp & 0x4) {
         return NAN;
       } else
       return ((tmp>>3))*0.25;
    В setup прописать
     
    Код
    pinMode(thermoCS, OUTPUT);
      pinMode(thermoCS2, OUTPUT);
      pinMode(thermoCLK, OUTPUT);
      pinMode(thermoDO, INPUT);
    Вызываем так
    
    Код
    Input1 = filter1(max6675_read_temp (thermoCLK, thermoCS, thermoDO));
    Input2 = filter2(max6675_read_temp (thermoCLK, thermoCS2, thermoDO));

    "Опыт — это то, что получаешь, не получив того, что хотел" © интернет

    Сообщение отредактировал Cinema - Четверг, 30.08.2018, 09:26
     

    dscOlga
    Дата: Четверг, 30.08.2018, 19:02 | Сообщение # 189        
    Майор
    Группа: Пользователи
    Сообщений: 83
    Статус: Offline

    Цитата Cinema ()
    Кто-нибудь знает, как в коде скетча или в коде библиотеки MAX6675 это поправить?
    Если вы хотите выровнять температуру по каналам, то я думаю термопары разные и дают разные показания. Библиотека МАХ6675 не причем, там просто в цифровом виде получаем данные по SPI о текущей температуре. В скетче можно поправку делать, только нужно знать какой канал врет. Также нужно отметить, что МАХ6675 сам может врать до 5 градусов в плюс или минус.
     

    Cinema
    Дата: Четверг, 30.08.2018, 21:28 | Сообщение # 190        
    Генерал-майор
    Группа: Проверенные
    Сообщений: 618
    Статус: Offline

    Цитата dscOlga ()
    МАХ6675 сам может врать до 5 градусов в плюс или минус.
    :( . Знаю.
    В общем, выяснил, - в моём случае разница из-за max6675. Одна и инициализируется медленнее, чем другая.
    Если в скетче закомментировать
    Код
    float Input_f1, Input_f2;  //это для графиков на ПК
    и прописать их взамен тут
    
    Код
    double Setpoint1, Input1, Input_f1, Output1;
    double Setpoint2, Input2, Input_f2, Output2;
    то на ПК график выводится, визуально, практически без изменений. Беспокоит и то, что при показаниях дисплея 28*С на обоих каналах, графики по-прежнему не совпадают. - Наводит на мысль о неправильном округлении значений внутри скетча для вывода на LCD. Это еще опрос только 1 раз в секунду и фильтр Калмана... Возможно, ситуацию прояснил-бы вывод температуры с одним-двумя знаками после запятой... А ресурсы UNO... Пока графикам ИМХО верится больше, чем дисплею sad . Надо обе термопары погреть одинаково и посмотреть зависимость расхождения на графиках во всем рабочем диапазоне станции... Если нелинейное, то хрена-с-два это исправим sad .

    "Опыт — это то, что получаешь, не получив того, что хотел" © интернет
     

    DIM
    Дата: Понедельник, 03.09.2018, 13:07 | Сообщение # 191        
    Подполковник
    Группа: Пользователи
    Сообщений: 172
    Статус: Offline

    ищу реальную помощь т.е.нужен РЕАЛЬНО рабочий скетч под max6675, lcd2004, arduino UNO и подогрев выполненный на галогеновых лампах и керамическом верхе.
    не ужели тут нет рабочего скетча, а одни наработки? я работаю и экспериментами некогда заниматься, по этому нужен скетч который уже работает.
     

    mon
    Дата: Понедельник, 03.09.2018, 19:41 | Сообщение # 192        
    Подполковник
    Группа: Модераторы
    Сообщений: 191
    Статус: Offline

    Цитата DIM ()
    РЕАЛЬНО рабочий скетч под max6675, lcd2004, arduino UNO
    Если вам нужно реально рабочее,нужно сесть и на кодить с нуля и за одно воплотите в приборе тот функционал который вам нужен,там делов то...это ж самая ленивая среда,а раз уж некогда заниматься сходите на амперку, там фрилансеров-ардуинщиков вагон думаю найдете,да и купить сейчас готовое решение не проблема.
     

    dscOlga
    Дата: Понедельник, 03.09.2018, 20:22 | Сообщение # 193        
    Майор
    Группа: Пользователи
    Сообщений: 83
    Статус: Offline

    Цитата
    нужен РЕАЛЬНО рабочий скетч под max6675, lcd2004, arduino UNO и подогрев выполненный на галогеновых лампах и керамическом верхе.

    Здесь все скетчи реально работающие. Нужно только выбрать по душе и правильно настроить. Такого что залил и забыл не бывает. У всех разные нагреватели, разная теплоемкость, разная мощность и эффективность, поэтому каждый скетч нужно допиливать под свои потребности.
    Ну а если некогда допиливать, то 
    Цитата
    купить сейчас готовое решение не проблема.
    Если все таки будете делать своё, то мой вам совет, переделайте низ. У вас излучение галогенок ушло в видимую область, а это приведёт к "загару" плат, т.е поверхность плат будет перегреваться, а сама плата толком не прогреется.


    Сообщение отредактировал dscOlga - Понедельник, 03.09.2018, 20:23
     

    dscOlga
    Дата: Понедельник, 03.09.2018, 20:40 | Сообщение # 194        
    Майор
    Группа: Пользователи
    Сообщений: 83
    Статус: Offline

    Цитата Cinema ()
    при показаниях дисплея 28*С на обоих каналах, графики по-прежнему не совпадают.
    А чему вы удивляетесь, на дисплей вы выводите целые значения, а на график с плавающей точкой, т.е с дробной частью. Термопары разные, МАХ-ы разные, графики будут отличаться в пределах погрешностей термопар и преобразователей.
    Цитата Cinema ()
    Наводит на мысль о неправильном округлении значений внутри скетча для вывода на LCD.
    Нет, там все нормально, отбрасываем дробную часть и на LCD.
    Цитата Cinema ()
    ... ... ..и фильтр Калмана...
    А вот над этим стоит задуматься. Этот фильтр конкретно подтормаживает.
    Цитата Cinema ()
    ... А ресурсы UNO...
    Вот вам скетч, который вы вылаживали ранее. Я его немного допилил, отпилил, покромсал. Выбросил библиотеку ПИД, вместо неё 2 функции для ПИД, повыкашивал размеры переменных, attachinterrupt в setup переместил и ещё не помню. Поиграйтесь, может вам что понравиться или пригодится. Возможно коэффициенты подкрутить придется.
    Размер скетча уменьшился процентов на 10 и ОЗУ тоже там почище стало.
    Прикрепления: release2908_2_D.ino (51.5 Kb)


    Сообщение отредактировал dscOlga - Понедельник, 03.09.2018, 20:42
     

    DIM
    Дата: Вторник, 04.09.2018, 02:30 | Сообщение # 195        
    Подполковник
    Группа: Пользователи
    Сообщений: 172
    Статус: Offline

    Цитата dscOlga ()
    то мой вам совет, переделайте низ.
    уже переделал как и у большинства конструкций которые видел в инете.

    не пойму как она может быть невидимой это же не нихром?
    Прикрепления: 1519902.jpg (347.2 Kb)


    Сообщение отредактировал DIM - Вторник, 04.09.2018, 02:31
     

    Поиск: