|
Виж темите без отговор | Виж активните теми
Дата и час: Пон Юли 27, 2026 8:04 pm
Програматор за сушилня с PIC16f1937
| Автор |
Съобщение |
|
itso.t
Ранг: Форумен бог
Регистриран на: Чет Фев 03, 2005 2:21 am Мнения: 12765 Местоположение: София
|
 Re: Програматор за сушилня с PIC16f1937
Лошо. За съжаление това е нерешим проблем.
|
| Нед Окт 19, 2014 9:52 am |
|
 |
|
Cekins
Ранг: Форумен бог
Регистриран на: Сря Апр 20, 2005 12:02 pm Мнения: 9119 Местоположение: Разград
|
 Re: Програматор за сушилня с PIC16f1937
Ами от към програмиране - такива неща като задържане на едно място в програмата въобще не трябва да съществуват. Командата DelayMS гледай да я използваш само при начално стартиране. След като се влезе в основното тяло на програмта, всички изчаквания трябва да ти се генерират от таймери и прекъсвания. Всяко нещо се прави когато трябва - в главанта си част само се проверява кога му е дошло времето. Щото докато чакаш 200 милисекунди да стане едно, може нещо друго да му дойде времето и да си мине ей така. Щом на 64MHz едва успява да си свърши работата, значи програмата ти е пълна с такива писанки. Сега да ти давам примери? Бях правил преди време един контролер който управлява 6 инвертора, следи 5 импулсни входа за обороти, има към 30 7 сегментни цифри всичките на динамична индикация от процесора и следи 10-тина аналогови входа + 30 тина бутона на матрица. Пикчето беше нещо от 86хх серията с много крака. доколкото си спомням си го търкалях на 40 MHz, ама можеше да се справи и на по-малко. И беше предвидено да следи още 8 аналогови входа за температура и да управлява 8 изхода за солид стейт релета на нагреватели с ПИД управление на всичките, барабар пак с динамична индикация на всичките температури и съответно бутончета за всичките канали.
|
| Нед Окт 19, 2014 11:49 am |
|
 |
|
bobi534
Ранг: Новодошъл
Регистриран на: Сря Юли 30, 2014 10:29 pm Мнения: 116 Местоположение: Пловдив
|
 Re: Програматор за сушилня с PIC16f1937
Тъй като съм доста назад с материала със страх поглеждам към таймери и прекъсвания, но със всеки ъпдейт ще променям по малко докато всичко си дойде на мястото.
|
| Нед Окт 19, 2014 12:39 pm |
|
 |
|
itso.t
Ранг: Форумен бог
Регистриран на: Чет Фев 03, 2005 2:21 am Мнения: 12765 Местоположение: София
|
 Re: Програматор за сушилня с PIC16f1937
Нищо сложно няма в прекъсванията и таймерите. Конфигурираш прекъсванията на таймерите и самите таймери - източник на тактов сигнал, прескелери и постскелери и т.н. Щом аз се оправям с тях, дето съм абсолютен блондин на тема програмиране, значи не е сложно... Има куп примери като код. Едно от важните условия е да имаш минимум обработване на данни в прекъсването. Казано иначе, програмата да е в процедурата за прекъсване възможно най-кратко време. Апропо, наистина ще е хубаво да запоиш някакъв филтриращ кондензатор около термистора...
|
| Нед Окт 19, 2014 1:09 pm |
|
 |
|
Cekins
Ранг: Форумен бог
Регистриран на: Сря Апр 20, 2005 12:02 pm Мнения: 9119 Местоположение: Разград
|
 Re: Програматор за сушилня с PIC16f1937
А още по хубаво е да се прекара през някакъв активен Lowpass филтър и съответно да се подаде стабилен рефърънс. Вече не помня дали си споменал как точно ти се захранва пик-чето ама ако 5-те волта са нестабилни и играят - надявай се да получиш читав резултат от ацп-то. Даже можеш и Vref+ и Vref- да му подадеш и те да са ти минимума и максимума напрежение(температура) които очакваш - ще получиш още по-добри резултати.
|
| Нед Окт 19, 2014 2:39 pm |
|
 |
|
Desert Leo
Ранг: Форумен бог
Регистриран на: Чет Фев 10, 2005 3:25 pm Мнения: 5677 Местоположение: София
|
 Re: Програматор за сушилня с PIC16f1937
Такова слънце днес, а те сушилня ми оправат... 
|
| Нед Окт 19, 2014 4:04 pm |
|
 |
|
bobi534
Ранг: Новодошъл
Регистриран на: Сря Юли 30, 2014 10:29 pm Мнения: 116 Местоположение: Пловдив
|
 Re: Програматор за сушилня с PIC16f1937
Де да беше винаги слънце... 
|
| Пон Окт 20, 2014 9:54 am |
|
 |
|
bobi534
Ранг: Новодошъл
Регистриран на: Сря Юли 30, 2014 10:29 pm Мнения: 116 Местоположение: Пловдив
|
 Re: Програматор за сушилня с PIC16f1937
