на дисплей выводится "887", а не "888" и соответственно не работает
if(soldd == 888 || soldd < 1) //если перегрев, обрыв или к.з. терморезистора { myGLCD.print("(!)",66,0); sol = false; analogWrite(9,0); ...
и паяльник жарит во всю... Не доходит до меня.
Я уже потом вместо жала поставил резистор и от батарейки через делитель имитировал термопару и тогда обратил внимание на то, что при АЦП больше 800 конфликтует измерение и нагрев(при чем при разных делителях ШИМ - прробывал от 1 до 64), т.е. идет провал показаний температуры, - буду уменьшать усиление ОУ, чтобы попасть в диапазон до 800... но это никак не влияло на то с чего я начал... - 887! Хелп! плз...
if (soldt <= 182) // короткое замыкание или замерз soldd = 0; if (soldt >= 670) // перегрев или обрыв soldd = 888;
if(sol==false) analogWrite(3,0); // остановить ШИМ если нагрев запрещен else analogWrite(3,Output); // иначе запустить ШИМ
soldd = soldd+corr; // поправка введенная в программу для ручного ввода (подгон температуры по внешнему датчику)
перемести последнюю строку в этом куске на верх, чтобы получилось вот так:
soldd = soldd+corr; // поправка введенная в программу для ручного ввода (подгон температуры по внешнему датчику)
if (soldt <= 182) // короткое замыкание или замерз soldd = 0; if (soldt >= 670) // перегрев или обрыв soldd = 888;
if(sol==false) analogWrite(3,0); // остановить ШИМ если нагрев запрещен else analogWrite(3,Output); // иначе запустить ШИМ
Все дело вот в этой строке : soldd = soldd+corr; вернее в ее положении в коде (это еще один мой косяк, недосмотрел)
Или вообще удали эту строку. ( я у себя оставил, так как в меню есть корректировка температуры, если удалить, то и меню переписывать все надо, сейчас пока не до этого)
Вот спасибо! А то я уже все глаза проглядел в скетче (с моими-то познаниями ) приду с работы попробую. А на счет термопары тут немного говорится об этом, и есть такая картинка:
которая подтверждает результаты моих измерений(к стати тоже ksger t12), и из которых следует, что при 20 градусах ЭДС отсутствует, но я все равно перепроверю, когда придут новые жала... Я брал мультиметр RM102 становился просто на контакты и у меня появлялась напруга около 50 мкВ только когда зажимал жало в кулак, а дальше как на картинке (+... -), а до того, при комнатной +18 - 0.000мВ...
Опять же ничего сказать не могу по поводу ЭДС. Я взял жало и подключил его к мультиметру, но не на измерение миливольт, а на измерение температуры (то есть вместо штатной термопары). Измеряет, показания не соответствуют реальности, но цифры есть. При комнатной температуре показывает 17 градусов. Если подставить под струю холодной воды из под крана, показывает 10 градусов. В морозилку засовывал, показывает 5 градусов.
А мой мультик тоже с жалом 16 градусов показывает, - правда без него(щупы накоротко) - тоже 16! А в кулаке - 24 тут трудно что-то сказать... , - буду ждать новые жала... Там посмотрим.
Запихнул я сей девайс пока в корпус БП(там же и сам БП на 24 В - из донора переделал). Колхоз, - над дизайном пока не думал...
Ой!!! ШИМ пропал... Сразу не посмотрел, - увидел, что на дисплее ШИМ 100% и обрадовался, а подключен был хвостом к компу, вроде пробежался по ключевым моментам, было все ОК, а 24В когда подал заметил, что паяльник холодный, - думал полевик пробило. Потом глянул на выход ШИМ на МК , а там при 100% пусто - "0", - видно где-то "зацепили", хотя вроде бы тут все ОК:
soldd = soldd+corr; // поправка введенная в программу для ручного ввода (подгон температуры по внешнему датчику) if (soldt <= 1) // короткое замыкание или замерз soldd = 0; if (soldt >= 1010) // перегрев или обрыв soldd = 888;
if(sol==false)
analogWrite(9,0); // остановить ШИМ если нагрев запрещен else analogWrite(9,Output); // иначе запустить ШИМ (стало)
может чего-то последней строчке не хватает вначале...
Все дело было в делителе ШИМ. Я оставил последний раз - 8, а сейчас откатился на прежние позиции и все появилось. Поэксперементировал и оказалось что уже при делителе 6 - ШИМа нет, - сейчас оставил 5. Так что прошу прощения за беспокойство и спасибо.
Вынужден взять тайм-аут: механическая смерть жала, - хвостик застрял в ручке и оторвался вывод нагревателя у самого жала , Жду новые...
byte Iron_1=26; // переменная в которой хранится номер сменной насадки (по умолчанию 1) byte Iron_2=30; // переменная в которой хранится номер сменной насадки (по умолчанию 2) byte Iron_3=36; // переменная в которой хранится номер сменной насадки (по умолчанию 3) byte Iron_4=29; // переменная в которой хранится номер сменной насадки (по умолчанию 4)
byte Iron_1_old=26; // переменная в которой хранится номер сменной насадки для программы статуса калибровки byte Iron_2_old=30; // переменная в которой хранится номер сменной насадки для программы статуса калибровки byte Iron_3_old=36; // переменная в которой хранится номер сменной насадки для программы статуса калибровки byte Iron_4_old=29; // переменная в которой хранится номер сменной насадки для программы статуса калибровки
но у меня пока нечего не получилось... ("видимость 0 - иду по приборам" ) что я не так сделал или не доделал, - подскажите пожалуйста...
addr = 22; Iron_1 = EEPROMReadInt(addr); // считать значение Iron_1 из еепром if (Iron_1 <-1 || Iron_1 >37) Iron_1 = 0;
addr = 24; Iron_2 = EEPROMReadInt(addr); // считать значение Iron_2 из еепром if (Iron_2 <-1 || Iron_2 >37) Iron_2 = 1;
Iron_3 = EEPROMReadInt(26); // считать значение Iron_3 из еепром if (Iron_3 <-1 || Iron_3 >37) Iron_3 = 2;
Iron_4 = EEPROMReadInt(28); // считать значение Iron_4 из еепром if (Iron_4 <-1 || Iron_4 >37) Iron_4 = 3;
И замени на это:
addr = 22; Iron_1 = EEPROMReadInt(addr); // считать значение Iron_1 из еепром if (Iron_1 <-1 || Iron_1 >37) Iron_1 = 26;
addr = 24; Iron_2 = EEPROMReadInt(addr); // считать значение Iron_2 из еепром if (Iron_2 <-1 || Iron_2 >37) Iron_2 = 30;
Iron_3 = EEPROMReadInt(26); // считать значение Iron_3 из еепром if (Iron_3 <-1 || Iron_3 >37) Iron_3 = 36;
Iron_4 = EEPROMReadInt(28); // считать значение Iron_4 из еепром if (Iron_4 <-1 || Iron_4 >37) Iron_4 = 29;
То есть ты поменяешь номера насадок при начальном считывании ЕЕПРОМ. При перепрошивке в ЕЕПРОМ записано что то другое (FF, а это не вписывается в нужный диапазон), потому по умолчанию выбираются насадки с номерами 0, 1, 2, 3. Ты же заменяешь номера по умолчанию теми которые надо тебе. Вот и все. byte Iron_1, byte Iron_1_old можно вообще не трогать.
Хотел спросить: У меня в конструкции кнопка + вверху а - внизу, и когда начинаешь что-то делать в меню получается психологическая путаница: жмешь верхнюю кнопку, а курсор скачет вниз. Вопрос: нужно весь скетч перепахивать или можно отделаться легким испугом - там ведь кнопки + и - имеют много функций?
Вот спасибо! Все получилось! Буду мучить дальше... Сейчас бьюсь с помехами, - цифры скачут во время разогрева жала(поставил светодиод для контроля): как потухнет - цифры спокойные, только моргнет - +- 5 градусов - как подорванные. Где-то лезет помеха... Бум бороться!
И все таки не могу никак завести девайс. При включении показывает "887" с паяльником и без. При нажатии кнопки "ON|OFF" справа вверху показывает "ON".На затворе транзистора 24 в, на 5 ноге LM 0 В. Все исправно, где надо звонится. Что показывается на экране при включении? Как определяется обрыв? Что делать?
И все таки не могу никак завести девайс. При включении показывает "887" с паяльником и без. При нажатии кнопки "ON|OFF" справа вверху показывает "ON".На затворе транзистора 24 в, на 5 ноге LM 0 В. Все исправно, где надо звонится. Что показывается на экране при включении? Как определяется обрыв? Что делать?
Прошить вот эту прошивку. Если не менялись пины. Или править скетч под себя (во вложении). В скетче исправлена еще одна ошибка.
При обрыве будет 888 и значек восклицательно знака. Обрыв - это значит напряжение на выходе операционного усилителя выходит за пределы измерения микроконтроллера. Проверяй напряжение на выходе (7) операционника. Возможно неисправен. Или сгорел аналоговый вход контроллера.
Проще всего проверить что приходит на контроллер , это включить режим калибровки, на дисплее будут показания ADC, то есть значения считанные с усилителя термопары.
Если прошивка со 2 страницы то она и залита. При индикации при включении '887' восклицательного знака нет. На память на 7 ноге lm около 2в. По всей видимости окаменела часть камня?
Если прошивка со 2 страницы то она и залита. При индикации при включении '887' восклицательного знака нет. На память на 7 ноге lm около 2в. По всей видимости окаменела часть камня?
Прошей, то что прислал в предпоследнем сообщении. 2 вольта на выходе операционника - это много, надо меньше. Скорее всего с усилителем что то не так.
Прошил. Теперь "888" и "!". На 23 ноге меги 0,017в, на 7 ноге лм 0,012в. Сначала я тоже подумал что лмка, впаял другую эффект тотже.
В контроллере дело. Аналоговый вход погорел. Можно попробовать перекинуть измерительный вход. Использовать 19 или 22 ногу контроллера. Только править скетч надо будет.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения