Форум » Для начинающих. » Личная тема Альберт Бикбулатов - Photographer (г.Уфа) » Ответить

Личная тема Альберт Бикбулатов - Photographer (г.Уфа)

Photographer: Это тема с моими проектами. Здесь я буду разрабатывать свои устройства, учиться, задавать вопросы. Если вам не нравится мой проект, то можете создать такую же личную тему себе и создавать там свои устройства. Можете мою личную тему взять за образец. Каждый свой проект постараюсь начинать с техзадания, инструментов, исходных материалов. То есть с идеи и того что у меня есть в наличии. Вести тему буду в стиле (в виде) блога. Возможно кто то захочет повторить мой путь. Буду благодарен за замечания, советы и помощь, которые помогут реализовать проекты наилучшим образом, а заодно чему то научиться. Всё что на мой взгляд мешает мне в работе, буду считать офтопиком, не обессудьте. Здесь проекты мои личные и решать мне. Если только вкратце не переубедите меня в обратном.

Ответов - 181, стр: 1 2 3 4 5 All

Alex: Сегодня на работе сидел "химичил". Сделал индикацию и выводил данные на порты почти одновременно. Разница между командами была 0.1 мкс. Было 2 варианта. 1. Сначало включались аноды, затем катоды (сегменты). 2. Сначало включались катоды, затем аноды. Один из двух вариантов в протеусе показывал ахинею. Какой конкретно, не помню. На железе оба варианта работали нормально. Хотя я предпочитаю гашение. Причём гашение за долго до переключения следующего индикатора.

Photographer: Акто мне объяснит чем отличается запись, например: [pre2] #Define NUM_DIG_IND .4 ; Количество разрядов индикатора. от NUM_DIG_IND equ .4 ; Количество разрядов индикатора. [/pre2] Alex пишет: Один из двух вариантов в протеусе показывал ахинею. Какой конкретно, не помню. Вроде 2-ой. На железе оба варианта работали нормально. Всё правильно, это как раз тот случай, я знаком с этим.

Алексей: Photographer пишет: #Define NUM_DIG_IND .4 ; Количество разрядов индикатора. Это ты делаешь просто замену текста... Т.е. NUM_DIG_IND будет при ассемблировании заменяться на .4 Photographer пишет: NUM_DIG_IND equ .4 ; Количество разрядов индикатора. А так ты назначаешь символьное имя NUM_DIG_IND регистру с адресом .4... В этом случае это символьное имя будет отображаться в мплабе по адресу .4. Если конечно ты раньше не дал ему другое символьное имя В первом случае этого не будет, хотя можешь спокойно обратиться к этому регистру по его имени В этом и есть разница


Photographer: Алексей пишет: В первом случае этого не будет, хотя можешь спокойно обратиться к этому регистру по его имени Давай уточним. И в первом и во втором случае NUM_DIG_IND будет равняться .4 но в случае c #Define , я не смогу пользоваться как адресом. Например не пройдёт запись btfsc NUM_DIG_IND, .2 Надо попробовать....... Попробовал, пробовал разные команды. MPLAB не ругается. Обращается к ячейке с этим адресом. И в первом и во втором случае название заменяется числом. А как будешь число использовать, как константу или как адрес, разницы не обнаруживается. Пробовал один адрес по разному обзывать - проходит. Пробовал константы больше байта задавать, тоже проходит. Пока не вижу разницы. Может разница просто в названии команды? DEFINE - перевелось как ОПРЕДЕЛИТЬ А EQU что такоё? На счёт гашения разрядов при динамической индикации. Раз уж на то пошло, почему бы не обратить это на пользу. Надо бы сделать это через ШИМ. Заодно и регулировка яркости индикации будет. Пригодится в деле. Кто с ШИМ имел дело? Как там это сделать лучше? В смысле как настроить его, а приспособлю я сам. Пака я не разбирался с ШИМ-ом. В идеале нужны два прерывания по переднему и заднему фронту. Возможно ли это? Или по другому делается?

