32 год мы работаем для разработчиков, изготовителей и ремонтников электроники
Практические занятия робототехника. Конструктор ROBOT BIN CLASSIC

Методы оплаты Методы оплаты
Покупайте товар со скидкой, выбирая эти формы оплаты!
Партнерская программа
Наши акции
 
Архив новостей Архив новостей
Новости Новости!
Нам очень жаль, но ТОВАРА НЕТ В НАЛИЧИИ! Когда он появится - мы автоматически Вас известим об этом, стоит только прописать свой email в системе уведомления, нажав на текст Уведомить о товаре.

Уведомление о появлении товара на складе

При появлении на нашем складе данного товара, на указанный вами адрес будет выслано уведомление

16-ти кнопочная клавиатура с 8-ю разрядным 7-ми сегментным индикатором

Рекомендуется для использования в Ардуино проектах.

Библиотеку смотрите здесь: https://github.com/Leonardoventurin/tm1638-library

Тестовый пример
Взято отсюда: http://blog.honeyjam.info/?p=130
/*
Example for TM1638 with an 8 digit common anode display.
The module also contains 16 buttons
The button value is returned in an unsigned integer with each bit representing a button
The keys are in a 4x4 grid (returned value):
2 8 32 128
512 2048 8192 32768
1 4 16 64
256 1024 4096 16384
*/

#include

//
#define PIN_STROBE 7
#define PIN_DATA 8
#define PIN_CLOCK 9

// TM1638
TM1638 module(PIN_DATA, PIN_CLOCK, PIN_STROBE);

// declare variables / constants
const byte segmentEncode[10] =
{
63, 6, 91, 79, 102, 109, 125, 7, 127, 111
}; // for digits from 0 to 9


void setup() {
// set up serial monitor
Serial.begin(9600);
}

/**
* QYF-TM1638
*
*/
void outputDisplay(byte dDigits[8], byte dDecimal, bool fillByZero) {
byte values[8];
byte vout[8];
// set values array to the segments required for each displayed digit into values array, only for decimal 0-9 (could extend for HEX)
for (int i=0; i < 8; i++)
{
values[i] = segmentEncode[dDigits[i]];
}

// fill output array - need to pack for common anode display - brute force method, this is for 8 digits
// digit order on display from left to right is 4,3,2,1,8,7,6,5
vout[0] = ((values[3] & 1 ) ) ((values[2] & 1 ) << 1) ((values[1] & 1) << 2) ((values[0] & 1) << 3) ((values[7] & 1) << 4) ((values[6] & 1 ) << 5) ((values[5] & 1 ) << 6) ((values[4] & 1 ) << 7);
vout[1] = ((values[3] & 2 ) >> 1) ((values[2] & 2 ) ) ((values[1] & 2) << 1) ((values[0] & 2) << 2) ((values[7] & 2) << 3) ((values[6] & 2 ) << 4) ((values[5] & 2 ) << 5) ((values[4] & 2 ) << 6);
vout[2] = ((values[3] & 4 ) >> 2) ((values[2] & 4 ) >> 1) ((values[1] & 4) ) ((values[0] & 4) << 1) ((values[7] & 4) << 2) ((values[6] & 4 ) << 3) ((values[5] & 4 ) << 4) ((values[4] & 4 ) << 5);
vout[3] = ((values[3] & 8 ) >> 3) ((values[2] & 8 ) >> 2) ((values[1] & 8) >> 1) ((values[0] & 8) ) ((values[7] & 8) << 1) ((values[6] & 8 ) << 2) ((values[5] & 8 ) << 3) ((values[4] & 8 ) << 4);
vout[4] = ((values[3] & 16) >> 4) ((values[2] & 16) >> 3) ((values[1] & 16) >> 2) ((values[0] & 16) >> 1) ((values[7] & 16) ) ((values[6] & 16) << 1) ((values[5] & 16) << 2) ((values[4] & 16) << 3);
vout[5] = ((values[3] & 32) >> 5) ((values[2] & 32) >> 4) ((values[1] & 32) >> 3) ((values[0] & 32) >> 2) ((values[7] & 32) >> 1) ((values[6] & 32) ) ((values[5] & 32) << 1) ((values[4] & 32) << 2);
vout[6] = ((values[3] & 64) >> 6) ((values[2] & 64) >> 5) ((values[1] & 64) >> 4) ((values[0] & 64) >> 3) ((values[7] & 64) >> 2) ((values[6] & 64) >> 1) ((values[5] & 64) ) ((values[4] & 64) << 1);

// To display a decimal point to the right of a digit set the value of vout[7] to
// 8, 4, 2, 1, 128, 64, 32, 16 (for digits from left to right), can set more than 1 decimal by adding the numbers
vout[7] = dDecimal;

module.setDisplay(vout); // send to display module
} // end outputDisplay


/**
*
* @param [in] unsigned long
* @param [in] bool 0
*/
void displayInt(unsigned long number, bool fillByZero)
{
//
byte displayDigits[8] = {0};

for(int i = 0; i < 8; i++)
{
displayDigits[7 - i] = number % 10;
number = number / 10;
if( 0 == number )
{
break;
}
}
outputDisplay(displayDigits,0, fillByZero);
}


//
void loop() {


displayInt(12345678,false);

delay(200); // delay .2 seconds then loop

}


QYF-TM1638

------------------
КВЛЕ0149:832