Часы на TFT

Что бы еще такого сделать?... Предлагайте! Обсудим все!!!
MOHCTEP
Опытный кот
Сообщения: 768
Зарегистрирован: Вс янв 19, 2014 00:55:09

Re: Часы на TFT

Сообщение MOHCTEP »

goldenandy писал(а):ИБО МАКЕТКА МЕНЯ УЖЕ ВЫБЕСИЛА
А меня дополнительно еще и отсутствие кварцев и всего остального, что еще где-то едет))).
goldenandy писал(а):опорнику меги 48 - надо читать ДШ, какой у нее bandgap. Хотя должен быть 1.1 вольт, если мне память не изменяет.
Не изменяет. :) Удивляет, что пришлось поднять его аж до 1.5 в, для правдоподобных значений. У меги 8 он = 1.3 вольта, так и оставил.
Реклама
Аватара пользователя
GoldenAndy
Поставщик валерьянки для Кота
Сообщения: 1925
Зарегистрирован: Чт июл 28, 2016 07:58:37
Откуда: Kyiv, UA
Контактная информация:

Re: Часы на TFT

Сообщение GoldenAndy »

а как меряли ?

Код: Выделить всё

/************************* ADC - battery measuring *****************************************/
// меряем опору BANDGAP: MUX[3:0] = 1110, используя напряжение питания, ка Reference: REFS[1:0] = 01
void initBatteryMeasuring(void){
	// включается АЦП, выполняется первое (холостое) измерение.
	// Делитель тактовой частоты = 32: ADPS[2:0] = 101
	ADMUX = ( 0 << REFS1 ) | ( 1 << REFS0 ) | \
			( 0 << ADLAR ) | \
			( 1 << MUX3 ) | ( 1 << MUX2 ) | ( 1 << MUX1 ) | ( 0 << MUX0 );
	ADCSRA = ( 1 << ADEN ) | ( 0 << ADSC ) | ( 1 << ADIF ) | \
			 ( 1 << ADPS2 ) | ( 0 << ADPS1 ) | ( 1 << ADPS0 );
	// первое преобразование "вхолостую".
	getBatteryVoltage();
}

uint8_t getBatteryVoltage(void){		    
	ADCSRA |= ( 1 << ADSC );
	while ( ! (ADCSRA & ( 1 << ADIF )) ) {}
	ADCSRA |= ( 1 << ADIF );
	/************************************
	 *	В обычных условиях ADCres = Vin * 1024 / Vref
	 *	У нас Vin = Vbandgap = 1.25 В, а нужно найти Vref
	 *	Vref = Vbandgap * 1024 / ADCres
	 *	Если Vbandgap в милливольтах - то и результат будет 
	 *	в милливольтах. Если задать Vbandgap в десятках
	 *	милливольт и множитель 1024 округлить до 103
	 *	то результат будет в сотнях милливольт
	 *	и уложится в один байт.
	 *	При нашем питании результат будет в диапазоне 
	 *	от 15..20 и до 50 сотен милливольт.
	 ************************************/
	return ( 103UL * /*V(BG) in 10mV*/ 127 ) / ADC;
}
У меня в тестовой меге опора 1.27 вольта.....

ЗЫ. MUX и REFS указаны для Меги 8
ИзображениеИзображение
Изображение
 
Telegram               Лучшая благодарность ->
[+]
Реклама
MOHCTEP
Опытный кот
Сообщения: 768
Зарегистрирован: Вс янв 19, 2014 00:55:09

Re: Часы на TFT

Сообщение MOHCTEP »

У меня этак вот...

Код: Выделить всё

//#define ADC_UBG 130 // AtMega 8
#define ADC_UBG 150// AtMega x8
#define ADC_ION_10 (uint32_t)ADC_UBG * 1024
/***********************/
uint16_t v_bat;//VCC
uint16_t adc_val;

/**/
ISR(ADC_vect){
	static char adc_count = 0;
	if(adc_count == 0) adc_val = 0;
	adc_val += (ADCL | (ADCH<<8));
	adc_count ++; adc_count %= 4;
	if(adc_count == 0){ //4 раза измерили
		//disable ADC & ADC interrupt
		ADCSRA &=~((1<<ADEN) | (1<<ADIE));
		adc_val >>= 2;//adc_val = adc_val / 4  - среднее арифметическое 4-х измерений
		v_bat = ADC_ION_10 / adc_val;// == ADC_UBG * 1024 / adc_val  = напряжение питания х 100
	}
}