Alex: Photographer пишет: А EQU что такоё?Эквивалентно наверное Похоже EQU и define выполняют одну и ту же функцию. Но при EQU в отладчике, присваивается регистру имя. По индикации. Я давал свою наработку для дин. индикации (если до тебя не дошла она - выложу). Там-же есть пример изменения яркости. Используется ещё один таймер для гашения индикаторов. Хотя, тебе наверное такое не пойдёт... У тебя индикаторы подключены по другому.

Photographer: Alex пишет: Но при EQU в отладчике, присваивается регистру имя. Да ничего там не присваивается. Название просто подменяется числом и всё. Я так думаю. Иначе, если назвать один регистр по разному, то ругался бы. Молчит ведь. Alex пишет: Используется ещё один таймер для гашения индикаторов. Я с ШИМом хочу попробовать/разобраться. Впрочем, это тот же таймер, только в профиль. У меня одна простенькая идейка появилась. У подпрограмм бывают входные и выходные данные. Их записывают в отдельные регистры. Данные от АЦП могут быть данными для 2-10преобразования. Вот и не понятно как этот регистр обозвать. Так вот можно обозвать например [pre2]ADC_out и bin2_10_in[/pre2] А в шапке можно [pre2] ADC_out equ 20h bin2_10_in equ ADC_out[/pre2] Или на оборот. Просто и красиво.

Alex: Photographer пишет: Название просто подменяется числом и всё.Не просто подменяется. Ты в file register загляни. Photographer пишет: Иначе, если назвать один регистр по разному, то ругался бы. Это почему ? Присваивай одному регистру хоть 1000 имён. Ты вот наоборот попробуй, присвоить одно имя нескольким регистрам. Вот тогда увидишь ругань матерную

Photographer: Само собой. Те же яйца, только в профиль. У меня вот зуб сегодня выдрали.... совсем не безболезненно. А обезболивание только что прошло, через 6 часов. И кровь до сих пор не прекращается... Так что сегодня я в унынии. не больно то хочется что то делать.

MAZ: Photographer пишет: не больно то хочется что то делать. Ты потерял, много крови брат. Шоколадку и спать, не вреди здоровью.

Photographer: Кто какие предохранители использует?... в подобных устройствах. Только реально... в своих устройствах В инет я и сам послать могу MAZ пишет: Ты потерял, много крови брат. Шоколадку и спать, не вреди здоровью. Кстати, кстати... ты то мне и нужен, на твоей схеме почему после операционника стоит делитель напряжения? Не лучше ли было бы, и проще, использовать все 5V ?

Алексей: Alex пишет: Похоже EQU и define выполняют одну и ту же функцию. Но при EQU в отладчике, присваивается регистру имя. Да в этом разница... Я же тебе написал... что при EQU это символьное имя будет отображаться как название регистра с присвоенным адресом... при дефайне этого не будет, но обращаться по этому имени ты все равно сможешь, т.к. компилятор все равно заменит строку на присвоенное число.

Photographer: Алексей пишет: что при EQU это символьное имя будет отображаться как название регистра с присвоенным адресом... при дефайне этого не будет Всё понял, спасибо. Просто разница на столько незначительная, что надеялся найти другую, более существенную. Спасибо за разъяснения.

MAZ: Photographer пишет: почему после операционника стоит делитель напряжения? Ты же знаешь, я лентяй. ОУ выдает максимум 3,75В, при 5В питания. Схема взята из даташита Аналог Девайс. Теперь смотри. температура ( напряжение термопары) пропорционально выходному напряжению на ОУ. 0В -0 град. 3,75В - 375град (достигается калибровкой) Предположим надо оцифровать вывести на индикацию температуру 215град. (2,15В). А как это сделать просто? АЦП десятиразрядное. 1024 и шаг квантования при 5,12В питания (опорного) 0,005В. Делим 2,15 на 0,005 =430 результат преобразования. А если предварительно поставим делитель напряжения на 2? 2,15/2 делителем=1,075/0,005 (шаг квантования)= .215 (0х00;0xD7) и это число записано в регистрах результата АЦП. Преобразуй в 2-10 и на индикацию. Вот поэтому и лентяй

