Например TDA7294

Форум РадиоКот • Просмотр темы - простенькие часики на Ардуино
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Ср ноя 25, 2020 22:23:03

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 18 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: простенькие часики на Ардуино
СообщениеДобавлено: Пт ноя 20, 2020 06:52:17 
Встал на лапы
Аватар пользователя

Карма: 8
Рейтинг сообщений: 25
Зарегистрирован: Сб янв 29, 2011 21:43:38
Сообщений: 116
Откуда: Чернь, Тульская обл
Рейтинг сообщения: 0
Переделал свои часики, унесенные в своё время с завода Ресурс в Богородицке и верно отслужившие почти 30 лет.
Собрал простенькие часики на Ардуино, TM1637 и DS3231. Индикатор вот такой E40803-I4-PG2-0-W. Функционал минимальный.
Показывают время и раз в минуту - температуру. Есть будильник и автоматическая регулировка яркости. При попадании питания кажут время 1 сек раз в минуту.
Скетчик написан по прочтению разных форумов и пугает меня самого :shock:
Прошу помочь с оптимизацией кода и схемы.


Вложения:
индикатор.lay6 [22.55 KiB]
Скачиваний: 126
индикатор.dip [117.72 KiB]
Скачиваний: 128
test.rar [488.69 KiB]
Скачиваний: 153


Последний раз редактировалось chern55 Пт ноя 20, 2020 17:13:10, всего редактировалось 1 раз.
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: простенькие часики на Ардуино
СообщениеДобавлено: Пт ноя 20, 2020 12:10:40 
Друг Кота
Аватар пользователя

Карма: 87
Рейтинг сообщений: 967
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 11169
Откуда: ДОНЕЦК (ЮГО-ВОСТОК ua/DPR)
Рейтинг сообщения: 0
TM1637 мне не очень понравилась... Там разве что индикатор крупногабаритный... или ёжли ее функционал по опросу клавиатуры задействовать...
С моего взгляду более эффективна MAX7219 ... но там дисплей поменьше, зато позиций поболее...
Хоша... то уже "у кого чего имеется".
:dont_know:
Относительно СКОТча... ежли работает как требуется - то и хорошо.
Каждый пишет как умеет и как ему удобнее.
8)
По функциональности... ежли ставить "мультифункционал" проблемы с индикацией статуса устройства (и соответственно клавиатуры) из-за ограниченных возможностей дисплея. Придется вводить данные "по кускам" занимая одну-две позиции под код/символ текущего статуса. Это также более "на усмотрение автора" - кому как хочется, так и делают.
Иногда добавляют индикаторов "рода работы", иногда знакомест на дисплее.
ЕЕПРОМ при использовании RTC, содержащей встроенные будильники явно... излишнее.
Другое дело, когда уставок больше чем 2 позиции. Тогда или ресурс DS1307(энергонезависимое ОЗУ) или ЕЕПРОМ МК (при DS3231 - у нее ОЗУ нету) задействовать можно.
Для DS18B20 уставка пользователя обычно записывается в самом DS18B20...
Ну а контроль питания можно проводить при помощи встроенного АЦП по заданному интервалу опросов.
:roll:


Вернуться наверх
 
JLCPCB, всего $2 за прототип печатной платы! Цвет - любой!

Отличное качество, подтвержденное более чем 600,000 пользователей! Более 10,000 заказов в день.

Зарегистрируйтесь и получите два купона по 5$ каждый:https://jlcpcb.com/quote

Не в сети
 Заголовок сообщения: Re: простенькие часики на Ардуино
СообщениеДобавлено: Пт ноя 20, 2020 12:52:21 
Это не хвост, это антенна

Карма: 6
Рейтинг сообщений: 184
Зарегистрирован: Пт мар 26, 2010 17:16:52
Сообщений: 1401
Откуда: Kazan
Рейтинг сообщения: 0
Есть ещё куча драйверов для дисплея и разрядов поболее и количеством сегментов более 8.
Типа PT, ET, MC, TM1628,TM1638 коих полно на платах бытовой электроники.
Правда у многих трех-проводный интерфес, но и для MAX программу нужно доработать.
Да и практически все вышеназванные мс умеют и десяток кнопок сканировать.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Шестое юбилейное мероприятие в процессе
Не в сети
 Заголовок сообщения: Re: простенькие часики на Ардуино
СообщениеДобавлено: Пт ноя 20, 2020 13:28:55 
Друг Кота
Аватар пользователя

