Страница 4 из 5

Re: Термостат ∆T=0,1°C на Mega8 TQFP

СообщениеДобавлено: 06 янв 2020 07:17
dandiv
Yanshun Спасибо за подсказку - крестик не заметил!
По поводу длины кабеля - у меня дома висит термостат на Attiny с темы Термостат ∆T=0,1°C - работа над ошибками, погреб в отдельном строении на улице, длина кабеля до датчика наверно тоже метров 20 - 25, пускал FTP кабель до сих пор работает без проблем... Сейчас глянул ту тему - выходит с декабря 2014 года он трудится у меня.
Просто задумался о выборе кабеля, в FTP излишне большое количество жил, вот и ищу варианты. КВК-П 2Э 2х0,75 для систем видеонаблюдения используют и вроде проблем с камерами нет, а вот с DS18b20 информации не нашел как он себя вести будет. Подожду, может кто отпишется об успешном использовании данного или аналогичного кабеля (просто покупать, чтобы в случае неудачи он остался валяться без дела не хочется)

Re: Термостат ∆T=0,1°C на Mega8 TQFP

СообщениеДобавлено: 06 янв 2020 10:57
Yanshun
dandiv, Добрый день.
К сожалению у меня есть сомнения, что кроме Вас на данный вопрос смогут ответить.
Тут только тесты и не один день, а несколько месяцев.
Используйте то, что уже проверенно.
FTP по прочностным характеристикам не подходит, что Вы намеренно хотите КВК. Одно могу сказать, раз работает FTP кабель. что КВК точно будет работать, так как сечение в разы больше.

Re: Термостат ∆T=0,1°C на Mega8 TQFP

СообщениеДобавлено: 06 янв 2020 12:34
dandiv
FTP по прочностным характеристикам не подходит, что Вы намеренно хотите КВК.

Не совсем понял это предложение.

Re: Термостат ∆T=0,1°C на Mega8 TQFP

СообщениеДобавлено: 06 янв 2020 14:43
Yanshun
dandiv, Добрый день.
Я имел в виду, сила на разрыв, стойкость к внешним воздействием, механические прочности, прокладка кабеля по улице на открытом ультрофиолете, солнце, молния, дождь.
Я пока не увидел причину, столь настойчивого желания использования кабеля КВК, (который еще и нужно купить) вместо имеющего в избытке FTP (ну есть у него лишние жилы, запараллельте их либо буду запасные, можно резервный датчик подключить).
Если Вам удобно использовать КВК, берите, работать будет точно, раз работает у Вас корректно FTP.

Из лично опыта (более 5 лет и до сих пор работают). Протягивали витую пару 180 метров для корректора Универсал 002, но там датчики использовались Датчики температуры ПВТ-01 и все корректно работает, дам друхпроводный сигнал. 8 жил, читыре провода на датчик (два датчика), сигнал идет по двум проводам, провода были запараллелины, два проводника сигнал и два резервная линия. В датчиках используется мост Уитстона.

Re: Термостат ∆T=0,1°C на Mega8 TQFP

СообщениеДобавлено: 07 янв 2020 12:55
propell_ant
dandiv писал(а):Возник вопрос - каким кабелем датчик вынести? (длина примерно 25 метров) Использовать FTP или можно КВК-П 2Э 2х0,75 (есть у кого опыт по подключению датчика данным кабелем?).
Можно и КВК-П. Врядли вы найдете здесь поклонников именно этой марки кабеля, но он ничем не хуже других вариантов.
Проблемы с передачей данных в кабеле большой длины решаются уменьшением номинала резистора 4К7. Проверяйте сначала на столе при подключении к свернутой бухте, и потом, когда всё заработает - прокладывайте кабель.

Re: Термостат ∆T=0,1°C на Mega8 TQFP

