Светодиодные фонари и световые приборы. Всё о светотехнике.
Изображения Дневники Группы Поиск
Вернуться   Форум FONAREVKA.RU Мастерские светотехников Мастерская: Tamagotchi и Rime
Расширенный поиск
Забыли пароль? Регистрация

  • О нашем проекте
  • Светотехника и световые приборы
  • Правила форума
Проект FONAREVKA.RU специализируется на предоставлении всей необходимой информации по светотехнике:

— светодиодные фонари;
— различные источники питания;
— разнообразные зарядные устройства;
— освещение помещений и наружное освещение;
— световые приборы для личного, пассажирского и грузового транспорта;
— специальные световые приборы для медицины, для растений, для аквариумов, для террариумов, а также аварийно-сигнальные световые приборы;
— альтернативные источники света;
— лазеры и лазерная техника.

Если у вас есть вопросы по выбору фонарей, аккумуляторов и зарядных устройств ознакомьтесь с FAQ от наших экспертов:

F.A.Q. по выбору фонарей различных типов;
F.A.Q. по выбору аккумуляторов;
F.A.Q. по выбору зарядных устройств.
Закрытая тема  Создать новую тему
Просмотров в теме 239877   Ответов в теме 837   Подписчиков на тему 28   Добавили в закладки 11
Опции темы Поиск в этой теме
Старый 27.01.2015, 00:04   541
vdavid
Ветеран Фонарёвки
 
Регистрация: 25.01.2015
Последняя активность: 05.05.2023 10:41
Сообщений: 1595
Сказал(а) спасибо: 268
Поблагодарили: 508 раз(а) в 322 сообщениях

По умолчанию Re: Народный драйвер мод v2. Часть 2.

Цитата:
Посмотреть сообщение Сообщение от DooMmen :
Подредактировал выход из мунлайта
Теперь возврат в минимум будет работать корректно. Но запоминаться по-прежнему не будет, имхо.