Al_Kuz: Alex пишет: Используется ещё один таймер для гашения индикаторов. Хотя, тебе наверное такое не пойдёт... Гасить индикатор можно по выводу ОЕ регистра, очевидно, что потребуется еще один вывод мк. Или по таймеру заполнить один регистр нолем (или 1). MAZ пишет: Делим 2,15 на 0,005 =430 результат преобразования. А если предварительно поставим делитель напряжения на 2? А если этот результат программно поделить на 2 (сдвинуть вправо), тогда максимальные показания будут 750?.

MAZ: Мне не понятен вопрос. Результат чего? Максимальные чего показания? Если температуры, то нужно повышать напряжение ОУ при 12в можно 1000 измерять. Вот тут уже программно ничего не получится. 10В (макс) на вых ОУ надо в 5В как-то перевести для преобразования.

Photographer: MAZ пишет: Ты же знаешь, я лентяй. ОУ выдает максимум 3,75В, при 5В питания. Схема взята из даташита Аналог Девайс. Дык я ещё больше КУ Вместо двух резисторов, поделил бы этим RRF сдвигом вправо, как и говорит Al_Kuz. И питание не стану повышать. подкручу настройки и всё. А в общем, за схему спасибо большое...... А ты не пробовал греть холодный спай? Вот интересно, обязательно попробую. Проблемка одна объявилась. Первый сдвиговый регистр, тот что на сегменты, на 4 разряда будет работать. VCC or GND current −±70 mA. Делим на четыре разряда и на семь сегментов. Остаётся 2,5 mA на каждый сегмент. Маловато однако. В 8 раз меньше допустимого тока. То есть индикатор будет светиться в 8 раз меньше чем мог бы. Нет ли микросхемы типа ULN2803? только на + комутирущие? Транзисторы что ли поставить? Надо было брать с общим анодом, было бы проще. Или брать полный индикатор, для постоянной индикации. Самый неудачный вариант выбрал, получается

MAZ: Я выше написал. Это моя универсальная схема для лентяя. Как без делителя ты измеришь ну хотя бы 520 град. На вход АЦП можно подать не больше 5.12В И что тогда делить программно?

Photographer: Ты главное успокойся и не нервничай, это вредно. И не меняй коней на переправе, ты сам привёл пример, о нём и речь. Вот он MAZ пишет: Предположим надо оцифровать вывести на индикацию температуру 215град. (2,15В). А как это сделать просто? АЦП десятиразрядное. 1024 и шаг квантования при 5,12В питания (опорного) 0,005В. Делим 2,15 на 0,005 =430 результат преобразования. А если предварительно поставим делитель напряжения на 2? 2,15/2 делителем=1,075/0,005 (шаг квантования)= .215 (0х00;0xD7) и это число записано в регистрах результата АЦП. Преобразуй в 2-10 и на индикацию. Повторю то же самое чуть короче: на выходе ОУ 2,15 V на входе АЦП (после делителя) 1,075 V На выходе АЦП число 215. На входе ПП2-10 число 215 Так? А теперь смотри по другому: на выходе ОУ 2,15 V на входе АЦП (без делителя) 2,15 V На выходе АЦП число 430. Вставляем команду RRF и получаем число 215 На входе ПП2-10 опять таки число 215 Экономятся два резистора, пайка, припой, канифоль, труд неимоверный, да ещё и точность повышается (для идеальных условий...)

MAZ: Ладно, ты еще больше лентяй чем я. А как измеришь 600град?. Просвети, может я где то уже и жирком заплыл. А так и плата одна на все случаи жизни. Я больше лентяй

Photographer: MAZ пишет: А как измеришь 600град? Ни как. А ты как? MAZ пишет: ОУ выдает максимум 3,75В, при 5В питания. Так что тоже не больше 375 градусов. Или напряжение на ОУ повышаешь?

MAZ: Я же выше написал 12В. Ну может чуть подберу входные делители у ОУ. Плата и программа одна и та же. Нет я больше лентяй точно.

Алексей: MAZ пишет: 2,15/2 делителем=1,075/0,005 (шаг квантования)= .215 (0х00;0xD7) и это число записано в регистрах результата АЦП. Преобразуй в 2-10 и на индикацию. Вот поэтому и лентяй Лентяй А написать вместо [pre2]movf ADRESL,W [/pre2] Или что то подобного так [pre2]rrcf ADRESL,W [/pre2] совсем рука отвалится Будем делить аппаратно, вешать дополнительные резюки