СообщениеДобавлено: 07 янв 2020 17:35
dandiv
Я имел в виду, сила на разрыв, стойкость к внешним воздействием, механические прочности, прокладка кабеля по улице на открытом ультрофиолете, солнце, молния, дождь.
Я пока не увидел причину, столь настойчивого желания использования кабеля КВК, (который еще и нужно купить) вместо имеющего в избытке FTP (ну есть у него лишние жилы, запараллельте их либо буду запасные, можно резервный датчик подключить).

У меня до датчика в погреб FTP кабель идет по улице в гофре, подвязанной на тросике, поэтому понял о чем Вы говорите - защита у меня есть. Просто хотел упростить конструкцию в термостате, который собираю родителям также для обогрева погреба и использовать другой кабель , типа КВК.
Проблемы с передачей данных в кабеле большой длины решаются уменьшением номинала резистора 4К7. Проверяйте сначала на столе при подключении к свернутой бухте, и потом, когда всё заработает - прокладывайте кабель.
propell_ant Об этом решении я уже знаю по теме работа над ошибками
p/s Вообщем посмотрел на цены, FTP дешевле купить чем КВК, значит буду FTP покупать... возник вопрос как лучше организовывать подключение (питание, земля, данные - данные пускать в переплетенной паре с землей или какие варианты? Просто у меня датчик, который подключен и успешно работает, его провод намертво замурован в стену и чтобы посмотреть как я там подключал нужно расковыривать, что не особо хочется...)

Re: Термостат ∆T=0,1°C на Mega8 TQFP

СообщениеДобавлено: 19 янв 2020 13:34
dandiv
Помучал немного термостат, кабель FTP 28 метров, подтягивающий резистор на хвостике датчика (покупал датчик в корпусе с кабелем Изображение)
Блок питания импульсник
Изображение
Изображение
Внутренности блока питания
Изображение
Изображение
Плата термостата
Изображение
Изображение
Собранный вид (собран в распредкоробке электрической)
Изображение
Внутренности (реле использовал IEK-овское)
Изображение
Термостат с "бухточкой" кабеля
Изображение
Вроде пока работает, но вот только не пойму - показания термостата примерно на две десятых градуса скачут. На термостате на 2313 такого не замечено. Из-за чего такое может быть?

Добавлено спустя 2 часа 18 минут 10 секунд:
Шил через USB-ISP программой SinaProg, может я фьюзы неверно выставил? Кварц на 8МГц установлен. Может кто подсказать какие правильно фьюзы выбирать в SinaProg?

Добавлено спустя 23 минуты 16 секунд:
http://homes-smart.ru/fusecalc/?prog=avrstudio&part=ATmega8A по этой ссылке если выставить фьюзы правильно, то я так понимаю можно в SinaProg просто подставить байты конфигурации LOW HIGH, те что в левом углу? Может кто помочь пожалуйста?
Заранее Спасибо!!! С уважением, Алексей

Добавлено спустя 1 час 46 минут 23 секунды:
У меня сейчас выставлено LOW - FF, HIGHT - D9

Добавлено спустя 42 минуты 53 секунды:
Т.е. у меня выставлен еще бит SPIEN (Разрешить внутрисхемное программирование (SPI)). По картинке фьюзов с форума об этом фьюзе вообще упоминания нет
Изображение. Так вот вопрос: похоже у меня фьюзы верно выставлены?
p/s Если верно выставлены, то в какую сторону копать, дело в прошивке или в датчике? Другого пока нету в наличии, а стоит ли покупать другой пока не знаю...

Re: Термостат ∆T=0,1°C на Mega8 TQFP

СообщениеДобавлено: 19 янв 2020 22:29
Yanshun
Хорошо получилось.
:drink:

Re: Термостат ∆T=0,1°C на Mega8 TQFP

СообщениеДобавлено: 28 янв 2020 21:35
propell_ant
Обсуждение поддельных датчиков перенесено в отдельную ветку:
Поддельные датчики DS18B20

Re: Термостат ∆T=0,1°C на Mega8 TQFP

СообщениеДобавлено: 21 фев 2020 21:08
Vitaliy
Не найдется исходника для WinAVR?
Под какой размер LED печатка?

