Вопросы и замечания по статьям и схемам, представленным на нашем сайте

При поддержке РадиоКОТструктор.ру


Ответить

Re: Двухканальный термометр на AtMega8

Чт дек 31, 2015 10:31:36

хвост, исходник в архиве в полном порядке, ничего там не повреждено. Более 300 скачиваний и никто еще не пожаловался. :)) . Распаковываете архив, и открываете файл term.prj программой CodeVision AVR. В тексте программы есть комментарии.

Re: Двухканальный термометр на AtMega8

Пт янв 01, 2016 18:23:30

Nusik1975 спасибо за ответ. Всех С новым годом!
Последний раз редактировалось хвост Пт янв 01, 2016 18:58:57, всего редактировалось 1 раз.

Re: Двухканальный термометр на AtMega8

Пт янв 01, 2016 18:38:10

В исходнике есть строка, она откомментирована, и в ней можно прибавить или отнять столько, на сколько привирает датчик

Re: Двухканальный термометр на AtMega8

Вс янв 03, 2016 10:11:44

Все и вся собрал из темы в один файл, может кому пригодится. :)
Вложения
Двухканальный термометр на AtMega8.rar
(539.55 KiB) Скачиваний: 810

Re: Двухканальный термометр на AtMega8

Вс янв 03, 2016 22:31:03

Полистал код и понял что ничего не понимаю :)
Сделал свой вариант регулировки яркости индикаторов от фоторезистора.
Пытался снять видео, но фотик не передает всю глубину регулировки, он от самой яркой, до еле заметной в темноте, т.к. добавляет чувствительности на матрице фотика :( . Регулируется как верхний, так и нижний предел яркости.
Строго не судите, я не схемотехник, но она работает и очень хорошо.
Транзистор у меня стоит КТ502.

Изображение

Фоторезистор самый простой с Али - 3 рубля штучка http://ru.aliexpress.com/item/Free-Ship ... eb201560_8
Изображение

Re: Двухканальный термометр на AtMega8

Пт янв 15, 2016 04:27:07

Smith2011 писал(а):вариант регулировки яркости индикаторов от фоторезистора
У транзистора на вашей схеме надо поменять местами эмиттер и коллектор (минус ведь общий?). Еще стОит последовательно с переменными резисторами поставить небольшие постоянные, во избежание нулевых сопротивлений.

Вот такая схема тоже работает:
Изображение

Re: Двухканальный термометр на AtMega8

Пт янв 22, 2016 18:02:54

Nusik1975, я так понимаю, что меняя имена портов в этом куске кода
Спойлер
Код:
void show_digit(char what_digit)      //проверяем, какую цифру выводить
{
  switch (what_digit)
  {case 1:  {PORTD.3=0;PORTB.2=0;} break;
   case 2:  {PORTB.0=0;PORTD.3=0;PORTB.1=0;PORTB.4=0;PORTB.5=0;} break;
   case 3:  {PORTB.0=0;PORTD.3=0;PORTB.2=0;PORTB.5=0;PORTB.1=0;}break;
   case 4:  {PORTD.4=0;PORTB.1=0;PORTD.3=0;PORTB.2=0;}break;
   case 5:  {PORTB.0=0;PORTD.4=0;PORTB.1=0;PORTB.2=0;PORTB.5=0;}break;
   case 6:  {PORTB.0=0;PORTD.4=0;PORTB.4=0;PORTB.5=0;PORTB.2=0;PORTB.1=0;}break;
   case 7:  {PORTB.0=0;PORTD.3=0; PORTB.2=0;}break;
   case 8:  {PORTB.0=0;PORTD.3=0; PORTB.2=0;PORTB.5=0;PORTB.4=0;PORTD.4=0;PORTB.1=0;}break;
   case 9:  {PORTB.0=0;PORTD.3=0; PORTB.2=0;PORTB.5=0;PORTD.4=0;PORTB.1=0;}break;
   case 0:  {PORTB.0=0;PORTD.3=0; PORTB.2=0;PORTB.5=0;PORTB.4=0;PORTD.4=0;}break;
   case 10: {PORTB.1=0;}break;
   case 11: {PORTB.0=0;PORTD.4=0;PORTB.4=0;PORTB.5=0;PORTB.1=0;}break;           // Буква Е
   case 12: {PORTB.4=0;PORTB.1=0;}break;                                         // Буква r
   case 13: {PORTB.0=0;PORTD.4=0;PORTB.4=0;PORTB.5=0;PORTB.2=0;PORTD.3=0;}break; // Буква О
   case 14: {PORTB.4=0;PORTB.5=0;PORTB.2=0;}break;                               // Буква u
   case 15: {PORTD.4=0;PORTB.1=0;PORTB.4=0;PORTB.5=0;}break;                     // Буква t
  }
 }
можно переопределить подключение индикаторов к мк, как удобно для разводки пп? Или ещё где-то что-то менять надо?

Пользуясь случаем, СПАСИБО вам за полезный прибор и многолетнюю поддержку проекта Изображение

Re: Двухканальный термометр на AtMega8

Пт янв 22, 2016 20:06:42

Там придется по всему коду проходить. Мне кажется, что гораздо проще переразвести печатку под себя.

Re: Двухканальный термометр на AtMega8

Пт янв 22, 2016 21:05:20

В том и вопрос. Начал делать печатку, и все дороги от мк к индикатору крест-накрест.

Своим выпуклым военно-морским глазом неспециалиста посмотрел код и увидел там еще порт для точки и порты для разрядов.
Чтобы подключить индикаторы по-своему, надо только их, а также сегменты, переопределить, или где-то что-то еще?

Re: Двухканальный термометр на AtMega8

Сб янв 23, 2016 22:23:25

Нужно пройтись по всему коду и проверить, где используются порты, отвечающие за сегменты. И их переопределить. Разряды трогать не нужно.

Re: Двухканальный термометр на AtMega8

Сб янв 23, 2016 23:52:26

Разобрался-поменял-скомпилировал-прошил-работает. На макетке.
Трогал и разряды и сегменты и датчики. Только точка случайно осталась на прежнем месте :)
Теперь на печатке все ровненько, а было так:
Изображение
Период опроса датчиков поставил 5 секунд. Коррекцию датчика убрал. Если датчик врет, то он не врет, а стоит в неудачном месте. У меня сейчас оба датчика рядом на макетке - разница показаний обычно 0-0.1°, но бывает до 0.4°, как и обещано в даташите (флуктуации датчика не более ±0.2°).

