кто нибудь сам паял TM1637 ?

Вопросы от новичков
Labu559
Лейтенант
Сообщения: 359
Зарегистрирован: 25 янв 2018, 22:23
Откуда: Bukovyna
Имя: Василий

кто нибудь сам паял TM1637 ?

Сообщение Labu559 »

Di123 писал(а): 04 сен 2020, 17:47 у 1637 есть 8 сегментов и 6 управляющих индикаций
Всё совершенно верно! Но это было для индикатора с ОА. А для ОК мы всё перевернули наоборот и стало 6 сегментов и 8 разрядов, потому как ток течет через полевик, или биполярник, или биполярник с затвором только в одном направлении, потому как полупроводники. А направление тока зависит от структуры (n-p-n /p-n-p, N-канал/P-канал),точно так-же и через диод, светодиод. Ведь не зря Александр пытался заострить Ваше внимание на цитате о железе? Микросхема как выпускала ток на выводы с N-канальными ключами и принимала с P-канальных выводов в случае с ОА, так и продолжает это делать всё точно так-же для случая с ОК, и не имеет никакого значения как производитель обозвал это, сегменты(Seg) или сетки(Grid), а имеет значение как подключились к ней, куда катод и анод соответственно. Думаете выводы для ТМ1638 по другому называются? Нет. Мы ведь тоже обзывем переменные чтоб нам было понятно, ФЛПрог их меняет на gtv, а безсовестный компилятор вообще имена заменяет адресами памяти. От этого разве что-то меняется?
Теперь понятней о чем говорит железо?
Аватара пользователя
Di123
Капитан
Сообщения: 828
Зарегистрирован: 03 ноя 2018, 19:38
Имя: Дмитрий

кто нибудь сам паял TM1637 ?

Сообщение Di123 »

ясно я по другому предстовлял себе подключение
я думал там выход можно сделать как вход с тем же назначением как в ардуино допустим когда цепляем ей на А0 сегмент А и просто в блоке выбираем ОА или ОК а А0 просто становится выходом вместо входа

ладно придётся ОА заказывать с десяток
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

кто нибудь сам паял TM1637 ?

Сообщение Sancho »

Di123 писал(а): 05 сен 2020, 02:59 ладно придётся ОА заказывать с десяток
И это полностью будет соответствовать даташиту :)
[spoiler]
2020-09-05_08-09-53.png
[/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
rogekam
Рядовой
Сообщения: 82
Зарегистрирован: 24 июн 2020, 21:21
Откуда: RUS31
Имя: Egor
Благодарил (а): 1 раз

кто нибудь сам паял TM1637 ?

Сообщение rogekam »

Как вариант использовать MAX7219 для индикаторов с ОК. Внешнее регулирование тока сегментов индикатора. Встроенный блок в FLprog имеется. Это будет дешевле, чем покупать новые индикаторы.
Так как мне требовался максимальный набор символов и букв, я использовал TM1637 и пользовательский блок 1637LabUW9 уважаемого Labu559.
Аватара пользователя
ViktorPetrov
Капитан
Сообщения: 807
Зарегистрирован: 09 апр 2018, 23:56
Имя: Виктор
Благодарил (а): 4 раза
Поблагодарили: 1 раз

кто нибудь сам паял TM1637 ?

Сообщение ViktorPetrov »

Есть еще вариант ,как твою ТМ1637 подружить с индикатором ОК :smile198: ,надо только посмотреть вглубь до самого дна ,не только в ширь :)
Labu559
Лейтенант
Сообщения: 359
Зарегистрирован: 25 янв 2018, 22:23
Откуда: Bukovyna
Имя: Василий

кто нибудь сам паял TM1637 ?

Сообщение Labu559 »

ViktorPetrov писал(а): 05 сен 2020, 20:11 надо только посмотреть вглубь до самого дна ,не только в ширь
Ага, а можно ещё... как у цирюльника Голохвастова:
"Когда человек не такой, как вообще, потому один такой, а другой такой, и ум у него не для танцевания, а для устройства себя, для развязки свого существования, для сведения обхождения, и когда такой человек, ежели он вчёный, поднимется умом своим за тучи и там умом своим становится ещё выше Лаврской колокольни, и когда он студова глянет вниз, на людей, так они ему покажутся такие махонькие-махонькие, всё равно как мыши... пардон, как крисы... Потому что это же Человек! А тот, который он, это он, он тоже человек, невчёный, но... зачем же?! Это ж ведь очень и очень! Да! Да! Но нет! " :D