Re: Термостат ∆T=0,1°C на Mega8 TQFP

СообщениеДобавлено: 22 фев 2020 13:40
propell_ant
Vitaliy писал(а):Не найдется исходника для WinAVR?

Мне не попадался. Может hardlock что-нибудь видел...

Re: Термостат ∆T=0,1°C на Mega8 TQFP

СообщениеДобавлено: 22 фев 2020 15:06
Vitaliy
Мне нужно будет изменить номера портов для LED.
У Вас исходник под Codevision?
Под какой размер цифирок печатка?

Добавлено спустя 12 часов 43 минуты 52 секунды:
Что я сделал не так?
В termostat_led.h внес следующие изменения в соответствии с разводкой Атмеги.
При включении " -.-.-.-." затем "8.8.8.8." :(
Fuses E4 D9 без внешнего кварца.

#define DIGIT1 PORTB.7
#define DIGIT2 PORTB.0
#define DIGIT3 PORTB.1
#define DIGIT4 PORTB.6

#define OUTPIN_NO PORTB.3 // Нормально открытый выход
//#define OUTPIN_NC PORTB.4 // Нормально закрытый выход (не используется)
//таблица символов
#define SYMBOLS_LEN 15
#define SymbolsArray {\
0xFA,/*0*/\
0x82,/*1*/\
0xB9,/*2*/\
0xAB,/*3*/\
0xC3,/*4*/\
0x6B,/*5*/\
0x7B,/*6*/\
0xA2,/*7*/\
0xFB,/*8*/\
0xEB,/*9*/\
0x00,/*blank*/\
0x01,/*-*/\
/*0x39,//t*/\
0x9B,/*d*/\
/*0x79,//L*/\
0x78,/*C*/\
0x79/*E*/\
/*0xB3,//H*/\
/*0x30,//I*/\
};

Re: Термостат ∆T=0,1°C на Mega8 TQFP

СообщениеДобавлено: 24 фев 2020 15:22
Vitaliy
С переназначением портов разобрался.
Что означает моргание E 0.4?

Re: Термостат ∆T=0,1°C на Mega8 TQFP

СообщениеДобавлено: 24 фев 2020 23:22
propell_ant
Описание кодов ошибок есть в termostat_led.txt,
E04 - короткое замыкание на землю в линии данных датчика. Еще случается, что забывают ставить подтягивающий резистор 4К7. МК тогда при попытках обмена данными с датчиком видит только нули, так и определяется этот тип ошибки.

Re: Термостат ∆T=0,1°C на Mega8 TQFP

СообщениеДобавлено: 25 фев 2020 02:35
Vitaliy
Заработало. Просто забыл поменять номер порта на вход с датчика.
Осталась последняя проблема. Не реагируют кнопки.
PORTB=0b00110000; // нагрузку-выключить (регистры 2 и 3)
DDRB= 0b11001111; // клавиши управления (регистры 4 и 5)
Если ставлю
PORTB=0b00000000; // нагрузку-выключить (регистры 2 и 3)
DDRB= 0b11001111; // клавиши управления (регистры 4 и 5)
Идет хаотичная смена режимов или чего-то еще. :shock:

Re: Термостат ∆T=0,1°C на Mega8 TQFP

СообщениеДобавлено: 25 фев 2020 10:28
propell_ant
Vitaliy писал(а):Идет хаотичная смена режимов или чего-то еще
Да, так случается, когда в программе единички меняют на нолики.
Зачем понадобилось это исправление?

Re: Термостат ∆T=0,1°C на Mega8 TQFP

