Избавит от возни с кучей регистров.Он с динамической индикацией, много помех вырабатывает.
Опорник от Владимир_К
415285 просмотров, 466 ответов — стр. 27 из 32
5 января 2025 г. в 12:18#391
5 января 2025 г. в 12:25#392
Это все идет из ссср когда индикаторы потребляли большой ток. Эти индикаторы при правильном питании не шумят.
5 января 2025 г. в 05:11#393
Если у кого есть желание попробовать, могу в рассматриваемом здесь синтезаторе заменить индикатор на китайский на микросхеме MAX7221 (МАХ7219). Создает ли он помехи, не знаю, не проверял. Индикатор намного проще, меньше, не надо заморачиваться с пайкой нескольких микросхем. С белым свечением особенно нравится..
Скорее всего, проблему помех от индикатора можно решить и, не думаю, что это сложно.
Скорее всего, проблему помех от индикатора можно решить и, не думаю, что это сложно.
5 января 2025 г. в 06:13#394
Я извиняюсь, немного со своей "колокольни"....
Может заменить индикатор на что-то типа SSD1309? Задействованы ноги РС0 и РС1 (I2C). Библиотек в инете полно, шума от индикатора нет.
Может заменить индикатор на что-то типа SSD1309? Задействованы ноги РС0 и РС1 (I2C). Библиотек в инете полно, шума от индикатора нет.
5 января 2025 г. в 08:25#395
Тут «прикол» в индикаторах как у микроволновки.. 

5 января 2025 г. в 09:53#396
Увы мне,увы.Не взлетело.Итак,имеющееся железо:индикаторы с али с общим анодом(как выяснилось позднее) 3912AG,управляемые 561ИР2,контроллер Atmega-328P PU с кварцем 16МГц,программаторы SI-Prog и USB-asp, Avrdude.Печатку проверил несколько раз,выявил небольшие огрехи,исправил,теперь все верно.МК прошивал и тестировал в управлении другим синтезом от Андрея UR3ILF,программа работала.С последней тестовой прошивкой переключение сегментов раз в несколько секунд.Менял местами строки,как советовал Владимир.Пока не могу понять,что делаю не так.Прошивка для теста скомпилилась без ошибок.
5 января 2025 г. в 10:12#397
С последней тестовой прошивкой переключение сегментов раз в несколько секунд.Если у Вас применена микросхема Atmega328, Вы должны помнить, что фьюзы в микросхеме на заводе прошиты таким образом, что тактирование процессора осуществляется от внутреннего RC-генератора работающего на частоте 1 мгц. В моей программе переключение индикатора происходит через 0,5 сек. Это при частоте тактового генератора 8 мгц. Я обычно кварц на ставлю, а тактирую от RC-генератора частотой 8 мгц. То есть, если Вы не переустанавливали фьюзы, то у Вас переключение будет происходить через 4 сек.
Прочитайте программатором какие у Вас установлены фьюзы. Потом надо будет установить нужные.
Это что касается частоты перенключения. А то, что на индикаторе отсутствуют нужные цифры, с этим разберемся потом.
5 января 2025 г. в 10:18#398
контроллер Atmega-328P PU с кварцем 16МГцЧтобы микросхема тактировалась от кварца, для этого надо прописать фьюзы должным образом. Иначе кварц, даже если он запаян, не работает, а может и работает, но тактирование от него не происходит.
5 января 2025 г. в 10:19#399
Прочитайте программатором какие у Вас установлены фьюзы.Вот так сейчас
5 января 2025 г. в 10:42#400
Перепрошил
Сейчас обновляется как на Вашем видео.Но цифры не отображаются,а лишь сегменты,видимо все же залетел с индикаторами
Придется копать даташит и кроить печатку....
Сейчас обновляется как на Вашем видео.Но цифры не отображаются,а лишь сегменты,видимо все же залетел с индикаторами
Придется копать даташит и кроить печатку....5 января 2025 г. в 10:45#401
Ну вроде все так, как я выше писал. У Вас такт от RC-генератора и включен делитель на 8. Поэтому такт от 1 мгц. Сначала оставьте все как есть, но CKDIV8 измените на противоположное. У Вас он включен (птичка установлена), эта долбаная PonyProg пытается запутать народ. Вообще правильно считается - фьюз установлен, когда в нем записан ноль. И обычно так все и считают. Но тут Понипрог подсуетилась...
Вот ссылка на калькулятор фьюзов.
https://radioaktiv.ru/avr_fuses_calculator.html?part=ATmega328P
Вот ссылка на калькулятор фьюзов.
https://radioaktiv.ru/avr_fuses_calculator.html?part=ATmega328P
5 января 2025 г. в 10:53#402
Сейчас обновляется как на Вашем видео.Но цифры не отображаются,а лишь сегменты,видимо все же залетел с индикаторамиДа ничего страшного. Это все правится в программе. Ничего с печаткой делать не надо. Напишите что у Вас отображается на индикаторе, по порядку, потом будем кумекать и править программу.
Вам надо главное разобраться с индикаторами. То есть к каким выводам подключены сегменты. Сегменты расположены так - верхний -а, справа вверху - в, справа внизу - с, нижний - d, ну и так далее. Сравните со схемой индикатора у Тарасова. Но я не думаю, что там что-то напхимичили китайцы. Обычно, чтобы удобно выводить сегменты на выводы, применяют стандартное расположение. Но, еще раз - ничего с платой делать не надо. Это все просто сделать в программе.
5 января 2025 г. в 11:02#403
Кроме того, надо посмотреть на какие ноги 561ИР2 выводятся биты. Например число 10100110. Оно заталкивается начиная справа (а может слева, не помню, это сейчас не важно). То есть, в конце цикла, когда все биты будут записаны в регистр, после сигнала Strobe все эти биты будут выведены на ножки ИР2. То есть, сегиент, подключенный к выводу, на которм будет единица в Вашем индикаторе будет светиться. Таким образом, меняя цифры в знакогенераторе программы мы можем вывести любые цифры, а то и другие знаки, которые можно получить комбинируя зажженные зегменты.
5 января 2025 г. в 11:21#404
Ничего с печаткой делать не надоНашел даташит.Если паять по схеме на эту же печатку,то получается,что индикаторы должны быть со стороны микросхем.Если ИР держать к себе,то индикаторы с их стороны,над ними и точками вверх

5 января 2025 г. в 11:39#405
то получается,что индикаторы должны быть со стороны микросхемНе надо обращать внимание на схему. Главное правильно подать нитание на микросхемы и нндикаторы. Если цифры выводятся не те, что надо, это правится в программе.
Давайте сделаем следующее:
Откройте проект, зайдите в файл lcd.h. Найдите строку:
char Numbers[10] = {0x88,0xeb,0xc4,0xc1,0xa3,0x91,0x90,0xcb,0x80,0x81};
Измените ее вот так:
char Numbers[10] = {0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x30,0x80,0x80};
С такими знакогенератором на индикатор будет каждый раз выводиться (подсвечиваться) только один сегмент. А в самом начале вообще ни одного не должно светиться. Таким образом, программа выдаст нам какой сегмент соответствует установленному в программе. И тогда абсолютно станет ясно, какое число надо записать в знакогенератор, чтобы высветить например двойку.
Паять микросхемы со стороны индикаторов нехорошо, так как микросхемы будут упираться в переднюю панель, а у меня там, под индикаторами, между платой индикаторов и передней панелью, еще плата со светодиодами, которые показывают уровень сигнала.