В железе не испытано, проверено в выводе в монитор порта, в Протеусе в пошаговой симуляции индикация есть, в постоянной не гасятся "залипают" старые сегменты. Как принцип (демо) решения задачи ("кошмара программиста"), так что звиняйте, кому надо- дерзайте.
Bit_to_Segmental_Indication_(CODE).ubi
Dig2Seg_withMonitor.ino
Можно применять и для 595-х и HT16K33 и ТМ1638 (8х8) и т.д. и т.п. для посегментной динамической индикации.
Sancho писал(а): 04 сен 2020, 13:55 То, о чём написал Василий, я проходил здесь.
Ув. [ref=#ff8000]Sancho[/ref], Александр это оно или как думаешь? Хотя вряд ли кому это пригодится, так для разминки.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

кто нибудь сам паял TM1637 ?

Сообщение Sancho »

Labu559 писал(а): 09 сен 2020, 11:50 Ув. Sancho, Александр это оно или как думаешь? Хотя вряд ли кому это пригодится, так для разминки
Я перегонял массив из 16 символов по 8 сегментов в 16 одинаковых сегментов на 8 штук.
[spoiler=код]

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

// передача из одного массива другому
byte q, w;// вспомогательные байты
for(int i=0; i<8; i++){
	q=0;
	w=0;
	for(z=0; z<8; z++){
		q<<=1;
		w<<=1;
		if (  !!(array_1_mode[z+8] & (1 << i)) )  q|=1;
		if (  !!(array_1_mode[z]   & (1 << 1)) )  w|=1;		
	}
	array_HT16[ i ]=q;
	array_HT16[i+8]=w;
[/spoiler]
Всё работает.
Но в моём случае хватало размерности мс :)

Отправлено спустя 23 минуты 25 секунд:
Labu559 писал(а): 09 сен 2020, 11:50 Хотя вряд ли кому это пригодится, так для разминки.
Мне пришлось. Разминка получилась.
Еще там точка автоматом прицепляется к нужному месту, выравнивание по правому краю в выделенных наборов знакомест ( их у меня было 5), индикация только старших символов при переполнении.
[spoiler=Остался только тестовый проект в протеусе]
screenshot_20-09-09_14-56-48.png
[/spoiler]

Отправлено спустя 7 минут 4 секунды:
Sancho писал(а): 17 май 2019, 15:59 Всё это связано с тем, что индикация при индикаторах с ОА происходит не по-буквенно, а по-строчно: сначала все А, затем В, C...H.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Labu559
Лейтенант
Сообщения: 359
Зарегистрирован: 25 янв 2018, 22:23
Откуда: Bukovyna
Имя: Василий

кто нибудь сам паял TM1637 ?

Сообщение Labu559 »

Sancho писал(а): 09 сен 2020, 15:07 Разминка получилась.
Александр, я чесно говоря не понял в чём смысл отрицания отрицания (опечатка ?), не встречал такой записи:
if ( !!(array_1_mode[z] & (1 << i)) ) w|=1; разве это не то же самое
if ( array_1_mode[z] & (1 << i)) w|=1;
сравниваем

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

if ( array_1_mode[z]   & (1 << i))  w|=1; // твою строку с моей
convByte |= ((arrBytes[i] & tempShift)<<i); // это я соединил в одну 
/* две строки функции из скетча 
tempBuff = arrBytes[i] & tempShift; 
convByte |= tempBuff<<i;
*/
делают то-же с небольшой разницей:
ты двигаешь байтом w<<=1, в который пишешь 1 только если бит-сегмент ==1, но в каждом цикле делаешь проверку if,
я двигаю битом перед записью в байт, но из-за отсутствия проверки, когда бит-сегмент ==0 лишний раз обнуляю ноль.
И разный порядок бит- младший слева у тебя, у меня-справа(у меня ошибка наверное).
Стили немного разные.
Спасибо, за потраченное время, было интересно и полезно поковыряться!
Ответить

Вернуться в «Начинающим»

Кто сейчас на конференции

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