СообщениеДобавлено: 25 фев 2020 13:53
Vitaliy
Смотри выше.
Порт В используется для управления разрядами LED.
#define DIGIT1 PORTB.7
#define DIGIT2 PORTB.0
#define DIGIT3 PORTB.1
#define DIGIT4 PORTB.6
Кнопки и выходы на нем же.
Вроде, скофигурировано правильно (индикатор и выход на нагрузку работают), а кнопки не реагируют :(
Где-то еще нужно подправить?

Проблема может быть тут #define KeyCode (((PINB >> 4) & 0b00000011) ^ 0b00000011) ?

Re: Термостат ∆T=0,1°C на Mega8 TQFP

СообщениеДобавлено: 25 фев 2020 14:45
propell_ant
Vitaliy, вы нигде так и не написали, на каких пинах вы повесили кнопки.
Насчет #define KeyCode - да, правильно думаете, тут тоже придется исправлять.

Re: Термостат ∆T=0,1°C на Mega8 TQFP

СообщениеДобавлено: 25 фев 2020 18:10
Vitaliy
Кнопки и выходы там-же. B4,B5 - кнопки и B3 - выход.

Re: Термостат ∆T=0,1°C на Mega8 TQFP

СообщениеДобавлено: 26 фев 2020 12:39
propell_ant
Если кнопки и выходы на прежнем месте, то прошивка должна с ними нормально работать. Ни PORTB=0b... ни #define KeyCode незачем менять.
Более того, "хаотичная смена режимов или чего-то еще" говорит о том, что прошивка получает правильную информацию о состоянии портов B.4 и B.5.
Перепроверьте номера пинов, на которые вы повесили кнопки, возможно, это не B.4-B.5.

Re: Термостат ∆T=0,1°C на Mega8 TQFP

СообщениеДобавлено: 26 фев 2020 13:55
Vitaliy
Корочу на землю прямо на ISP. MISO and SCK.
Согласен, заменой единичек на нолики я убираю "+" с портов и они воспринимают как нажатие обоих кнопок. Значит, должно работать.
Тогда почему не реагирует на "кнопки"?
PINB >> 4 может быть проблемой?

Re: Термостат ∆T=0,1°C на Mega8 TQFP

СообщениеДобавлено: 26 фев 2020 16:13
propell_ant
Нет, это сдвиг на 4 бита, именно так и должно работать (и работает) опрос B.4 и B.5.

Re: Термостат ∆T=0,1°C на Mega8 TQFP

СообщениеДобавлено: 26 фев 2020 16:25
Vitaliy
Так почему не работает?
Не от того, что В0,В1,В6 и В7 использованы для других целей?

Re: Термостат ∆T=0,1°C на Mega8 TQFP

СообщениеДобавлено: 26 фев 2020 20:57
propell_ant
Vitaliy писал(а):Так почему не работает?
Не знаю.

Re: Термостат ∆T=0,1°C на Mega8 TQFP

СообщениеДобавлено: 27 фев 2020 02:48
Vitaliy
А где порыться?
Работает все, кроме кнопок.
Тут может быть?

#ifdef Blinking
BYTE BlinkCounter; //Счетчик моргания
#define BlinkCounterMask 0b00111111 //примерно 2 моргания в секунду
#define BlinkCounterHalfMask 0b00100000 //примерно 2 моргания в секунду
BYTE DimmerCounter; //Счетчик яркости, моргание будет с неполным отключением индикатора
bit DigitsActive = 0;
#define DimmerDivider 1 //Это регулировка яркости: 4 соответствует 60%, 2 - примерно 35%, 1 - 0%
#else
#ifdef Cathode
#define DigitsActive 0
#endif
#ifdef Anode
#define DigitsActive 1
#endif
#endif

#ifdef Anode
#define MINUS_PIN_MASK (~MINUS_PIN_MASK_BASE)
#define DOT_PIN_MASK (~DOT_PIN_MASK_BASE)
#define UNDERSCORE_PIN_MASK (~UNDERSCORE_PIN_MASK_BASE)
#endif
#ifdef Cathode
#define MINUS_PIN_MASK (MINUS_PIN_MASK_BASE)
#define DOT_PIN_MASK (DOT_PIN_MASK_BASE)
#define UNDERSCORE_PIN_MASK (UNDERSCORE_PIN_MASK_BASE)
#endif