Интересни неща се случват при мен!!! 1. Най-напред да започна със софтуера. Оказа се, че показанието на дисплея /5 разряда при 10 битов ADC/ е толкова дълго заради липсата на този ред: ===Right justified===. Тоест ADC RESULT REGISTER не е бил правилно конфигуриран и отчитането на двете думи ADRESL и ADRESH не става правилно. 2. Така или иначе не можах да мина без осцилоскоп. В изхода на импулсното захранване за 5 волта отчетох 0.6 волта импулсни смущения от работата на импулсното. Пуснах 5 волта от стабилизиран ТЕС със свален лицев панел /другото захранване от импулсното е 12в за трите релета/. Показанието "заспа". С друг подобен термистор ми показа 210 и се променяше от 210 до 211, което си е нищо. При подаване на плюсов потенциал на аналоговия вход на ПИК-а показанието отиде на 1020, което си е супер. Без термистор ми показва чиста нула. Зарадвах се. Свързах допълнителен кондензатор 1800uF на платката под ПИК-а и още два керамични по 1uF на двете му двойки захранващи крачета. Захраних първичната страна на изпулсното - всичко ОК. Дотук добре! Качих управляващия панел на сушилнята, навързах всичко, пуснах захранване ......и дисплея пак затанцува!?! Последователни показания примерно - 50, 120, 200, 220 ,134 и т.н. Мерих кабелите до термистора, куплунзите за слаби връзки. Докато мерих всичко беше ОК. Не мога да си обясня кое толкова се промени за да играе показанието толкова...Имам най-вече съмнения в куплунзите от и до термистора, тъй като не са запоени, а са пресовани в пиновете. Довечера пак ще има борба.. 
|
| Пон Окт 20, 2014 10:17 am |
|
 |
|
bobi534
Ранг: Новодошъл
Регистриран на: Сря Юли 30, 2014 10:29 pm Мнения: 116 Местоположение: Пловдив
|
 Re: Програматор за сушилня с PIC16f1937
При захранване от мрежа: След измерванията се вижда, че напрежението на ПИК-а е добре стабилизирано, но това, което е отива към термистора е с големи отклонения /0,4в импулсни смущения по осцилоскоп/ и вероятно лъже контролера. Смятам да захраня термистора през стабилизирано захранване от TL431. Може би ще сложа и кондензатор с компромисна стойност на входа на аналоговия канал, така че следенето да не стане много по-тромаво, а и стойността на температурата да не бяга много по екрана.
|
| Вто Окт 21, 2014 12:15 am |
|
 |
|
bobi534
Ранг: Новодошъл
Регистриран на: Сря Юли 30, 2014 10:29 pm Мнения: 116 Местоположение: Пловдив
|
 Re: Програматор за сушилня с PIC16f1937
Да се похваля, че реших проблема с разходимостта на показанията на АЦП..! Мислех да захраня термистора през стабилизатор LM431, но в последствие реших да сложа вместо термистор - температурен сензор LM335. Ами няма ги вече тия разходки на показанието по дисплея. При отчетена стойност 680 /около 70градуса/ показанието "бяга" с 5 до 8 единици, което според мен си е в рамките на нормалното тоест максимум около 1,5% от отчетеното. Не съм сложил допълнителна стабилизация на напрежението подадено към LM335. Това не можах много добре да го схвана, но продължавам да се просвещавам...
Последна промяна bobi534 на Пон Окт 27, 2014 11:13 am, променена общо 1 път
|
| Сря Окт 22, 2014 9:53 am |
|
 |
|
Cekins
Ранг: Форумен бог
Регистриран на: Сря Апр 20, 2005 12:02 pm Мнения: 9119 Местоположение: Разград
|
 Re: Програматор за сушилня с PIC16f1937
Ами двата рефърънса се ползват за долна и горна граница на отчитането - принципа на ацп-то е такъв, че се сравняват две напрежение - измерваното и двата рефърънса прекарани през DAC. Виж в уикипедия какво пише за SAR ADC - може и да ти стане мааалко по ясно. LM335 е малко крив - той е абсолютен спрямо 0 градуса по Келвин. И при 0 по Целзий дава 2.75 волта а при 25 - около 3, като имаш по 10 миливолта на градус. Примерно можеш да пробваш с MCP9701 - той е от -20 до +125, като при 0 по Целзий дава 400 миливолта и е с 19.5 миливолта на градус. Първо има малко по-добра резолюция, второ при 107 градуса достига 2.5 волта и трето няма нужда от резистор на изхода - захранва се с +5 волта и 0, а на изхода си вади директно напрежение. По този начин само с Vref+ 2.5 волта от TL431 примерно, можеш да имаш обхват от -20 до +100 градуса с реолюция около 0.124 градуса на бит от АЦП-то.
|
| Сря Окт 22, 2014 10:32 am |
|
 |