void ADC_measure(void){
	//enable ADC & ADC interrupt
	ADCSRA |= ((1<<ADEN) | (1<<ADIE));
	//start ADC conversion
	ADCSRA |= (1<<ADSC);
}

void init(void){
	//init ports/pins/timers etc...
	// ADC initialization
	// ADC Clock frequency: 125,000 kHz
	// ADC Voltage Reference: Int., cap. on AREF
	ADMUX=(0<<REFS1) | (1<<REFS0) | (0<<ADLAR) | (1<<MUX3) | (1<<MUX2) | (1<<MUX1) | (0<<MUX0);
	//ADCSRA=(1<<ADEN) | (0<<ADSC) | (0<<ADFR) | (0<<ADIF) | (1<<ADIE) | (1<<ADPS2) | (1<<ADPS1) | (0<<ADPS0);//по запросу
	ADCSRA=(1<<ADEN) | (0<<ADSC) | (1<<ADFR) | (0<<ADIF) | (1<<ADIE) | (1<<ADPS2) | (1<<ADPS1) | (0<<ADPS0);//непрерывные преобразования
	
	sei();
	//
	bmp280_init();
	bmp280_set_config(BMP280_REG_TSTB_500, BMP280_REG_FILTER_4, 0);//standby time - 500 ms, filter x4, 4-wire SPI!! Пишем вначале
	bmp280_set_ctrl(BMP280_REG_OVER_1, BMP280_REG_OVER_1, BMP280_REG_NORMAL_MODE);//temperature oversamplind x1, pressure oversamplind x1, power mode - normal !! Пишем следующим
	//sendMeteo();
   ADC_measure();
}
Аватара пользователя
GoldenAndy
Поставщик валерьянки для Кота
Сообщения: 1925
Зарегистрирован: Чт июл 28, 2016 07:58:37
Откуда: Kyiv, UA
Контактная информация:

Re: Часы на TFT

Сообщение GoldenAndy »

Вот так
#define ADC_UBG 150// AtMega x8
писать нельзя...
Ибо у вас везде дефайн ADC_UBG будет заменяться на строку 150// AtMega x8
включая комментарий!!!

Правильней вот так (если уже вы хотите комментарий в дефайне) #define ADC_UBG 150 /* AtMega x8 */
А еще правильней - в строке с дефайном не делать комментариев...
ИзображениеИзображение
Изображение
 
Telegram               Лучшая благодарность ->
[+]
Реклама
Эиком - электронные компоненты и радиодетали
Frogfot
Мучитель микросхем
Сообщения: 443
Зарегистрирован: Ср окт 19, 2011 08:48:27
Откуда: Мать городов русских

Re: Часы на TFT

Сообщение Frogfot »

[uquote="goldenandy",url="/forum/viewtopic.php?p=3591454#p3591454"]Приехал дисплей, ВМЕшка и FM-модуль.
С большим дисплеем реально круче. Но он менее яркий, нежели 2.4" :([/uquote]
Я тоже заметил - у меня есть 3.2" 320х480 на HX8357, у него яркость и контраст хуже чем у 2.4" и 2.8" на ILI9341
Хорошему коту и в декабре - март :)
Реклама
MOHCTEP
Опытный кот
Сообщения: 768
Зарегистрирован: Вс янв 19, 2014 00:55:09

Re: Часы на TFT

Сообщение MOHCTEP »

Да да. Это я уже здесь, в форме ответа, откомменттировал на скору руку, для понятности. В остальном нигде не напортачил?
Реклама
Аватара пользователя
GoldenAndy
Поставщик валерьянки для Кота
Сообщения: 1925
Зарегистрирован: Чт июл 28, 2016 07:58:37
Откуда: Kyiv, UA
Контактная информация:

Re: Часы на TFT

Сообщение GoldenAndy »

MOHCTEP, тогда понятно.

Напряжение bandgap можно померять :)
Нужно настроить инвертирующий вход компаратора на подключение к bg, а неинвертирующий - подключить к многооборотному подстроечному резистору, подключенному к питанию и земле.
В цикле опрашивать компаратор и выводить его состояние на светодиод. Без всяких задержек.

