Минимальный заказ 1`000 руб. Наличие актуально (то, чего нет, в корзину добавить нельзя)
Работаем с юридическими и физическими лицами
Оформление заказов через сайт
• Предоплата 100%    • Без НДС
+7 (499) 579-93-66
по арт. | в найденном Расширенный поиск
Отслеживание отправлений
Каталог — техника
Кабели
Переходники и Адаптеры
Модули, платы, реле
Внешние накопители
Конвертеры
Комплектующие для ПК
Компьютерные аксессуары
Печать струйная и лазерная
Одноплатные компьютеры
Офисные принадлежности
Серверы
Электропитание
Видеонаблюдение
Бортовые компьютеры
ЖК индикаторы
Разборка
Разъемы и зажимы
Ресиверы (TV-тюнеры)
Измерительные приборы
Кронштейны и крепления
Климатическая техника
Корпуса для РЭА
Компоненты для монтажа
Контроллеры
Инструмент
GoPro
Навигация (GPS, ГЛОНАСС)
Оборудование
Программаторы
Программное обеспечение
Микроконтроллеры
Пинцеты
Оптические компоненты
Охлаждение
Мультимедиа
Светодиодная продукция
Сетевое оборудование
Смартфоны, планшеты, электронные книги
Трансиверы (WiFi, Bluetooth)
Трафареты
Химия
Торговое оборудование
Умный дом
Фото и видеокамеры, аксессуары
Уцененные товары
Электронные компоненты
Печати, штампы, фрезеровка
Упаковочные материалы
Разное
Роботы
Книги
Крепеж
Главная / Модули, платы, реле / Модули разные

Индикатор на TM1638

2000 Р
~$21.2
В корзину
В папку сравнения
6679
Только розница 1
артикул опт, мелкий опт наличие

Вот такой индикатор, на базе TM1638.

Cложного ничего, сериальный вход, но не SPI – линия данных на вывод и на ввод одна. Поэтому модуль рассчитан на подключение к произвольным пинам и обмен программный.

Видимо, для упрощения разводки платы  получилось, что внутренняя память чередуется – байт – семисегментный индикатор, байт (мл. бит) – одиночный светодиод. Поэтому по времени вышло неоптимально – нельзя использовать автоинкремент адреса. Впрочем, при тех микросекундах, наверное, не имеет особого значения.

Да, еще – регулировка яркости заметна на глаз – первые 4 градации.  Видимо, это особенность самой 1638 – по даташиту, градации заполнения – 1,2,4,10,11,12,13,14

Собственно текст модуля:

//______________________________________________________________________________
//
// Класс для платки LED-KEY на TM1638
// 8 7-ми сегментных, 8 LED, 8 key
// Должны быть определены дефайнами :
// TM1638_STB, TM1638_CLK, TM1638_DI, TM1638_DO, TM1638_OUTPUT
// Например:
//
//#define TM1638_STB PORTA_Bit0
//#define TM1638_CLK PORTA_Bit1
//#define TM1638_DO PORTA_Bit2
//#define TM1638_DI PINA_Bit2
//#define TM1638_OUTPUT DDRA_Bit2
//
// И еще должна быть определена тактовая, в мегагерцах, 8 МГц = 8
//
//#define MHZ 8
//
// TM1638_STB и TM1638_CLK должны быть настроены на ВЫВОД
// Структура памяти у этой платы странная – байт – индикатор,
// байт (точнее мл.бит) – свектодиод над ним. Потому автоинкрементная
// запись не годится. Хотя тут не структура памяти 1638, а схема платы виновата
//
// ____________________СИСТЕМА КОМАНД 1638______________________________________
//
// Address Command Set (1100.aaaa) a-dress
// Display Control Command Set (1000.PBBB) P-ower,B-right
// Data Command Set (0100.0fR0) f-ixed,R-ead
//______________________________________________________________________________
//
class LED_KEY_TM1638
{
private:

void write(char B);
char read();

public:

void init();

void clear(char fill); // очистка 7-сегментных (0) ну или заполнение
void off(); // выключить всё
void on(char bright); // ВКЛ. с опред. яркостью (8 градаций, 0=MIN)
void prints(char * str); // Вывести на 7-сегм. 8 байт из буфера, невзирая на 0
void printx(char sym,char X); // Вывести на 7-сегм. 1 байт в позицию X
void led_on(char num); // включить-выключить 1 светодиод
void led_off(char num);
void leds(char mask); // вывод всех 8-ми светодиодов, мл.бит=левый
char getkeys(); // вернет байт состояния кнопок, мл.бит = левый
};

// _____________________________________________________________________________
//
// Вывод байта SPI
// STB должен быть установлен ДО того
// _____________________________________________________________________________
void LED_KEY_TM1638::write(char B)
{
for (char i=8; i>0; i–)
{
TM1638_CLK = 0;
TM1638_DO = (B & 0×01);
TM1638_CLK = 1;
B = B >> 1;
}
}

// _____________________________________________________________________________
//
// STB должен быть установлен ДО того
// _____________________________________________________________________________
char LED_KEY_TM1638::read()
{
char B = 0;
for (char i = 8; i > 0; i–)
{
B = B >> 1;
TM1638_CLK = 0;
__delay_cycles(MHZ*1); // 1 uS
if (TM1638_DI) B |= 0×80;
TM1638_CLK = 1;
}
return(B);
}

// _____________________________________________________________________________
//
// очистка-заполнение
// LED не трогаем, только 7-сегментные
// _____________________________________________________________________________

void LED_KEY_TM1638::clear(char fill)
{
TM1638_OUTPUT = 1;

TM1638_STB = 0;
__delay_cycles(MHZ*1); // 1 uS
write(0×42); // запись, НЕ авто++!
TM1638_STB = 1;
__delay_cycles(MHZ*1);

TM1638_STB = 0;
for (char i = 0; i < 8; i++)
{
write(0xC0+i+i); // address
write(fill);
}
TM1638_STB = 1;

TM1638_OUTPUT = 0;
}

// _____________________________________________________________________________
//
// Начальное состояние линий и очистка индикатора (но не включение! см. on() )
// _____________________________________________________________________________
void LED_KEY_TM1638::init()
{
TM1638_OUTPUT = 0;
TM1638_STB = 1;
TM1638_CLK = 1;
__delay_cycles(MHZ*1); // 1 uS
clear(0×00);
}

// _____________________________________________________________________________
//
// Выключить индикацию
// _____________________________________________________________________________
void LED_KEY_TM1638::off()
{
TM1638_OUTPUT = 1;
TM1638_STB = 0;
write(0×80); // OFF display
TM1638_STB = 1;
__delay_cycles(MHZ*1);
TM1638_OUTPUT = 0;
}

// _____________________________________________________________________________
//
// Включить индикацию, 8 уровней яркости
// _____________________________________________________________________________
void LED_KEY_TM1638::on(char bright)
{
TM1638_OUTPUT = 1;
TM1638_STB = 0;
write(0×88 | (bright & 0×07));
TM1638_STB = 1;
__delay_cycles(MHZ*1);
TM1638_OUTPUT = 0;
}

// _____________________________________________________________________________
//
// Вывод 8 -ми байт из буфера. Должно уже быть перекодировано в 7-сегм
// Например по таблице
// char decode0F[]={0x3F,0×06,0x5B,0x4F,0×66,0x6D, 0x7D,0×07,0x7F,0x6F,0×77,0x7C,0×39,0x5E,0×79,0×71};
// _____________________________________________________________________________
void LED_KEY_TM1638::prints(char * str)
{
TM1638_OUTPUT = 1;

TM1638_STB = 0;
__delay_cycles(MHZ*1); // 1 uS
write(0×44); // запись, авто++
TM1638_STB = 1;
__delay_cycles(MHZ*1);

for (char i = 0; i < 8; i++)
{
TM1638_STB = 0;
write(0xC0+i+i); // address
write(*(str)++);
TM1638_STB = 1;
}

TM1638_OUTPUT = 0;

}

// _____________________________________________________________________________
//
// Вывод байта sym на индикатор X (без проверки границ, однао)
// Не забыть что 0 это код 0x3F
// _____________________________________________________________________________

void LED_KEY_TM1638::printx(char sym, char X)
{
TM1638_OUTPUT = 1;

TM1638_STB = 0;
__delay_cycles(MHZ*1); // 1 uS
write(0×44); // запись, авто++
TM1638_STB = 1;
__delay_cycles(MHZ*1);

TM1638_STB = 0;
write(0xC0+X+X); // address
write(sym);
TM1638_STB = 1;

TM1638_OUTPUT = 0;

}

// _____________________________________________________________________________
//
// Зажечь одиночный светодиод сверху
// _____________________________________________________________________________
void LED_KEY_TM1638::led_on(char num)
{
TM1638_OUTPUT = 1;
TM1638_STB = 0;
__delay_cycles(MHZ*1); // 1 uS
write(0×44); // fixed write
TM1638_STB = 1;
__delay_cycles(MHZ*1);

TM1638_STB = 0;
write(0xC1+num+num); // address
write(0×01);
TM1638_STB = 1;

TM1638_OUTPUT = 0;
}

// _____________________________________________________________________________
//
// Погасить одиночный светодиод сверху
// _____________________________________________________________________________
void LED_KEY_TM1638::led_off(char num)
{
TM1638_OUTPUT = 1;
TM1638_STB = 0;
__delay_cycles(MHZ*1); // 1 uS
write(0×44); // fixed write
TM1638_STB = 1;
__delay_cycles(MHZ*1);

TM1638_STB = 0;
write(0xC1+num+num); // address
write(0×00);
TM1638_STB = 1;

TM1638_OUTPUT = 0;
}

// _____________________________________________________________________________
//
// Вывести сразу 8 одиночных индикаторов
// _____________________________________________________________________________
void LED_KEY_TM1638::leds(char mask)
{
TM1638_OUTPUT = 1;
TM1638_STB = 0;
__delay_cycles(MHZ*1); // 1 uS
write(0×44); // fixed write
TM1638_STB = 1;
__delay_cycles(MHZ*1);

for (char i=0; i<8; i++)
{
TM1638_STB = 0;
write(0xC1+i+i); // address
write(mask & 0×01);
TM1638_STB = 1;
mask>>=1;
}

TM1638_OUTPUT = 0;
}

// _____________________________________________________________________________
//
// Вернет состояние кнопок (нажато = 1)
// _____________________________________________________________________________
char LED_KEY_TM1638::getkeys()
{
TM1638_OUTPUT = 1;
TM1638_STB = 0;
__delay_cycles(MHZ*8);

write(0×42); // чтение, авто++
TM1638_OUTPUT = 0;
TM1638_DO = 1; // подпорка О.К.
__delay_cycles(MHZ*10);

char result = 0;
char T;
T = read(); //
if (T & 0×01) result |= 0×01;
if (T & 0×10) result |= 0×10;
T = read(); //
if (T & 0×01) result |= 0×02;
if (T & 0×10) result |= 0×20;
T = read(); //
if (T & 0×01) result |= 0×04;
if (T & 0×10) result |= 0×40;
T = read(); //
if (T & 0×01) result |= 0×08;
if (T & 0×10) result |= 0×80;

TM1638_STB = 1;
return(result);
}

}

Вот и всё. Вставляете это в текст или по include, не забыв предварительно определить пины (см. в шапке текста) и тактовую частоту МК . Потом объявляете

LED_KEY_TM1638 display;

При инициализации программы вызывваете display.init() – и можно работать. Так, чтобы зажечь первый одиночный светодиод – вызываете display.led_on(0). Да, еще надо “включить” весь блок индикатора вызвав display.on(яркость)

Источник: http://avr.nikolaew.org/modules/tm1638

Size:75mmx48mm/2.95"x1.89"(inch) (approx)
The rated voltage: DC12V
Voltage range: DC7.0 V-13.6 V
The input power: 0.24 A
The rated speed: 9500 R.P.M
Temperature range:-10.. 70 ° C
 
How to connect:
VCC GND 5V power supply, STB CLK DIO MCU I/O port
This module for the chip TM1638, set the above three kinds of single chip microcomputer common peripheral circuit, the biggest characteristic is to simply take microcontroller three IO mouth can drive, scanning display and key scan don't need microcontroller intervention, only need to register to display data related to reading and writing or testing buttons, save MCU resources.
Wiring methods: VCC GND connected 5V supply, STB CLK DIO connected microcontroller IO port.
 
Индикатор на TM1638
Индикатор на TM1638
 
Новинки в наличии!
Кабель USB micro - micro угловой правый ввырх, 20-25см
1 800.00руб.
Кабель USB micro - micro угловой правый ввырх, 20-25см
Кабель USB micro - micro угловой левый, 20-25см
1 800.00руб.
Кабель USB micro - micro угловой левый, 20-25см
Переходник N-папа - N-папа
2 200.00руб.
Переходник N-папа - N-папа
Кабель RG174 20см с коннекторами угловой CRC9 - N-male
2 200.00руб.
Кабель RG174 20см с коннекторами угловой CRC9 - N-male
Кабель RG174 20см с коннекторами CRC9 - F-female
2 200.00руб.
Кабель RG174 20см с коннекторами CRC9 - F-female
Кабель RG174 20см с коннекторами CRC9 - N-male
2 200.00руб.
Кабель RG174 20см с коннекторами CRC9 - N-male
Кабель COM-COM папа-мама 1.8м (RS232f-RS232m) DB9
2 200.00руб.
Кабель COM-COM папа-мама 1.8м (RS232f-RS232m) DB9
Кабель DB9 F - DB9 M (RS232) (COM мама-папа) 0.9м
2 200.00руб.
Кабель DB9 F - DB9 M (RS232) (COM мама-папа) 0.9м
Atmel ISP переходник 10 пин - 6 пин с ключом, зеленая плата
700.00руб.
Atmel ISP переходник 10 пин - 6 пин с ключом, зеленая плата
Аудио шнур XLR мама - Jak 6.3, 34 см
2 600.00руб.
Аудио шнур XLR мама - Jak 6.3, 34 см
Повышающий стабилизатор на MT3608 2A Max, DC-DC
1 400.00руб.
Повышающий стабилизатор на MT3608 2A Max, DC-DC
4 канальный IIC I2C Logic Level Converter Bi-Directional двунаправленный 5V в 3.3V
380.00руб.
4 канальный IIC I2C Logic Level Converter Bi-Directional двунаправленный 5V в 3.3V
Модуль с Atmega168 16M 5V
1 400.00руб.
Модуль с Atmega168 16M 5V
Термометр ленточный 18-34 °C, 9см
480.00руб.
Термометр ленточный 18-34 °C, 9см
Кнопка с фиксатором, 250V 1.5A
320.00руб.
Кнопка с фиксатором, 250V 1.5A
Термометр ленточный 35-40 °C, 9см
480.00руб.
Термометр ленточный 35-40 °C, 9см
PoE адаптер (инжектор), 100Mbit (белый), 1шт
1 400.00руб.
PoE адаптер (инжектор), 100Mbit (белый), 1шт
Комплект PoE адаптеров, 100Mbit (белый)
3 000.00руб.
Комплект PoE адаптеров, 100Mbit (белый)
Реле SRD-05VDC-SL-C
720.00руб.
Реле SRD-05VDC-SL-C
Крепление для GoPro на стекло автомобиля с 3 присосками
3 000.00руб.
Крепление для GoPro на стекло автомобиля с 3 присосками
Аудио кабель мини джек 3,5 мм стерео - мини джек 3,5 мм стерео 1м, AUX
600.00руб.
Аудио кабель мини джек 3,5 мм стерео - мини джек 3,5 мм стерео 1м, AUX
Цифровой LCD термометр
1 400.00руб.
Цифровой LCD термометр
Литий-ионная батарея 3.7V 300 mAh model 702030
1 480.00руб.
Литий-ионная батарея 3.7V 300 mAh model 702030
Литий-ионная батарея 3.7V 150 mAh model 651723
1 160.00руб.
Литий-ионная батарея 3.7V 150 mAh model 651723
Держатель для литий-ионных батарей 18650 с индивидуальными выводами, 4 X 18650, 1 шт
2 880.00руб.
Держатель для литий-ионных батарей 18650 с индивидуальными выводами, 4 X 18650, 1 шт
Держатель для литий-ионных батарей 18650 с индивидуальными выводами, 1 X 18650, 1 шт
1 040.00руб.
Держатель для литий-ионных батарей 18650 с индивидуальными выводами, 1 X 18650, 1 шт
Держатель для литий-ионных батарей 18650 с индивидуальными выводами, 2 X 18650, 1 шт
1 440.00руб.
Держатель для литий-ионных батарей 18650 с индивидуальными выводами, 2 X 18650, 1 шт
Комплект PoE адаптеров, 100Mbit (черный)
3 000.00руб.
Комплект PoE адаптеров, 100Mbit (черный)
Диод шоттки SR5200 Schottky Barrier Rectifier Diode 5A 200V DO-201AD/DO-27
100.00руб.
Диод шоттки SR5200 Schottky Barrier Rectifier Diode 5A 200V DO-201AD/DO-27
Короб металлический (железный) 9*6.6*2.5cm/3.5*2.6*1.0"
1 400.00руб.
Короб металлический (железный) 9*6.6*2.5cm/3.5*2.6*1.0"
 
Популярные
Raspberry Pi Model B - 512 Мб, 700 - 1000 МГц
13 200.00руб.
Raspberry Pi Model B - 512 Мб, 700 - 1000 МГц
Преобразователь уровней TTL - RS232 (MAX232 - TTL 5V)
2 200.00руб.
Преобразователь уровней TTL - RS232 (MAX232 - TTL 5V)
Кабель COM-COM папа-мама 1.8-2м (RS232-RS232 male female) DB9
2 200.00руб.
Кабель COM-COM папа-мама 1.8-2м (RS232-RS232 male female) DB9
Кабель USB 3.0 папа в Micro-B 3.0 с дополнительным питанием - черный -  60см/15см
3 920.00руб.
Кабель USB 3.0 папа в Micro-B 3.0 с дополнительным питанием - черный - 60см/15см
Переходник DB9 (COM) папа - RJ45 модульный (произвольной распиновки)
1 800.00руб.
Переходник DB9 (COM) папа - RJ45 модульный (произвольной распиновки)
Карта памяти Compact Flash PQi 256Mb
2 600.00руб.
Карта памяти Compact Flash PQi 256Mb
Кабель DB9 F - DB9 F (RS232) (COM мама-мама) 130 см
2 600.00руб.
Кабель DB9 F - DB9 F (RS232) (COM мама-мама) 130 см
Кабель DB9 (COM) - RJ45 (для Cisco)
3 000.00руб.
Кабель DB9 (COM) - RJ45 (для Cisco)
PCI-E 1X Riser Card PCI Express Ribbon Extender Cable (PCI-E36Pin)
2 600.00руб.
PCI-E 1X Riser Card PCI Express Ribbon Extender Cable (PCI-E36Pin)
Кабель DB9 - mini USB (RS232 - miniUSB) (модификация GPS, 2 провода)
2 600.00руб.
Кабель DB9 - mini USB (RS232 - miniUSB) (модификация GPS, 2 провода)
PCI-E PCI-Express 16X Riser Card Extender Cable Ribbon (PCI 164 Pin)
3 000.00руб.
PCI-E PCI-Express 16X Riser Card Extender Cable Ribbon (PCI 164 Pin)
Конвертер STM485S (RS232 в RS485)
3 520.00руб.
Конвертер STM485S (RS232 в RS485)
VGA (DB15) мама-мама
540.00руб.
VGA (DB15) мама-мама
USBasp программатор для микроконтроллеров AVR
6 400.00руб.
USBasp программатор для микроконтроллеров AVR
Переходник DB9 (COM) мама - RJ45 модульный (произвольной распиновки)
1 800.00руб.
Переходник DB9 (COM) мама - RJ45 модульный (произвольной распиновки)
 
© SUN-STORE