|
bobi534
Ранг: Новодошъл
Регистриран на: Сря Юли 30, 2014 10:29 pm Мнения: 116 Местоположение: Пловдив
|
 Re: Програматор за сушилня с PIC16f1937
Предложението за MCP9701 много ми хареса, но интересно защо в тук http://ww1.microchip.com/downloads/en/DeviceDoc/21942e.pdf пише едно, а в комет http://store.comet.bg/Search/?keywords=MCP9701#eyJpcHAiOiIxMDAiLCJrIjoiTUNQOTcwMSJ9 - 10mV/градус?? На оригиналната платка с датчиците захранването от 5 волта е прекарано през два резистора по 100ома откъм плюсовата и минусовата страна и ще се наложи да го ползвам в тоя вид. Мисля, че няма да е проблем. Разбрах това за двата реферънса, но в моя случай с термистора мисля, че няма да има особен ефект, защото термистора се храни от нестабилно /недостатъчно филтрирано/ напрежение, което пак ще рефлектира в нестабилност на измерваното ниво. П.П. Тъй като не ми е необходима абсолютна точност в измерване на температурата засега може би ще се огранича до LM335, тъй като вече съм го монтирал. За следващи разработки ще ползвам MCP-тата.
|
| Сря Окт 22, 2014 11:02 am |
|
 |
|
Cekins
Ранг: Форумен бог
Регистриран на: Сря Апр 20, 2005 12:02 pm Мнения: 9119 Местоположение: Разград
|
 Re: Програматор за сушилня с PIC16f1937
Ами Комет не им е много вярно описанието - 9700 е 10 миливолта а 9701 е 19.5. Аз ги ползвам и мога да кажа че от 300 броя досега само 2-3 са били повече от +/- 1 градус разлика. Повечето са в зоната 0.5 - 0.8.
Точно за термистора би имало ефект, защото той не вади от 0 до 5 волта твърдо, ами в някаква ограничена зона. Само не мога да разбера какви са тия гимнастики със захранванията.
Има и друго - с термистора можеш да подадеш неговия +5 волта към Vref+ и тогава плуващото напрежение там няма да оказва влияние. Стига само това напрежение да не е повече от 5 волта.
|
| Сря Окт 22, 2014 1:00 pm |
|
 |
|
bobi534
Ранг: Новодошъл
Регистриран на: Сря Юли 30, 2014 10:29 pm Мнения: 116 Местоположение: Пловдив
|
 Re: Програматор за сушилня с PIC16f1937
Тая вечер изсушихме първите няколко дрехи успешно. Сушилнята се представи идеално. Много сме доволни от резултата. Остава да довърша софтуера по останалите програми. Температурата и влажността се отчитат с малки толеранси, което е достатъчно за този род машини..  Да, убедих се от datasheet-овете, че Vref+ ще ми свърши работа, но ще го заложа в по-нататъшни разработки. Тук няма смисъл или поне нужда от абсолютна точност. В софтуера имам много DELAYMS редове, които ще трябва да преработя с използване на таймери. Абе, то, ще има още много работа, ама полека-лека...Важното е че машинката тръгна и въпреки, че е на 64MHz, работи относително стабилно, без да забива. Интересното е, че при SUBROUTINE променливите, доколкото успях да разбера, не си променят стойността и не се налага да ползвам специализирани команди за пренос/запис на променливите. По отношение на PICKIT3: Тъй като имаше съмнения за устойчивата работа при ползване на по-дълъг кабел: Стандартният кабел /от програматора до устройството/, който върви с кит-а е с около 1.8 метра дължина и с мойта добавка / LAN - 6-pin/ от около 40см надхвърля 2 метра. Досега сигурно съм програмирал поне 50 пъти без проблем.
|
| Нед Окт 26, 2014 11:08 pm |
|
 |
|
Cekins
Ранг: Форумен бог
Регистриран на: Сря Апр 20, 2005 12:02 pm Мнения: 9119 Местоположение: Разград
|
 Re: Програматор за сушилня с PIC16f1937
Под дълъг кабел се имаше предвид ICSP кабела. УСБ кабела е ясен. Моя ПикКит2 (самоделка) е чувствителен на калпави кабели - първо с някакво пълно дърво въобще не тръгна. После му сложих някакъв по-читав и си карам с него вече 4-5 години. Тоя същия програматор е с 1 метър кабел от как е създаден - обикновенно тия двата кабели са намятани и се преплитат с поне още 3 на масата ми и не съм имал някакви съществени проблеми от установката.
За променливите - на тоя бейсик това му е един от недостатъците - по принцип всички променливи са глобални. Има някакво система за предаване на параметри между процедури и функции обаче нещо много "полуавтоматично" стават нещата - не е толкова интуитивно. Има уж нещо като локални променливи ама те са си реално глобални. Няма динамична алокация и подобни гъдели. Та така - работата с променливи е малко тегава.
|
| Пон Окт 27, 2014 10:15 pm |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 6 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|