И крутить от земли к питанию. Поймать начало, когда диод начнет подмигивать, померять напряжение на резисторе.
Крутить дальше и поймать конец - когда диод уже перестает мигать и начинает гореть постоянно. Померять напряжение.
Среднее арифметическое - и есть Vbg.

Но вспоминаем график напряжения bg от температуры и питания - и становится грустно. Но экономненько-с.

--------------------------
Плату для внешнего датчика спаял. Припаял ВМЕ. Буду писать под нее код.
ИзображениеИзображение
Изображение
 
Telegram               Лучшая благодарность ->
[+]
MOHCTEP
Опытный кот
Сообщения: 768
Зарегистрирован: Вс янв 19, 2014 00:55:09

Re: Часы на TFT

Сообщение MOHCTEP »

goldenandy, интересная идея с измерением Vbg, да только с повторяемостью будет засада. Его ведь "вкомпиливать" нужно.
goldenandy писал(а):Но вспоминаем график напряжения bg от температуры и питания - и становится грустно. Но экономненько-с.
Еще грустнее то, что, похоже, будет зависимость и от конкретного экземпляра меги. Можно предусмотреть поправочный коэффициент или в самом датчике (если с дисплеем) или в часах, что удобнее имхо - можно настроить "на ходу". Ну, а с зависимостью от температуры и питания, да еще и не особо линейной, видимо, придется смириться.
На днях наткнулся на гитхаб от BoschSensortec, если еще не видели гляньте... :)
Аватара пользователя
GoldenAndy
Поставщик валерьянки для Кота
Сообщения: 1925
Зарегистрирован: Чт июл 28, 2016 07:58:37
Откуда: Kyiv, UA
Контактная информация:

Re: Часы на TFT

Сообщение GoldenAndy »

MOHCTEP писал(а):интересная идея с измерением Vbg, да только с повторяемостью будет засада. Его ведь "вкомпиливать" нужно
По измерению - это не идея, а способ. И для него нужно отдельную программу-прошивку. И подключение к AIN0 организовать...

А вот по "вкомпиливать" - есть мысль.
На внешнем датчике есть 2 кнопки для регулировки контрастности. И это можно использовать.

Можно предусмотреть механизм калибровки.
Необходимо запитать датчик стабильным питанием 3.30 вольт.
Если при включении питания обе кнопки зажаты, то померять и запомнить в ЕЕПРОМе реальное напряжение Vbg, принимая в качестве опоры точное, заранее оговоренное напряжение питания....

Давайте так. У меня есть уже ВМЕшка, есть плата внешнего датчика. Когда я на ней заставлю работать ВМЕшку - я посмотрю, сколько кода мне останется. Исходя из этого и будем думать.
А как закончу внешний датчик - pin1000 будет его тестировать, а я займусь второй версией часов. Ибо мне что то подсказывает, что как только я выложу окончательную схему, плату и прошивку для внешнего датчика, pin1000 тут же его повторит :)
ИзображениеИзображение
Изображение
 
Telegram               Лучшая благодарность ->
[+]
MOHCTEP
Опытный кот
Сообщения: 768
Зарегистрирован: Вс янв 19, 2014 00:55:09

Re: Часы на TFT

Сообщение MOHCTEP »

goldenandy писал(а):как только я выложу окончательную схему, плату и прошивку для внешнего датчика, pin1000 тут же его повторит
Похоже на то. :))
goldenandy писал(а):Можно предусмотреть механизм калибровки.
...
Тоже недурно и в часах лишних настроек не потребуется.
Вопрос: нет у меня дисплея от Нокии и не планируется. И обстоятельства диктуют сделать наружный датчик, как можно более незаметный, неприглядный. Можете, в процессе разработки, предусмотреть и такой вариант? Кнопки и калиброванное питание от лабораторника можно ведь "одноразово" подключить в процессе изготовления и прошивки.
Ну и по всем новинкам, безусловно не торопитесь. Сколько надо, столько и подождем, я так - тем более :) мои продаваны, что-то совсем неторопливые...
Аватара пользователя
GoldenAndy
Поставщик валерьянки для Кота
Сообщения: 1925
Зарегистрирован: Чт июл 28, 2016 07:58:37
Откуда: Kyiv, UA
Контактная информация:

Re: Часы на TFT

Сообщение GoldenAndy »

ну так не впаивайте дисплей :)

Вплоть до того, что можете развести свой вариант платы без излишеств. Без перемычек, без LDO....
Тут с коллегой на работе начали обговаривать вопрос изоляции внешних датчиков от прямых осадков, но с доступом воздуха к датчикам влажности-температуры
Так такое можно вмещать в канализационную трубу. Диаметром 40 или 50 мм. Оранжевую, для внешних коммуникаций. Сверху трубу затыкают заглушкой, оно на резинке, влагу не пускает. Снизу открытый выхлоп для датчиков....
Трубу можно оклеить фольгой для уменьшения нагрева от солнца...
Хотя, если оклеивать фольгой, то можно и серую.
ИзображениеИзображение
Изображение
 
Telegram               Лучшая благодарность ->
[+]
MOHCTEP
Опытный кот
Сообщения: 768
Зарегистрирован: Вс янв 19, 2014 00:55:09

Re: Часы на TFT

Сообщение MOHCTEP »

Думаю, так датчик врать будет. Надо еще вентиляционные щели, а лучше "крылышки" приделать, чтоб и воздухообмен был, для испарения росы и ветер не особо на показания влиял.
Аватара пользователя
pin1000
Сверлит текстолит когтями
Сообщения: 1290
Зарегистрирован: Чт май 24, 2018 12:07:05
Откуда: Челябинск-"Метеоритный"

Re: Часы на TFT

Сообщение pin1000 »

goldenandy
"… Без меня, меня женили… "
:tea: Пока небольшая пауза, заполняю её изготовлением корпуса для Часы1, еще пару подгонок и начну лакировать. Едет ко мне, " ближайшей лошадью" , из Питера, заводская плата для тестера Маркус. Кто бы знал, как противно отступать от своих принципов и делать на чужом. Так было один раз, когда мне, заядлому рыбаку, пришлось покупать рыбу для еды. Очень надеюсь, что это одноразовая ситуация.
Так что, не исключено, что в первую очередь буду добивать тестер( :) или он меня), тоже дело принципа.
Аватара пользователя
GoldenAndy
Поставщик валерьянки для Кота
Сообщения: 1925
Зарегистрирован: Чт июл 28, 2016 07:58:37
Откуда: Kyiv, UA
Контактная информация:

Re: Часы на TFT

Сообщение GoldenAndy »

pin1000 писал(а): Кто бы знал, как противно отступать от своих принципов и делать на чужом.
Ну вы к этому хобби вернулись после большого перерыва и оно пока вам не наскучило.
Я в этом плане более практичный человек. Если есть возможность купить более качественную заготовку за удобоваримые деньги, нежели ту, что я сделаю своими руками - я куплю. Но обычно готовых плат не существует под мои конструкции, ибо 99% моих поделий - авторские. Я практически не повторяю чужих конструкций. Могу сделать что то "по мотивам" - но все равно это свое будет. И плату надо делать. или заказывать.
Но с заводскими платами останавливает то, что заказ местных плат - дорогая подготовка к производству (фотошаблоны). И единичные платы дорогие выходят.
У китайцев - вроде недорого, но - доставка и минимум 10 плат.
Тут проще уже надумать несколько конструкций и собрать несколько плат в одну доставку...
Вот на часы-2 я психанул и заказал. Теперь остаток плат будет лежать мертвым грузом...
ИзображениеИзображение
Изображение
 
Telegram               Лучшая благодарность ->
[+]
MOHCTEP
Опытный кот
Сообщения: 768
Зарегистрирован: Вс янв 19, 2014 00:55:09

Re: Часы на TFT

Сообщение MOHCTEP »