Al_Kuz: MAZ пишет: А как измеришь 600град? На вход подаем 3В, результат АЦП - 600, это и выводим на индикатор.

MAZ: Не догнал? Исхожу из того, что народ всегда прав, а я не прав. Al_Kuz пишет: На вход подаем 3В, результат АЦП - 600, это и выводим на индикатор. А как на вход 3 вольта подаем? По подробней? И без делителя? Если на вых. ОУ соответствует 3В 300 град. Можно сделать другую схему, другой коэф. усиления. Но для данной? При чем рекомендованной АД. Вам не кажется, что противоречие получается, если 2,1В то делим программно на 2 и 210 градусов, если 3 В то 600 градусов и программно не делим? Алексей пишет: Или что то подобного так rrcf ADRESL,W совсем рука отвалится Будем делить аппаратно, вешать дополнительные резюки Лех, ты не врубился, а о чем я говорю. Универсальная схема для подкл. к АЦП 5 вольтовому и измеряет до 1000град, с отличной точностью, если использовать прецизионные детальки. А кто узнает, надо делить или не надо? Лучше делить всегда. Но входное напряжение АЦП не может быть больше опорного, а то в свою очередь питания. И если выходное ОУ или вх. АЦП 6В, что соответствует 600 град. Как 6В подать на вход? А если 9,9В?

Al_Kuz: MAZ пишет: Но для данной? При чем рекомендованной АД. Разумеется, для данной схемы не выше 375 гр, но можно поднять на 100 гр, если применить R2R ОУ, при том же питании 5 V. Для данной паяльной станции слишком хлопотная схема, в плане настройки, и не известно где находится холодный спай, в ручке паяльника или в корпусе устройства, и нужена ли компенсация ХС вообще для данной ПС.

MAZ: В последнее время, меня что-то сильно общение начинает раздражать. Al_Kuz пишет: Разумеется, для данной схемы не выше 375 гр, но можно поднять на 100 гр, если применить R2R ОУ, при том же питании 5 V А входные цепи, куда кидать и под что подгонять. И почему на 100, а не 200? И почему 3В это 600 град? Зачем делать себе эти проблемы? Данная схема, взята у меня Альбертом, но есть схема и для 1000 град. Если бы он её взял? Она ни чем не отличается, практически. Схема АД измеряет до 1000град при питании ОУ 12В. А вот делители на входах ОУ питаются от 5В. Я уменьшил напряжение питания ОУ до 5В, так как в данном случае измерять больше 300 град, не нужно. Надо, подниму до 10, или 12В, но питание ОУ. Рассчитывать все тонкости компенсационных делителей нет желания. Больше не буду ничего говорить, надоело. Если есть желание, можете порадовать нас схемой, то с программным делением, то без него, то с одним ОУ, то с другим и в диапазоне 0-1000 град. У меня одна на все случаи жизни, при положит. температурах.

Photographer: Не надо так кипишить. Давайте посмотрим что у меня получится. Будут проблемы, будем решать.

Al_Kuz: Данная схема годится для печей и термошкафов, но применять ее в ПС излишне: - требует два источника питания; - хлопотно настраивать (Александр (MAZ) в своих статьях, на эту тему, сам это признает) - использование прецизионных деталей. - насколько мне известно ХС термопары, применяемого Альбертом паяльника, находится в ручке паяльника. От сюда, термочувствительный диод нужно располагать в ручке, либо весь усилитель. Для ПС диапазона 150-450 град вполне достаточно, реально (90%) используется диапазон 250-350 гр. В этом диапазоне (проверено экспериментально), температура в ручке паяльника и в корпусе устройства после 20-30 минутной работы ПС меняется незначительно (+_ 2гр), следовательно автокомпенсация ХС в ПС так же излишне, компенсацию ХС можно выполнить программно либо подстроечным резистором. Но, если очень важно, что бы при включении холодного паяльника, индикатор показывал реальную температуру в комнате,то автокомпенсация ХС необходима. Следует также учитывать, что термопара находится в корпусе нагревателя, а не на кончике жала, в программе следует предусмотреть регулировку наклона температурной характеристики. Надеюсь, что автор темы посетил сайты на данную тему ( радиокот, прорадио и др) и познакомился со схемами реальных ПС. - то ли еще будет, когда подключит к нагревателю ШИМ. Удачи, Альберт!