Карма: 87
Рейтинг сообщений: 967
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 11169
Откуда: ДОНЕЦК (ЮГО-ВОСТОК ua/DPR)
Рейтинг сообщения: 0
Только вот провести макетную проверку и корректировку программы по ним сможет лишь тот, у кого они в наличии имеются.
Да и документация под те микросхемы... мягко говоря .... "не очень"...
:(
Насчет программ... Это вполне по силам самому написать.
(за редким исключением нескольких библиотек протоколов реального времени)...
:roll:
Моё "домашнее КРУ"(ЖОНА) за часейки со светодиодным табло и "на шнурке" может мал прогневаться...
За излишний перерасход энергии и ...т.д....
8)

Теперь несколько замечаний по поводу "причесать" исходник...
Собственно данный вопрос я скорее как пример в свою https://radiokot.ru/forum/viewtopic.php?f=62&t=156720
перетащу... Поскольку данный вопрос затрагивает и аспекты написания многофайловиков в среде ардуиноIDE.
Пока добавлю ранее уже упоминавшееся...
В тексте исходника имееются ссылки на "сторонние библиотеки".
У Вас оные когда-то скачаны и размещены как минимум в каталоге
Код:
C:\Documents and Settings\User\Мои документы\Arduino\libraries

однако для корректной обработки исходника на другом ПК (у тех, кто пожелает с разборкой заняться) необходимо также наличие данных библиотек той же, что и на Вашем ПК версии. Конечно можно и по ссылке в инете порыться... Но иной раз просто ВЛОМ, а иной раз "не та версия броузера" или "ОС не той системы" у пользователя установлена. Вобщемс... я обычно "нештатные" библиотеки таки отдельной папкой в проект укладываю... А пользователь уже смотрит что использовать - свои установленные, или дополнительные к себе закинуть.
Ну и ессно версию установленной IDE также указывать необходимо (а иногда и версию "платформы")...
:beer:


Вернуться наверх
 
Материалы вебинара «STM32L5. Секреты оценки энергопотребления»

Опубликованы запись и материалы вебинара КОМПЭЛ, посвященного первому семейству МК STM32L5 на ядре Cortex-M33. На вебинаре было рассказано о самых распространенных ошибках при расчете энергопотребления микроконтроллеров и о специальном тесте ULPMark, позволяющем дать наиболее объективную оценку энергоэффективности. Измерения проводились на демонстрационной платформе STM32L562E-DK.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: простенькие часики на Ардуино
СообщениеДобавлено: Сб ноя 21, 2020 14:19:31 
Встал на лапы
Аватар пользователя

Карма: 8
Рейтинг сообщений: 25
Зарегистрирован: Сб янв 29, 2011 21:43:38
Сообщений: 116
Откуда: Чернь, Тульская обл
Рейтинг сообщения: 0
https://users.livejournal.com/klu-/58342.html


Вернуться наверх
 
Использование экосистемы STMicroelectronics: подключение датчиков к STM32G4

В статье описаны основные составляющие экосистемы STMicroelectronics для работы с микроконтроллерами STM32, а также приведен пример ее практического применения: создание проекта на базе STM32G4 с подключением датчиков и использованием отладочной платы NUCLEO-G474RE и платы расширения X-NUCLEO-IKS01A2.

Читать статью>>
Не в сети
 Заголовок сообщения: Re: простенькие часики на Ардуино
СообщениеДобавлено: Сб ноя 21, 2020 19:01:16 
Друг Кота
Аватар пользователя

Карма: 87
Рейтинг сообщений: 967
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 11169
Откуда: ДОНЕЦК (ЮГО-ВОСТОК ua/DPR)
Рейтинг сообщения: 0
Так ведь вопрос - то в ОБСУЖДЕНИИ возможных вариантов, а не в приказно-повелительном "делать только вот так".
8)
Рекомендации без проверки на действующем макете - штука неблагодарная. Посему или у кого уже готовые наработки будут выложены для обмена или "под заказ и быстро".
Готовое - вряд-ли подойдет Вам (не те индикаторы, не та элементная база) да и средства разработки могут отличаться.
Вопрос о версии ардуино IDE не случайное пожелание - в разных версиях несколько отличаются и компиляторы и варианты версии "платформ" (сделанное под "старшими" версиями не во всех случаях скомпилируется под "младшими").
У меня на разных машинах - и то разные - для ХР SP3(х32) 1.8.9, а для 10ки 1.8.13 (ее на ХР уже не установить).
Варианты коррекции схемы... - у каждого свой "набор предпочтений" не всегда совместимый с возможностями задающего вопросы. Касательно "свертки кода" - для того надо полноценно с Си/С++ познакомиться да перейти к самостоятельному изготовлению многофайловых проектов (еще и "особенности" самой IDE учитывать). К сожалению заинтересованных в разборе кода для ардуиноIDE среди матерых КОТОВ не так уж и много - скорее предложат на "чистый Си" или на АРМ перейти.
:beer:


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: простенькие часики на Ардуино
СообщениеДобавлено: Сб ноя 21, 2020 20:50:58 
Встал на лапы
Аватар пользователя

