Страница 13 из 17

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

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

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

Добавлено: Пт янв 01, 2016 18:23:30
хвост
Nusik1975 спасибо за ответ. Всех С новым годом!

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

Добавлено: Пт янв 01, 2016 18:38:10
Nusik1975
В исходнике есть строка, она откомментирована, и в ней можно прибавить или отнять столько, на сколько привирает датчик

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

Добавлено: Вс янв 03, 2016 10:11:44
Smith2011
Все и вся собрал из темы в один файл, может кому пригодится. :)

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

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

Изображение

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

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

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

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

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

Добавлено: Пт янв 22, 2016 18:02:54
Iggis
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
Nusik1975
Там придется по всему коду проходить. Мне кажется, что гораздо проще переразвести печатку под себя.

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

Добавлено: Пт янв 22, 2016 21:05:20
Iggis
В том и вопрос. Начал делать печатку, и все дороги от мк к индикатору крест-накрест.

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

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

Добавлено: Сб янв 23, 2016 22:23:25
Nusik1975
Нужно пройтись по всему коду и проверить, где используются порты, отвечающие за сегменты. И их переопределить. Разряды трогать не нужно.

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

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

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

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

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

Добавлено: Вс янв 24, 2016 17:09:15
Iggis
Моя печатка и прошивка без пользы, все-таки индикаторы и дизайны у всех разные.
Но вот - ГЕНЕРАТОР КОДА, в экселе :))
Позволяет полуавтоматически получить куски кода под свою разводку пп.
Port_define.rar
(41.54 КБ) 399 скачиваний
В файле все инструкции есть. Вкратце: при разводке печатки подключаете индикаторы и датчики к портам мк как удобно, вписываете это подключение в файл, полученные куски кода вставляете с заменой в соответствующие места исходника (в 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 КБ) 745 скачиваний
Не забываем отписываться о результатах применения моих поделок :)

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

Добавлено: Вт янв 26, 2016 08:56:43
Iggis
Iggis писал(а):было так:
Изображение
Теперь, после переназначения портов, на печатке все ровненько
Изображение

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

Добавлено: Вт янв 26, 2016 22:35:02
Stalker_W
Генератор кода в Экселе - это, простите за каламбур, ат-мегАоригианлно! мяу! :))) :beer:

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

Добавлено: Ср янв 27, 2016 22:41:38
OLIGARX
Iggis

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

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

Добавлено: Вс фев 21, 2016 22:10:29
хвост
Да погорячился я, про погрешность в +6 градусов. Показания были 28 дома, не поверил, а проверить нечем было, когда нашёл градусник оказалось правда. Собрал две штуки.

Изображение

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

Добавлено: Пн мар 21, 2016 09:41:01
Iggis
Изображение

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

Добавлено: Сб мар 26, 2016 15:52:28
Aleksandr0411
А как установить фьюзы в uniprof?

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

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