MAZ: Al_Kuz пишет: - требует два источника питания; - хлопотно настраивать (Александр (MAZ) в своих статьях, на эту тему, сам это признает) - использование прецизионных деталей. Два источника, это громко сказано. Если после 12В поставить делитель и получить 5В, это второй источник? Насчет хлопотно настраивать, не помню что я такого говорил. Очень просто настраивается. Но при соблюдении номиналов входных делителей ОУ на схеме. Прецизионные детали нужны, если нужна прецизионная точность. Точность 1-2 градуса, это не та точность. Все остальное, я согласен. Вопрос был про схему усилителя термопары и делитель напряжения., а не про паяльник. Знаю, более 10 человек, которые в разных вариантах и в разных устройствах повторили именно мою схему, ни какой критики. Все работает как часы. Спасибо С. Сотникову за подсказки в свое время. Все просто и понятно. Если в паяльнике стоит именно термопара, то все будет работать отлично. Что еще дешевле из эффективных датчиков температуры. Если в ручке, то необходимую корректировку на жало можно сделать программно, только зачем это надо? +/- 5 градусов.

Al_Kuz: Я рассматриваю эту схему в плане применения в ПС, а не как схему вообще, отсюда и критика. Считаю, что применение ее здесь является избыточным. Зачем использовать сложную схему, если результат будет практически один и тот же. Преимущество данной схемы в автокомпенсации - это бесспорно и применение ее оправдано в широком диапазоне рабочих температур и значительных колебаний температуры ХС (в основном в промышленности). Два источника питания, я имел ввиду - 12В -питание усилителя, 5В-питание мк. На вых усилителя жесткий делитель на 2, если питание мк не 5,12В (а следовательно и Uref), то возникает дополнительная погрешность в показаниях (чем выше тем-ра, тем больше). Калибровка в талой воде и кипятке не внушает доверия, когда рабочая температура 300 и более град, калибровать нужно в рабочем диапазоне температур (не все термопары линейны в широком диапазоне и кто знает какого типа термопара в паяльнике). Не нашел, Александр, твои статьи по усилителям на ProgCode, а вроде там были.

MAZ: модератору, пожалуйста удалите.

MAZ: Мы не сошлись взглядами с хозяином сайта. Там много что ушло. Но все равно достойно уважения, т.к. было удалено по первому требованию и не только мои статьи. Некоторые товарищи до сих пор считают, что имеют полное право на чужое. Но свое это святое. Напишу новою в этом месяце на чипмк. На мой взгляд схема очень проста и доступна, себестоимость не более 50р. Ни каких дефицитов и ценников. Стабилизаторы 7805, обычно дают 5,12В. Но даже это не главное, ошибка будет допустима для большинства применений. Делитель на два удобен тем, что легко сделать из двух одинаковых резисторов, а если из одной партии, то почти идеальное равенство. Дешево и мило и без мороки. Термопары в основной свой массе линейны. Есть конечно незначительные отклонения, но для большинства задач тоже приемлемо. Обычная задача измерения температуры до 400град. Поэтому простая калибровка, вполне допустима. И даже на этой калибровке, плавят смолы для изготовления пластмассы. Если температура серьезней, то конечно надо определится с термопарой для требуемой задачи. Тут уже выбор широк, можно воспользоваться самым относительно простым вариантом, заказать термопару из кабеля (КТМС или подобного). Кабельные термопары,по моим наблюдениям, обладают хорошей линейности, удобны и могут изготовить практически любой длины, что позволяет сделать только один холодный спай в точке подключения. И калибровать 0- 100, вполне приемлемо.

Вячеслав: Здесь можно прочитать о точности и "линейности" термопар ( см.рисунок 7). http://zalil.ru/30962142 Альберт, нужда в предохранителе отпала? Могу выложить сведения о типах плавких предохранителей (и держателей) и "свой" подход к узлу подключения настольного прибора к сети.

