Друзья сайта |
Форум поддержки программ "Tiny Tools" (CPLD/USB-S/USB-F/USB-SPI EJTAG Tiny Tools)
Электроника на KitPost
|
Наш опрос |
Оцените мой сайт
Всего ответов: 86
|
|
Инфракрасная паяльная станция своими руками на ARDUINO
| |
Alexandr_ | Дата: Среда, 08.02.2017, 19:55 | Сообщение # 1 |
Генералиссимус
Группа: Администраторы
Сообщений: 814
Статус: Offline
| Форумчане, куплю-продажу и личные сделки выяснять в личке, либо в новом форуме, этот форум для вопросов по электронной части станции.
Архив по станции от hominidae с проектом efimsu ->здесь Проект Леонида, Leonid0071 "UNO-MAX6675-PC" и его доработки на форуме Амперки -> скачать
Люби грешников, ненавидь сам грех!
|
|
|
Пользователи поблагодарившие Alexandr_ за этот пост: |
|
|
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)'
"Опыт — это то, что получаешь, не получив того, что хотел" © интернет
|
|
|
Пользователи поблагодарившие Cinema за этот пост: |
|
|
DIM | Дата: Среда, 29.08.2018, 12:31 | Сообщение # 182 |
Подполковник
Группа: Пользователи
Сообщений: 172
Статус: Offline
| Cinema, у вас написано 0x27 а далее вместо (0x3f) указываем адрес своего дисплея это не на что не наводит? абсурдом не попахивает? и потом зачем мне это: LiquidCrystal_PCF8574 ??? у меня индикатор LCD2004 и у него библиотека LiquidCrystal_I2C, а для нее такой код нужен: LiquidCrystal_I2C lcd(0x3f, 20, 4); а вы мне что пытаетесь объяснить? к тому же во как у меня выглядит экран после заливки того скетча который вы у меня "забраковали".
а ваш скетч как мне заливать, из ведра? уж если помогаете, то помогайте, а не вводите в заблуждение и еще только хуже меня запутывая. думаю мои доводы более чем. больше не пишите мне, если помочь не хотите или не можете. я подожду того кто действительно мне в силах помочь. или я спросил на этом портале что то уж невыполнимое?
Сообщение отредактировал DIM - Среда, 29.08.2018, 12:33 |
|
|
Пользователи поблагодарившие DIM за этот пост: |
|
|
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 |
|
|
Пользователи поблагодарившие Cinema за этот пост: |
|
|
DIM | Дата: Среда, 29.08.2018, 15:17 | Сообщение # 184 |
Подполковник
Группа: Пользователи
Сообщений: 172
Статус: Offline
| Cinema, у вас написано 0x27 в скетче, и вы заявляете что он у вас загружается и работает с индикатором который как вы сами написали Цитата Cinema ( ) Адрес моего дисплея на шине i2c именно 0x3F, эта информация получена с помощью скетча i2c scanner. как же так? вам пытаюсь открыть глаза на скетч, который по определению не может работать у вас с дисплеем LCD2004!
|
|
|
Пользователи поблагодарившие DIM за этот пост: |
|
|
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 ( ) тут странно что все молчат, а так вас в пору обсудить за такой дилетантизм. а вы еще кому то что то советуете. Зачем человека обижать? Он искренне пытался вам помочь. Не красиво...
|
|
|
Пользователи поблагодарившие dscOlga за этот пост: |
|
|
Cinema | Дата: Среда, 29.08.2018, 19:56 | Сообщение # 186 |
Генерал-майор
Группа: Проверенные
Сообщений: 618
Статус: Offline
| Цитата Cinema ( ) DIM Попробуйте версию из архива. Это предложение, а не продажа, чтоб мне предъявлять претензии.
Цитата DIM ( ) Cinema, мне нужно только рабочая версия скетча под мой набор:LCD2004 с модулем I2C Это заявление.
Цитата Cinema ( ) Скетч в работе. Будет еще много правок.Можете воспользоваться исходным скетчем под вашу электронику по ссылкам Не солгал ни на символ, наоборот, предложил обратиться к первоисточнику.
P.S.2: Благодаря подсказкам revolover удалось запустить графики на ПК, продолжу попытки оптимизации кода :).
"Опыт — это то, что получаешь, не получив того, что хотел" © интернет
Сообщение отредактировал Cinema - Среда, 29.08.2018, 20:20 |
|
|
Пользователи поблагодарившие Cinema за этот пост: |
|
|
Cinema | Дата: Четверг, 30.08.2018, 00:56 | Сообщение # 187 |
Генерал-майор
Группа: Проверенные
Сообщений: 618
Статус: Offline
| Ещё немного поизголялся над скетчем, переподключил оба модуля MAX6675 так, что освободились два цифровых пина. Остальное отразил в файлах с именем ПРАВКИ в папках с релизами.
"Опыт — это то, что получаешь, не получив того, что хотел" © интернет
|
|
|
Пользователи поблагодарившие Cinema за этот пост: |
|
|
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 |
|
|
Пользователи поблагодарившие Cinema за этот пост: |
|
|
dscOlga | Дата: Четверг, 30.08.2018, 19:02 | Сообщение # 189 |
Майор
Группа: Пользователи
Сообщений: 83
Статус: Offline
| Цитата Cinema ( ) Кто-нибудь знает, как в коде скетча или в коде библиотеки MAX6675 это поправить? Если вы хотите выровнять температуру по каналам, то я думаю термопары разные и дают разные показания. Библиотека МАХ6675 не причем, там просто в цифровом виде получаем данные по SPI о текущей температуре. В скетче можно поправку делать, только нужно знать какой канал врет. Также нужно отметить, что МАХ6675 сам может врать до 5 градусов в плюс или минус.
|
|
|
Пользователи поблагодарившие dscOlga за этот пост: |
|
|
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... Пока графикам ИМХО верится больше, чем дисплею . Надо обе термопары погреть одинаково и посмотреть зависимость расхождения на графиках во всем рабочем диапазоне станции... Если нелинейное, то хрена-с-два это исправим .
"Опыт — это то, что получаешь, не получив того, что хотел" © интернет
|
|
|
Пользователи поблагодарившие Cinema за этот пост: |
|
|
DIM | Дата: Понедельник, 03.09.2018, 13:07 | Сообщение # 191 |
Подполковник
Группа: Пользователи
Сообщений: 172
Статус: Offline
| ищу реальную помощь т.е.нужен РЕАЛЬНО рабочий скетч под max6675, lcd2004, arduino UNO и подогрев выполненный на галогеновых лампах и керамическом верхе. не ужели тут нет рабочего скетча, а одни наработки? я работаю и экспериментами некогда заниматься, по этому нужен скетч который уже работает.
|
|
|
Пользователи поблагодарившие DIM за этот пост: |
|
|
mon | Дата: Понедельник, 03.09.2018, 19:41 | Сообщение # 192 |
Подполковник
Группа: Модераторы
Сообщений: 191
Статус: Offline
| Цитата DIM ( ) РЕАЛЬНО рабочий скетч под max6675, lcd2004, arduino UNO Если вам нужно реально рабочее,нужно сесть и на кодить с нуля и за одно воплотите в приборе тот функционал который вам нужен,там делов то...это ж самая ленивая среда,а раз уж некогда заниматься сходите на амперку, там фрилансеров-ардуинщиков вагон думаю найдете,да и купить сейчас готовое решение не проблема.
|
|
|
Пользователи поблагодарившие mon за этот пост: |
|
|
dscOlga | Дата: Понедельник, 03.09.2018, 20:22 | Сообщение # 193 |
Майор
Группа: Пользователи
Сообщений: 83
Статус: Offline
| Цитата нужен РЕАЛЬНО рабочий скетч под max6675, lcd2004, arduino UNO и подогрев выполненный на галогеновых лампах и керамическом верхе. Здесь все скетчи реально работающие. Нужно только выбрать по душе и правильно настроить. Такого что залил и забыл не бывает. У всех разные нагреватели, разная теплоемкость, разная мощность и эффективность, поэтому каждый скетч нужно допиливать под свои потребности. Ну а если некогда допиливать, то Цитата купить сейчас готовое решение не проблема. Если все таки будете делать своё, то мой вам совет, переделайте низ. У вас излучение галогенок ушло в видимую область, а это приведёт к "загару" плат, т.е поверхность плат будет перегреваться, а сама плата толком не прогреется.
Сообщение отредактировал dscOlga - Понедельник, 03.09.2018, 20:23 |
|
|
Пользователи поблагодарившие dscOlga за этот пост: |
|
|
dscOlga | Дата: Понедельник, 03.09.2018, 20:40 | Сообщение # 194 |
Майор
Группа: Пользователи
Сообщений: 83
Статус: Offline
| Цитата Cinema ( ) при показаниях дисплея 28*С на обоих каналах, графики по-прежнему не совпадают. А чему вы удивляетесь, на дисплей вы выводите целые значения, а на график с плавающей точкой, т.е с дробной частью. Термопары разные, МАХ-ы разные, графики будут отличаться в пределах погрешностей термопар и преобразователей.
Цитата Cinema ( ) Наводит на мысль о неправильном округлении значений внутри скетча для вывода на LCD. Нет, там все нормально, отбрасываем дробную часть и на LCD.
Цитата Cinema ( ) ... ... ..и фильтр Калмана... А вот над этим стоит задуматься. Этот фильтр конкретно подтормаживает.
Цитата Cinema ( ) ... А ресурсы UNO... Вот вам скетч, который вы вылаживали ранее. Я его немного допилил, отпилил, покромсал. Выбросил библиотеку ПИД, вместо неё 2 функции для ПИД, повыкашивал размеры переменных, attachinterrupt в setup переместил и ещё не помню. Поиграйтесь, может вам что понравиться или пригодится. Возможно коэффициенты подкрутить придется. Размер скетча уменьшился процентов на 10 и ОЗУ тоже там почище стало.
Сообщение отредактировал dscOlga - Понедельник, 03.09.2018, 20:42 |
|
|
Пользователи поблагодарившие dscOlga за этот пост: |
|
|
DIM | Дата: Вторник, 04.09.2018, 02:30 | Сообщение # 195 |
Подполковник
Группа: Пользователи
Сообщений: 172
Статус: Offline
| Цитата dscOlga ( ) то мой вам совет, переделайте низ. уже переделал как и у большинства конструкций которые видел в инете.
не пойму как она может быть невидимой это же не нихром?
Сообщение отредактировал DIM - Вторник, 04.09.2018, 02:31 |
|
|
Пользователи поблагодарившие DIM за этот пост: |
|
|
|