Вместо термистора для термоконтроля поставил просто диод 1N4148. Поскольку Vf кремниевого диода уменьшается примерно на 2 мВ на градус, а цена младшего разряда АЦП составляет приблизительно 4 мВ, то естественно все работает нормально. Чувствительность в 2 градуса здесь вполне достаточна. При изменении напряжения от 3 до 4.2В при постоянной температуре Vf увеличивается примерно на 18 мВ. Для компенсации этого безобразия добавил в прерывание ADC вот такое:
Цитата:
if (MAX_THEMP) // Если 0 - отключаем термо защиту
{
#ifdef VDONLY
if (adch_volt>OFF_VOLTAGE) adch_val -= (adch_volt-OFF_VOLTAGE)>>4;
#endif
Ну и в файл хидера:
Цитата:
#define VDONLY // раcкомментировать если вместо терморезистора стоит только диод
#ifdef VDONLY
#ifndef THERMVD
#define THERMVD
#endif
#endif
Работает нормально. И конструктивно получается неплохо. Диод впаиваем прямо в плату, так, что бы он прижался к дну пилюли при установке драйвера. Дно пилюли или сам диод пачкаем термопастой. Все.


Огромное спасибо DooMmen и Tamagotchi за отличную прошивку.

[Исправлено: vdavid, 27.01.2015 в 00:20]
vdavid вне форума   Вверх
Старый 27.01.2015, 10:32   542
дядюшка_зуэ
животное опасно
 
Аватар для дядюшка_зуэ
 
Регистрация: 18.11.2014
Последняя активность: 23.02.2022 10:39
Адрес: борисове поле
Сообщений: 961
Сказал(а) спасибо: 56
Поблагодарили: 153 раз(а) в 129 сообщениях

По умолчанию Re: Народный драйвер мод v2. Часть 2.

Цитата:
Посмотреть сообщение Сообщение от vdavid :
Но запоминаться по-прежнему не будет, имхо
подтверждаю проверил не запоминает откатился на свою
дядюшка_зуэ вне форума   Вверх
Старый 27.01.2015, 11:02   543
vdavid
Ветеран Фонарёвки
 
Регистрация: 25.01.2015
Последняя активность: 05.05.2023 10:41
Сообщений: 1595
Сказал(а) спасибо: 268
Поблагодарили: 508 раз(а) в 322 сообщениях

По умолчанию Re: Народный драйвер мод v2. Часть 2.

Цитата:
Посмотреть сообщение Сообщение от дядюшка_зуэ :
откатился на свою
Зачем? Чуть-чуть подправьте в конце процедуры main:
Код:
				WriteEEPROMByte(CFG_MOONMODE, 0xFF);
				ClearNewMode();    // Эту строку уберите
				#ifdef ONECLICKMOON   // Это лишнее, но никому не мешает
					#ifdef RST_LEV_MOON
						#ifdef REVERSE_SW 							 // сброс яркости после мунлайта
							current_mode = 0;
						#else
							current_mode = MAX_MODES;
						#endif
                                        #else                //добавьте это
				           ClearNewMode();   // и это
 					#endif
				#endif

[Исправлено: vdavid, 27.01.2015 в 11:06]
vdavid вне форума   Вверх
Поблагодарили: 3 раз(а)
ceramic (27.01.2015), DooMmen (27.01.2015), дядюшка_зуэ (27.01.2015)
Старый 27.01.2015, 11:09   544
дядюшка_зуэ
животное опасно
 
Аватар для дядюшка_зуэ
 
Регистрация: 18.11.2014
Последняя активность: 23.02.2022 10:39
Адрес: борисове поле
Сообщений: 961
Сказал(а) спасибо: 56
Поблагодарили: 153 раз(а) в 129 сообщениях

По умолчанию Re: Народный драйвер мод v2. Часть 2.

vdavid, будет сбрасывать в минимум после мунлайта и в случае снизу вверх и сверху вниз и помнить мунлайт?
дядюшка_зуэ вне форума   Вверх
Старый 27.01.2015, 11:22   545
vdavid
Ветеран Фонарёвки
 
Регистрация: 25.01.2015
Последняя активность: 05.05.2023 10:41
Сообщений: 1595
Сказал(а) спасибо: 268
Поблагодарили: 508 раз(а) в 322 сообщениях

По умолчанию Re: Народный драйвер мод v2. Часть 2.

дядюшка_зуэ, Да должен сбросить в минимум при любых раскладах (в том числе при выходе по одиночному клику) и запомнить. Мунлайт он помнил и до этих правок.
vdavid вне форума   Вверх
Поблагодарили: 1 раз
дядюшка_зуэ (27.01.2015)
Старый 27.01.2015, 12:42   546
дядюшка_зуэ
животное опасно
 
Аватар для дядюшка_зуэ
 
Регистрация: 18.11.2014
Последняя активность: 23.02.2022 10:39
Адрес: борисове поле
Сообщений: 961
Сказал(а) спасибо: 56
Поблагодарили: 153 раз(а) в 129 сообщениях

По умолчанию Re: Народный драйвер мод v2. Часть 2.

vdavid, спасибо буду испытывать по вечерам
у меня здесь помнил здесь не помнил
только в избранных отлаженных версиях работало
дядюшка_зуэ вне форума   Вверх
Старый 27.01.2015, 15:33   547
ceramic
Ветеран Фонарёвки
 
Аватар для ceramic
 
Регистрация: 08.10.2011
Последняя активность: 30.03.2024 21:54
Адрес: 哈尔滨
Сообщений: 8022
Сказал(а) спасибо: 934
Поблагодарили: 5193 раз(а) в 2784 сообщениях

По умолчанию Re: Народный драйвер мод v2. Часть 2.

Цитата:
Посмотреть сообщение Сообщение от vdavid :
Да должен сбросить в минимум при любых раскладах
Так и есть. Эта часть работает как надо.

Еще бы разобраться с выходом из индикации_заряда/стробов (в т.ч. и для их вызова из мунлайта), что-бы возвращалось в режим из которого они вызывались -- вообще замечательно бы стало.
ceramic вне форума   Вверх
Старый 27.01.2015, 15:45   548
MSS
Ветеран Фонарёвки
 
Аватар для MSS
 
Регистрация: 28.04.2013
Последняя активность: 08.01.2024 23:25
Адрес: Харьков
Сообщений: 3980
Сказал(а) спасибо: 529
Поблагодарили: 921 раз(а) в 628 сообщениях

По умолчанию Re: Народный драйвер мод v2. Часть 2.

Нужно после всего попросить Тамагочи закрепить какую-то окончательную версию прошивки в первом посте.

vdavid, вы уже разбирались полностью с этой прошивкой (вариант от DoomMen)?
можно там добавить скрытую группу режимов, что б по термоконтролю был плавный сброс 2800-2450-2100-1750-1400-1050?
Или добавить сброс максималки по времени (типа турбо режим - 30сек и сброс в средний)
MSS вне форума   Вверх
Старый 27.01.2015, 17:06   549
vdavid
Ветеран Фонарёвки
 
Регистрация: 25.01.2015
Последняя активность: 05.05.2023 10:41
Сообщений: 1595
Сказал(а) спасибо: 268
Поблагодарили: 508 раз(а) в 322 сообщениях

По умолчанию Re: Народный драйвер мод v2. Часть 2.

MSS, Меня то что есть сейчас почти полностью устраивает. С плавным сбросом от термодатчика в любом случае будут проблемы, поскольку для того, что бы режимы не рухнули вниз при срабатывании термозащиты на каждом переключении порог понижается на единицу вот здесь:
Код:
			#ifdef REVERSE_SW
			if(adch_val < (uint8_t)(MAX_THEMP + current_mode))  // режимы 0 - слабо 3 - сильно
			#else
			if(adch_val < (uint8_t)(MAX_THEMP - current_mode))  // режимы 0 - сильно 3 - слабо
			#endif
Что с этим делать при плавном понижении и при таком ресурсе памяти программ - я не могу себе представить. Была бы тинька пожирнее можно было бы сделать хоть и ПИД для поддержания максимально-допустимой температуры. А так... Остается только снять шляпу перед авторами, что сумели втиснуть на С такую кучу функционала в столь малый объем флеша.

ЗЫ. Из того что не нравится сейчас - это то, что при переключениях вверх (REVERSE_SW) при срабатывании токовой защиты или высасывателя батарей вниз уже никак не уйти. Разве что через мунлайт с последующим сбросом в минималку, который к счастью заработал как надо. Впрочем на всякий случай сделал сейчас переключение вниз. Не очень нравится мне так, но привыкнуть не проблема, я думаю.

ЗЗЫ. Сброс по времени сделать можно элементарно в процедуре std_loop. Вот только надо пробовать сколько оно отъест памяти.

[Исправлено: vdavid, 27.01.2015 в 17:14]
vdavid вне форума   Вверх
Поблагодарили: 2 раз(а)
DooMmen (27.01.2015), MSS (27.01.2015)
Старый 27.01.2015, 17:32   550
MSS
Ветеран Фонарёвки
 
Аватар для MSS
 
Регистрация: 28.04.2013
Последняя активность: 08.01.2024 23:25
Адрес: Харьков
Сообщений: 3980
Сказал(а) спасибо: 529
Поблагодарили: 921 раз(а) в 628 сообщениях

По умолчанию Re: Народный драйвер мод v2. Часть 2.

ПИД это круто
Я знаю, что он там понижается. Просто там режимы из линейки, доступной по нажатию кнопки.
А я имел ввиду то, что в основной линейке мы выбираем три режима кнопкой (35/700/2800мА). Мы не можем выбрать промежуточных вариантов 1050/1400/1750/2100, но они доступны для сброса программно. Это нужно переделывать программу.

Хотя ценность этого может оказаться низкой и весь сброс с 2800 до 700 осуществится за 10 секунд
MSS вне форума   Вверх
Старый 27.01.2015, 18:07   551
vdavid
Ветеран Фонарёвки
 
Регистрация: 25.01.2015
Последняя активность: 05.05.2023 10:41
Сообщений: 1595
Сказал(а) спасибо: 268
Поблагодарили: 508 раз(а) в 322 сообщениях

По умолчанию Re: Народный драйвер мод v2. Часть 2.

MSS, Я это понял, но если продолжать действовать как сейчас, то придется понижать на 6 единиц, тогда как сейчас только на 3.
vdavid вне форума   Вверх
Старый 27.01.2015, 18:20 Автор темы   552
Tamagotchi

 
Аватар для Tamagotchi
 
Регистрация: 07.09.2011
Последняя активность: 04.08.2023 18:59
Адрес: Волгоградская обл.
Сообщений: 13705
Сказал(а) спасибо: 3333
Поблагодарили: 7887 раз(а) в 3523 сообщениях

Отправить сообщение для Tamagotchi с помощью Skype™
По умолчанию Re: Народный драйвер мод v2. Часть 2.

Цитата:
Посмотреть сообщение Сообщение от MSS :
Нужно после всего попросить Тамагочи закрепить какую-то окончательную версию прошивки в первом посте.
Давно пора, только описание напишите.
Tamagotchi вне форума   Вверх
Старый 27.01.2015, 23:31   553
DooMmen
Участник форума по OpenID
 
Аватар для DooMmen
 
Регистрация: 08.01.2014
Последняя активность: 21.02.2021 00:07
Адрес: Украина, Харьков
Сообщений: 496
Записей в дневнике: 3
Сказал(а) спасибо: 329
Поблагодарили: 151 раз(а) в 89 сообщениях

По умолчанию Re: Народный драйвер мод v2. Часть 2.

Цитата:
Посмотреть сообщение Сообщение от дядюшка_зуэ :
подтверждаю проверил не запоминает
Так запоминает или нет? И что именно не запоминает? Режим с памятью или без?
Цитата:
Посмотреть сообщение Сообщение от vdavid :
Чуть-чуть подправьте в конце процедуры main:
Кажется я понял. Вариант с памятью и сбросом при выходе из мунлайта? Теперь все срослось. vdavid, Спасибо!
Цитата:
Посмотреть сообщение Сообщение от vdavid :
Из того что не нравится сейчас - это то, что при переключениях вверх (REVERSE_SW) при срабатывании токовой защиты или высасывателя батарей вниз уже никак не уйти.
Зато в программе сэкономили место. Как вариант - включаем мунлайт и выходим из него, да и такая ситуация с фонарем редко будет случаться.
Цитата:
Посмотреть сообщение Сообщение от ceramic :
Еще бы разобраться с выходом из индикации_заряда/стробов
В основном в этой прошивке был сделан упор на память режимов, и если её включить - все прекрасно работает, а вот без памяти - возвращаться в предыдущий режим - сложно, но я пытался это сделать, надо код пересмотреть.
Цитата:
Посмотреть сообщение Сообщение от MSS :
какую-то окончательную версию прошивки
Что-то мне подсказывает что со всеми хотелками окончательная версия - это нечто недостижимое. Как вариант - ссылка на доработанную мной прошивку постоянна.

Немножко привел в порядок процедуру main (чисто визуально), и подправил сохранение (спасибо vdavidу). Прошивка как всегда здесь.
__________________
Скажем нет пиратству! - Качаем только лицензионные диски.
DooMmen вне форума   Вверх
Старый 28.01.2015, 00:17   554
vdavid
Ветеран Фонарёвки
 
Регистрация: 25.01.2015
Последняя активность: 05.05.2023 10:41
Сообщений: 1595
Сказал(а) спасибо: 268
Поблагодарили: 508 раз(а) в 322 сообщениях

По умолчанию Re: Народный драйвер мод v2. Часть 2.

Цитата:
Посмотреть сообщение Сообщение от DooMmen :
В основном в этой прошивке был сделан упор на память режимов, и если её включить - все прекрасно работает, а вот без памяти - возвращаться в предыдущий режим - сложно, но я пытался это сделать, надо код пересмотреть.
Я так понял, речь идет о том, что нет возврата в мунлайт в случае, когда он отключается одним кликом после индикации заряда. Понятно почему. Не очень понятно как бороться. Если не будет нервировать, что выход из мунлайта происходит не сразу, а через 250 мс, то можно сделать малой кровью. С другой стороны так можно дойти и до того, что прервав строб индикацией батарей нужно снова вернуться в строб. Как на мой вкус, то я бы ничего не менял, а оставил как есть.

[Исправлено: vdavid, 28.01.2015 в 00:19]
vdavid вне форума   Вверх
Старый 28.01.2015, 10:18   555
дядюшка_зуэ
животное опасно
 
Аватар для дядюшка_зуэ
 
Регистрация: 18.11.2014
Последняя активность: 23.02.2022 10:39
Адрес: борисове поле
Сообщений: 961
Сказал(а) спасибо: 56
Поблагодарили: 153 раз(а) в 129 сообщениях

По умолчанию Re: Народный драйвер мод v2. Часть 2.

Цитата:
Посмотреть сообщение Сообщение от DooMmen :
Так запоминает или нет? И что именно не запоминает? Режим с памятью или без?
после внесения поправок vdavid из #543 поста все запоминает и корректно работает вход в мунлайт выход из него без выключения фонаря в минимум выход из мунлайта с выключением и последующим включением тоже правильный в минимум
дядюшка_зуэ вне форума   Вверх
Старый 29.01.2015, 23:33   556
vdavid
Ветеран Фонарёвки
 
Регистрация: 25.01.2015
Последняя активность: 05.05.2023 10:41
Сообщений: 1595
Сказал(а) спасибо: 268
Поблагодарили: 508 раз(а) в 322 сообщениях

По умолчанию Re: Народный драйвер мод v2. Часть 2.

MSS, Для отключения максимального режима по таймеру сделайте следующее.

Файл хидера:
Код:
#define TURBO_TIME 				30		    // таймаут на выключение максимального режима в секундах(работает только при отключенном термоконтроле)
#ifdef TURBO_TIME
  #if ((TURBO_TIME<3) || (TURBO_TIME>63))
    #undef TURBO_TIME
    #define TURBO_TIME 30
    #warning "Invalid value for TURBO_TIME. Set default value is 30"
  #endif	
#endif
В файл С в определении переменных:
Код:
register uint8_t MAX_THEMP				asm("r12");			// максимальная температура читается из EEPROM
//добавляем после этой строки следующее:
#else
  #ifdef TURBO_TIME
    register uint8_t turbo_timer		asm("r8");
    register uint8_t prev_mode		    asm("r9");
  #endif	
#endif
в функцию set_mode в конец:
Код:
	#ifndef THEMPERATURE_CONTROL
	  #ifdef TURBO_TIME
	    if (mode != prev_mode) {
	    #ifdef REVERSE_SW
		  if (mode == MAX_MODES) turbo_timer=(TURBO_TIME*4);
		#else 
		  if (mode == 0) turbo_timer=(TURBO_TIME*4);
        #endif
		}
        prev_mode=mode;  
	  #endif
	#endif
В обработчик прерывания WDT (ISR(WDT_vect)) в конец:
Код:
	#ifndef THEMPERATURE_CONTROL
	  #ifdef TURBO_TIME
	    if (turbo_timer) turbo_timer--;
            else 
	    #ifdef REVERSE_SW
		  if (current_mode == MAX_MODES) current_mode--;
	    #else 
		  if (current_mode == 0) current_mode++;
            #endif
	  #endif
	#endif


Если это нужно кому-то еще, можем попросить DooMmenа включить это в его код.

Переключение режима не запоминается. При следующем включении снова включимся на максимуме. Если нужно - можно сделать с запоминанием.
vdavid вне форума   Вверх
Поблагодарили: 4 раз(а)
DooMmen (30.01.2015), galex (30.01.2015), MSS (29.01.2015), Volosaty (30.01.2015)
Старый 29.01.2015, 23:39   557
MSS
Ветеран Фонарёвки
 
Аватар для MSS
 
Регистрация: 28.04.2013
Последняя активность: 08.01.2024 23:25
Адрес: Харьков
Сообщений: 3980
Сказал(а) спасибо: 529
Поблагодарили: 921 раз(а) в 628 сообщениях

По умолчанию Re: Народный драйвер мод v2. Часть 2.

Круто!!!
Конечно нужно это добавить в конструктор прошивки!!! Это супер апгрейд тем более можно самому задать время.
Уточнение - 30 в коде - это 30 реальных секунд будет или там коэффициент какой нужно учитывать?

Цитата:
Посмотреть сообщение Сообщение от vdavid :
Если нужно - можно сделать с запоминанием
Вот даже не знаю.
Я свои прошиваю вариантом без памяти. Старт режима всегда с минимального. Т.е. после выбора турбо режима он сбросит на предыдущий и при выключении - включится с минимального. Вполне логично, я так думаю.

А вот когда вариант с памятью прошивается, то тут нужно подумать. Я бы наверно оставил в памяти средний на который произошел сброс из турбо.

[Исправлено: MSS, 29.01.2015 в 23:54]
MSS вне форума   Вверх
Старый 29.01.2015, 23:43 Автор темы   558
Tamagotchi

 
Аватар для Tamagotchi
 
Регистрация: 07.09.2011
Последняя активность: 04.08.2023 18:59
Адрес: Волгоградская обл.
Сообщений: 13705
Сказал(а) спасибо: 3333
Поблагодарили: 7887 раз(а) в 3523 сообщениях

Отправить сообщение для Tamagotchi с помощью Skype™
По умолчанию Re: Народный драйвер мод v2. Часть 2.

MSS, Написано же - в секундах. С некоторыми оговорками, конечно.
Tamagotchi вне форума   Вверх
Старый 30.01.2015, 07:59   559
galex
сволочь фонарёвки
 
Регистрация: 27.05.2011
Последняя активность: Сегодня 10:55
Адрес: Россия, Пермский край
Сообщений: 38336
Сказал(а) спасибо: 5935
Поблагодарили: 32721 раз(а) в 15171 сообщениях

По умолчанию Re: Народный драйвер мод v2. Часть 2.

Цитата:
Посмотреть сообщение Сообщение от vdavid :
по таймеру
а ограничение в 63 секунды связано с особенностями микроконтроллера или просто так?
galex вне форума   Вверх
Старый 30.01.2015, 08:57   560
vdavid
Ветеран Фонарёвки
 
Регистрация: 25.01.2015
Последняя активность: 05.05.2023 10:41
Сообщений: 1595
Сказал(а) спасибо: 268
Поблагодарили: 508 раз(а) в 322 сообщениях

По умолчанию Re: Народный драйвер мод v2. Часть 2.

galex, WDT настроен на прерывания 1 раз в 250мс. Если счетчик этих прерываний однобайтный, то больше, чем 255/4 не получится. Если нужно больше - можно сделать двухбайтный счетчик, тогда максимальное время будет 16383 с. Или в первом же прерывании перестроить WDT. У него максимальный период 8 с. В этом случае время до 2040 секунд.

Да, в предыдущем сообщении забыл добавить инициализацию prev_mode. Где-то в начале функции main:

Код:
	#ifndef THEMPERATURE_CONTROL
	  #ifdef TURBO_TIME
  	    prev_mode=255;
	  #endif
	#endif
vdavid вне форума   Вверх
Поблагодарили: 4 раз(а)
DooMmen (30.01.2015), galex (31.01.2015), MSS (30.01.2015), Volosaty (30.01.2015)
Закрытая тема  Создать новую тему





Copyright ©2007 - 2024, FONAREVKA.RU

Powered by vBulletin®
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd. Перевод: zCarot

Правила форума | Отказ от ответственности
Время генерации страницы 0.13775 секунды с 17 запросами