MAZ: Статья интересная, но рис.7 почему то нет графика самой распространенной термопары ХК (L). забыли что ли.

vintik: Тоже пришел к выводу, что паяльник должен быть термостабилизирован. Вот интересная статья. по работе с термопарой. А это алгоритм управления мощностью (PDM). HEX для 628 выглядит очень заманчиво. [pre2]:020000040000FA :020000002028B6 :080008002108A0002408A00754 :10001000A01FA513A51B10282008323C031C132881 :100020002008A4001928A20A20089C3EA400A41BB2 :10003000A517A30B0428A10A6430A300A201042879 :100040008601831603138601831207309F00A101E6 :0E0050006430A300A201A401A001A51704289A :02400E002A3F47 :00000001FF[/pre2] Это только сам алгоритм, без обвязки. Сейчас загруз с блоком питания, хочу сделать в корпусе зарядки мобилок, которая используется как сетевая вилка. В общем тоже, по тихоньку копаю в этом направлении :)

Вячеслав: vintik пишет:" вот интересная статья..." Красивый подход. Жаль, что среда не Proteus, а МК не PIC.

Photographer: Вячеслав пишет: Могу выложить сведения о типах плавких предохранителей (и держателей) и "свой" подход к узлу подключения настольного прибора к сети. Справочников навалом, а вот личный опыт, это интересно. С удовольствием послушаю. Статья к сожалению слишком избыточна. Сгодится студентам vintik пишет: Вот интересная статья. по работе с термопарой. Спасибо. Мне понравилась статья. Силовой модуль очень похож на мой, но более мощный. Сегодня платы травил 5 штук. Всё делал модульно. Хочу всё по отдельности протестировать. Накосячил наверно одна ошибка уже есть, то ли ещё будет. Спаяю, выложу фотки. Кстати, на силовой блок резисторы пересчитывал под 30 V Пока не знаю, попал или нет. По интуиции больше прикинул. В даташите формулы нет. Только 2 примера.

Вячеслав: Photographer пишет: личный опыт, это интересно Настольные аппараты (с металлическим корпусом) к сети подключал сл. образом: 1. На корпусе устанавливал вилку сетевую приборную - СНП226-3ВП-И. Средний вывод вилки подключается к корпусу. 2. Сетевые провода от вилки подключаются к клеммнику на ПП (клеммник винтовой 2-х контактный прямой серии301). 3. На ПП ставится держатель предохранителя (например -CQ-200C). Две цепи (одна с клеммника, другая через предохранитель) идут на разъем (PWL-4M), который через жгут подключен к сетевому выключателю (KCD1-104B-201N11EBA -зеленый). Жгут выключателя кончается розеткой на провод - PHU-4. Такое подключение позволяет отсоединить ПП от корпуса и извлечь ее. 4. После сетевого выключателя (параллельно контактам подключения трансформатора) устанавливался варистор ( например TVR10431 ) - как защита от превышения напряжения в сети. Далее - силовой трансформатор и т.д. Уж насколько ценен этот опыт - не знаю. Аппараты с таким подключением проходили первичные и периодические испытания при их сертификации. Удачи.

vintik: Photographer пишет: Силовой модуль очень похож на мой, но более мощный. А я думаю обойтись одним МОСХХХХ, без доп симистора. Есть еще идея, но... Если использовать в качестве переключалки, (когда паяльник в бездействии), емкостной датчик? Взял паяльник, вкл. номинальная мощность, положил на стол, после 5мин. нагрев снизился до 150*С. Датчик собирал на 206пике, работает нормально, без сбоев. Ладно, не буду тебе "сбивать руку" своими фантазиями :) Вячеслав пишет: Красивый подход. Жаль, что среда не Proteus, а МК не PIC. Мужик очень грамотно и скурпулезно подходит к вещам. То, что он пишет на СИ для Авриков не беда, можно перекинуть и на Пики.

Photographer: Даа, лучше один раз увидеть Но и так разобрался. Вячеслав пишет: ...например TVR10431 Почему столько много? Вячеслав пишет: Уж насколько ценен этот опыт - не знаю. Конечно ценен. Спасибо.



полная версия страницы