Карма: 8
Рейтинг сообщений: 25
Зарегистрирован: Сб янв 29, 2011 21:43:38
Сообщений: 116
Откуда: Чернь, Тульская обл
Рейтинг сообщения: 0
скорее предложат на "чистый Си" или на АРМ перейти

вот с этим полностью согласен.

хотелось бы уточнить метод округления температуры до целого числа перед выводом на дисплей
Код:
sensor.requestTemp();                            // Запрашиваем преобразование температуры
      delay(100);                                              // Ожидаем окончания преобразования
      temp = sensor.getTemp();
      disp.clear();
      disp.display(0, temp / 10);
      disp.display(1, temp % 10);


или тут http://arduino.ru/ спросить?


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: простенькие часики на Ардуино
СообщениеДобавлено: Сб ноя 21, 2020 21:20:17 
Друг Кота
Аватар пользователя

Карма: 87
Рейтинг сообщений: 967
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 11169
Откуда: ДОНЕЦК (ЮГО-ВОСТОК ua/DPR)
Рейтинг сообщения: 0
Метод округления зависит от автора программы - как кому удобно, так и делается.
Относительно "округления перед выводом" встроенного в библиотеку драйвера дисплея - смотрим состав/описание функций соответствующей библиотеки.
Касательно правил работы с DS18B20...
Вначале обрабатывается полный комплект данных (зависит от установленной для датчика разрядности), а затем уже округляем до нужного значения, приводим к надлежащей форме (двоичное -> двоично-десятичное -> позиционный сегментный код) и скармливаем микросхеме драйвера.
Первичная обработка ВСЕХ данных (целой и дробной частей) необходима для корректной работы с минусовыми температурами.
Там сначала перевод в положительное число, а уж затем обработка значения.
Я пользовался только минимальным набором "сторонних" библиотек - Adafruit_NeoPixel и OneWire - остальное дописывал самостоятельно - так что не факт, что мой вариант Вам подойдет.
Вот к примеру показометр, одна из функций которого работа с тем же DS18B20:
Вложение:
mdht_22m.zip [171.38 KiB]
Скачиваний: 73

Как я понимаю подход совсем иной...
:tea:
Посему... возможно у меня в КОТУИНКО будет чего-то подобного еще разбираться (аналогия часов на основе К145ИК1901 с применением RTC и прочих "модификаций" на основе ардуино)... Но там пока ничего особо нового не придумывается...
:dont_know:
Видно осенне-зимний творческий отпад...
:beer:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: простенькие часики на Ардуино
СообщениеДобавлено: Вс ноя 22, 2020 08:11:34 
Мучитель микросхем

Карма: 2
Рейтинг сообщений: -4
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 427
Рейтинг сообщения: 0
хотелось бы уточнить метод округления температуры до целого числа перед выводом на дисплей

Вы вдумайтесь в то что пишете. Метод округления до целого числа... Ужос!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: простенькие часики на Ардуино
СообщениеДобавлено: Вс ноя 22, 2020 09:58:59 
Друг Кота
Аватар пользователя

Карма: 87
Рейтинг сообщений: 967
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 11169
Откуда: ДОНЕЦК (ЮГО-ВОСТОК ua/DPR)
Рейтинг сообщения: 0
Скорее там интерес как с битами дробной части обращаться - у них же несколько "непривычный" весовой коэффициент.
Да работа с отрицательным значением порой является источником для "тараканов".
8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: простенькие часики на Ардуино
СообщениеДобавлено: Вс ноя 22, 2020 19:06:42 
Грызет канифоль

Карма: 1
Рейтинг сообщений: 32
Зарегистрирован: Вс дек 28, 2014 21:54:05
Сообщений: 259
Рейтинг сообщения: 0
Я прибавил бы 0,5 и отбросил дробную часть.
Не знаю точно, как в С ( наверное тоже просто) а в асме- как два пальца.

_________________
Я всё-всё узнAю и стану профессором.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: простенькие часики на Ардуино
СообщениеДобавлено: Вс ноя 22, 2020 19:13:15 
Друг Кота
Аватар пользователя

Карма: 87
Рейтинг сообщений: 967
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 11169
Откуда: ДОНЕЦК (ЮГО-ВОСТОК ua/DPR)
Рейтинг сообщения: 0
В случае с ассемблером обработка (на уровне команд) заметно отличается от того, что в Си делается.
Тут еще и особенности функций используемой в проекте библиотеки.
8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: простенькие часики на Ардуино
СообщениеДобавлено: Вс ноя 22, 2020 19:14:53 
Грызет канифоль