Re: Двухканальный термометр на AtMega8

Вс янв 24, 2016 10:20:24

Ну и отлично. Выкладывайте тогда здесь свои наработки, может, кому и пригодится :beer:

Re: Двухканальный термометр на AtMega8

Вс янв 24, 2016 17:09:15

Моя печатка и прошивка без пользы, все-таки индикаторы и дизайны у всех разные.
Но вот - ГЕНЕРАТОР КОДА, в экселе :))
Позволяет полуавтоматически получить куски кода под свою разводку пп.
Port_define.rar
(41.54 KiB) Скачиваний: 371
В файле все инструкции есть. Вкратце: при разводке печатки подключаете индикаторы и датчики к портам мк как удобно, вписываете это подключение в файл, полученные куски кода вставляете с заменой в соответствующие места исходника (в CVAVR), компилируете-шьете, работает! 8)


:idea: Заодно исправил косячок, который в теме уже упоминался - температура "-9.9" выводилась как "-09".
СпойлерДля исправления "Проблемы -9.9" нужно в исходнике исправить:

- в 72 строке
Код:
if(minus&(tem<=9.9))tochka();
    //исправить на
if(minus&(tem<10))tochka();
- в 99 строке
Код:
if(minus1&(tem1<=9.9))tochka();
    //исправить на
if(minus1&(tem1<10))tochka();
- в 141 и 142 строках
Код:
if(minus&(tem>=9.9))temp=tem;
if(minus&(tem<=9.9))temp=tem*10;
    //исправить на
if(minus&(tem>=10))temp=tem;
if(minus&(tem<10))temp=tem*10;
- в 189 и 190 строках
Код:
if(minus1&(tem1>=9.9))temp1=tem1;
if(minus1&(tem1<=9.9))temp1=tem1*10;
    //исправить на
if(minus1&(tem1>=10))temp1=tem1;
if(minus1&(tem1<10))temp1=tem1*10;
Прошивка с исправленной "Проблемой -9.9". Порядок портов как в оригинале. Коррекция первого датчика убрана. Период опроса датчиков 2 сек.
term-99.hex
(8.83 KiB) Скачиваний: 705


Не забываем отписываться о результатах применения моих поделок :)

Re: Двухканальный термометр на AtMega8

Вт янв 26, 2016 08:56:43

Iggis писал(а):было так:
Изображение

Теперь, после переназначения портов, на печатке все ровненько
Изображение

Re: Двухканальный термометр на AtMega8

Вт янв 26, 2016 22:35:02

Генератор кода в Экселе - это, простите за каламбур, ат-мегАоригианлно! мяу! :))) :beer:

Re: Двухканальный термометр на AtMega8

Ср янв 27, 2016 22:41:38

Iggis

Спс за прошивку с убранным "косячком -9.9___-09 "
залил, тестирую вторые сутки- полёт нормальный

Re: Двухканальный термометр на AtMega8

Вс фев 21, 2016 22:10:29

Да погорячился я, про погрешность в +6 градусов. Показания были 28 дома, не поверил, а проверить нечем было, когда нашёл градусник оказалось правда. Собрал две штуки.

Изображение

Re: Двухканальный термометр на AtMega8

Пн мар 21, 2016 09:41:01

Изображение

Re: Двухканальный термометр на AtMega8

Сб мар 26, 2016 15:52:28

А как установить фьюзы в uniprof?
Вложения
1.jpg
uniprof
(120.95 KiB) Скачиваний: 866

Re: Двухканальный термометр на AtMega8

Ср мар 30, 2016 18:53:19

Aleksandr0411 Автор очень хорошо описал установку  фьюз в статье там и картинка есть. Повторяю его слова;Для выставления фьюзов в других программах я пользуюсь универсальным правилом.  Считываем фьюзы нового МК и смотрим на фьюз RSTDISBL.  Если на нем нет галочки (как в CodeVision  и как на скриншоте), то все галочки ставим также. А вот если на этом фьюзе есть галочка, то все фьюзы нужно выставить инверсно, то есть наоборот. Фьюз RSTDISBL никогда не трогайте. Если его изменить, то прошивка МК станет невозможна.
Ответить