[uquote="goldenandy",url="/forum/viewtopic.php?p=3592238#p3592238"]Можно предусмотреть механизм калибровки.
Необходимо запитать датчик стабильным питанием 3.30 вольт.
Если при включении питания обе кнопки зажаты, то померять и запомнить в ЕЕПРОМе реальное напряжение Vbg, принимая в качестве опоры точное, заранее оговоренное напряжение питания....[/uquote]
Идея рабочая - проверил. :) Но
goldenandy писал(а):НЕНАВИЖУ БЕСПАЕЧНЫЕ МАКЕТКИ!
Теперь и я тоже. Подаю с ЛБП 3.4 в, на контроллере - 2.5 в среднем и скачет, как умалишенное. Куда, чего пропадает - хз? Тестировал на 48 меге, в ЕЕПРОМ записалось "148", т.е. Ubg = 1.48v, после калибровки. Это 1.1v - по даташиту. :shock:
Аватара пользователя
pin1000
Сверлит текстолит когтями
Сообщения: 1290
Зарегистрирован: Чт май 24, 2018 12:07:05
Откуда: Челябинск-"Метеоритный"

Re: Часы на TFT

Сообщение pin1000 »

"… .Ну вы к этому хобби вернулись после большого перерыва и оно пока вам не наскучило.
Я в этом плане более практичный человек. Если есть возможность купить более качественную заготовку за удобоваримые деньги, нежели ту, что я сделаю своими руками - я куплю..."


Тут ,наверное, все проще. Каждый человек любит заниматься чем то своим, то что ему нравится, то что он знает и понимает или есть возможность понять и разобраться. Я лет с пяти, что то пилю, строгаю, собираю, и оно мне надоедает, никогда. Вещи, которые сделал сам, мне на порядки дороже покупного. Я, конечно, не буду делать сам радиодетали :)) , но платы, корпуса и многое другое, буду всегда делать сам. У каждого свой характер- это и хорошо.

Добавлено after 6 hours 14 minutes 33 seconds:
С Часы 1, полность закончил.
Как в фильме "Девчата", главная героиня говорила "… Тикают"!
Изображение Изображение
Аватара пользователя
GoldenAndy
Поставщик валерьянки для Кота
Сообщения: 1925
Зарегистрирован: Чт июл 28, 2016 07:58:37
Откуда: Kyiv, UA
Контактная информация:

Re: Часы на TFT

Сообщение GoldenAndy »

MOHCTEP писал(а):в ЕЕПРОМ записалось "148", т.е. Ubg = 1.48v, после калибровки. Это 1.1v - по даташиту
Если есть силы и желание - попробуйте без беспаечной макетки, навесным монтажом, померять Vbg через компаратор.
Может такой экземпляр меги :(
pin1000 писал(а):главная героиня говорила "… Тикают"!
Вот всегда завидовал людям с прямыми руками....
И, кстати, не пробовали рамку тачскрина упрятать под переднюю панельку ?
Или это так и задумано?
ИзображениеИзображение
Изображение
 
Telegram               Лучшая благодарность ->
[+]
Аватара пользователя
pin1000
Сверлит текстолит когтями
Сообщения: 1290
Зарегистрирован: Чт май 24, 2018 12:07:05
Откуда: Челябинск-"Метеоритный"

Re: Часы на TFT

Сообщение pin1000 »

На фото не очень видно. Снизу и сверху стоят ламели из черного дерева- макасара. В живую хорошо смотрится, на фото " спряталось". У меня сборка устройства идет спереди,, с укладкой в глухую коробку. Крепление к корпусу по бобышкам, через штатные отверстия дисплея.

Добавлено after 1 hour 7 minutes 43 seconds:
Мне показалось, если полностью прикрыть бока и верх корпусом, небольшой экран будет смотреться еще меньше, поэтому сделал так как сделал.
Аватара пользователя
GoldenAndy
Поставщик валерьянки для Кота
Сообщения: 1925
Зарегистрирован: Чт июл 28, 2016 07:58:37
Откуда: Kyiv, UA
Контактная информация:

Re: Часы на TFT

Сообщение GoldenAndy »

Коллеги, напомните, кому дали поиграться ВМР280 ?
Если я дам тестовый код, есть возможность его на меге 8 запустить ?
ИзображениеИзображение
Изображение
 
Telegram               Лучшая благодарность ->
[+]
MOHCTEP
Опытный кот
Сообщения: 768
Зарегистрирован: Вс янв 19, 2014 00:55:09

Re: Часы на TFT

Сообщение MOHCTEP »

Мне дали. :) Да, попробую...
Ответить

Вернуться в «Умные мысли»