Карма: 1
Рейтинг сообщений: 32
Зарегистрирован: Вс дек 28, 2014 21:54:05
Сообщений: 259
Рейтинг сообщения: 0
Блин, совсем не секу в С :(

_________________
Я всё-всё узнAю и стану профессором.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: простенькие часики на Ардуино
СообщениеДобавлено: Вс ноя 22, 2020 19:28:11 
Друг Кота
Аватар пользователя

Карма: 87
Рейтинг сообщений: 967
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 11169
Откуда: ДОНЕЦК (ЮГО-ВОСТОК ua/DPR)
Рейтинг сообщения: 0
Я его (Си/С++) пока только на начальной стадии изучаю.
Правда в приложении к ардуино IDE.
И при открытом обсуждении учебных проектов.
8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: простенькие часики на Ардуино
СообщениеДобавлено: Вс ноя 22, 2020 19:49:16 
Мучитель микросхем

Карма: 2
Рейтинг сообщений: -4
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 427
Рейтинг сообщения: 0
При чём здесь Си не Си. Ты в логике распиши сначала. Язык это уже до жопы.

Добавлено after 13 minutes 37 seconds:
BOB51, извини что так обращаюсь.( Это больше к другим относится.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: простенькие часики на Ардуино
СообщениеДобавлено: Вс ноя 22, 2020 22:08:23 
Грызет канифоль

Карма: 1
Рейтинг сообщений: 32
Зарегистрирован: Вс дек 28, 2014 21:54:05
Сообщений: 259
Рейтинг сообщения: 0
OKF, ко мне что ли? Так я и распиСал. Всё предельно просто.

_________________
Я всё-всё узнAю и стану профессором.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: простенькие часики на Ардуино
СообщениеДобавлено: Пн ноя 23, 2020 10:49:51 
Друг Кота
Аватар пользователя

Карма: 87
Рейтинг сообщений: 967
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 11169
Откуда: ДОНЕЦК (ЮГО-ВОСТОК ua/DPR)
Рейтинг сообщения: 0
Весовой коэффициент для байта целого числа:
d7:d6:d5:d4:d3:d2:d1:d0
d0=1 (2 в степени 0)
d1=2 (2 в степени 1)
d2=4 (2 в степени 2)
d3=8 (2 в степени 3)
d4=16 (2 в степени 4)
d5=32 (2 в степени 5)
d6=64 (2 в степени 6)
d7=128 (2 в степени 7)
а вот для дробной части... чуток "с извратом"....
вот тот "хвостик дробный" у данных DSки:
d3:d2:d1:d0
d0=0,0625 (2 в степени -4)
d1=0,125 (2 в степени -3)
d2=0,25 (2 в степени -2)
d3=0,5 (2 в степени -1)
поскольку в ассемблере привычно работать с целыми для обработки дробной части предварительно меняем весовые коэффициенты
d0=625 (2 в степени -4)
d1=1250 (2 в степени -3)
d2=2500 (2 в степени -2)
d3=5000 (2 в степени -1)
а уже полученный результат превращаем в соответствующий (сегментный) код для индикации после запятой.
Только вот для отрицательных значений необходимо В ОБЯЗАТЕЛЬНОМ ПОРЯДКЕ предварительно для всего полученного после замера значения данных выполнить "дополнение до 2х" получив в результате положительное число. А уж затем - округлять или отбрасывать дробную часть.
8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: простенькие часики на Ардуино
СообщениеДобавлено: Пн ноя 23, 2020 19:07:00 
Встал на лапы
Аватар пользователя

Карма: 8
Рейтинг сообщений: 25
Зарегистрирован: Сб янв 29, 2011 21:43:38
Сообщений: 116
Откуда: Чернь, Тульская обл
Рейтинг сообщения: 0
Код:
 sensor.requestTemp();                            // Запрашиваем преобразование температуры
      delay(100);                                      // Ожидаем окончания преобразования
      float temp;                                      // температура будет с десятыми градуса
      temp = sensor.getTemp();                         // получаем температуру
      disp.clear();                                    // очищаем дисплей
      int t;                                           // задаём временную переменную
      t = round(temp);                                 // t станет целым
      disp.display(0, t / 10);                         // выводм десятки градусов
      disp.display(1, t % 10);                         // выводм единицы градусов
      disp.displayByte(2, _degree);                    // выводим знак градуса
      disp.displayByte(3, _C);                         // выводим знак Цельсия

:)))
а отрицательной температуры у меня дома, к счастью, не бывает. Проект — не метеостанция. название темы — простенькие часики на Ардуино


Вложения:
test.txt [11.78 KiB]
Скачиваний: 2
Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 18 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y