Страница 2 из 2

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

Добавлено: 04 сен 2020, 19:52
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, а безсовестный компилятор вообще имена заменяет адресами памяти. От этого разве что-то меняется?
Теперь понятней о чем говорит железо?

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

Добавлено: 05 сен 2020, 02:59
Di123
ясно я по другому предстовлял себе подключение
я думал там выход можно сделать как вход с тем же назначением как в ардуино допустим когда цепляем ей на А0 сегмент А и просто в блоке выбираем ОА или ОК а А0 просто становится выходом вместо входа

ладно придётся ОА заказывать с десяток

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

Добавлено: 05 сен 2020, 08:10
Sancho
Di123 писал(а): 05 сен 2020, 02:59 ладно придётся ОА заказывать с десяток
И это полностью будет соответствовать даташиту :)
[spoiler]
2020-09-05_08-09-53.png
[/spoiler]

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

Добавлено: 05 сен 2020, 14:21
rogekam
Как вариант использовать MAX7219 для индикаторов с ОК. Внешнее регулирование тока сегментов индикатора. Встроенный блок в FLprog имеется. Это будет дешевле, чем покупать новые индикаторы.
Так как мне требовался максимальный набор символов и букв, я использовал TM1637 и пользовательский блок 1637LabUW9 уважаемого Labu559.

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

Добавлено: 05 сен 2020, 20:11
ViktorPetrov
Есть еще вариант ,как твою ТМ1637 подружить с индикатором ОК :smile198: ,надо только посмотреть вглубь до самого дна ,не только в ширь :)

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

Добавлено: 09 сен 2020, 11:50
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], Александр это оно или как думаешь? Хотя вряд ли кому это пригодится, так для разминки.

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

Добавлено: 09 сен 2020, 15:07
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.

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

Добавлено: 09 сен 2020, 22:43
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 лишний раз обнуляю ноль.
И разный порядок бит- младший слева у тебя, у меня-справа(у меня ошибка наверное).
Стили немного разные.
Спасибо, за потраченное время, было интересно и полезно поковыряться!