【雕爺學(xué)編程】Arduino動(dòng)手做(73)---TM1637四位數(shù)碼管

37款傳感器與執(zhí)行器的提法,在網(wǎng)絡(luò)上廣泛流傳,其實(shí)Arduino能夠兼容的傳感器模塊肯定是不止這37種的。鑒于本人手頭積累了一些傳感器和執(zhí)行器模塊,依照實(shí)踐出真知(一定要?jiǎng)邮肿觯┑睦砟睿詫W(xué)習(xí)和交流為目的,這里準(zhǔn)備逐一動(dòng)手嘗試系列實(shí)驗(yàn),不管成功(程序走通)與否,都會(huì)記錄下來---小小的進(jìn)步或是搞不掂的問題,希望能夠拋磚引玉。

【Arduino】168種傳感器模塊系列實(shí)驗(yàn)(資料代碼+圖形編程+仿真編程)

實(shí)驗(yàn)七十三:4位LED數(shù)碼管顯示模塊0.36英寸亮度可調(diào)帶時(shí)鐘點(diǎn)( TM1637)


TM1637

天微 LED數(shù)碼管驅(qū)動(dòng)芯片,是一種帶鍵盤掃描接口的LED(發(fā)光二極管顯示器)驅(qū)動(dòng)控制專用電路,內(nèi)部集成有MCU 數(shù)字接口、數(shù)據(jù)鎖存器、LED 高壓驅(qū)動(dòng)、鍵盤掃描等電路。性能優(yōu)良,質(zhì)量可靠。主要應(yīng)用于電磁爐、微波爐及小家電產(chǎn)品的顯示屏驅(qū)動(dòng)。采用DIP/SOP20的封裝形式。



TM1637 特性

1、采用功率CMOS 工藝

2、顯示模式(8 段×6 位),支持共陽數(shù)碼管輸出

3、鍵掃描(8×2bit),增強(qiáng)型抗干擾按鍵識(shí)別電路

4、輝度調(diào)節(jié)電路(占空比 8 級(jí)可調(diào))

5、兩線串行接口(CLK,DIO)

6、振蕩方式:內(nèi)置RC 振蕩(450KHz+5%)

7、內(nèi)置上電復(fù)位電路

8、內(nèi)置自動(dòng)消隱電路

9、封裝形式:DIP20/SOP20


LED數(shù)碼管

led數(shù)碼管(LED Segment Displays)由多個(gè)發(fā)光二極管封裝在一起組成“8”字型的器件,引線已在內(nèi)部連接完成,只需引出它們的各個(gè)筆劃,公共電極。數(shù)碼管實(shí)際上是由七個(gè)發(fā)光管組成8字形構(gòu)成的,加上小數(shù)點(diǎn)就是8個(gè)。這些段分別由字母a,b,c,d,e,f,g,dp來表示。當(dāng)數(shù)碼管特定的段加上電壓后,這些特定的段就會(huì)發(fā)亮,以形成我們眼睛看到的字樣了。如:顯示一個(gè)“2”字,那么應(yīng)當(dāng)是a亮b亮g亮e亮d亮f不亮c不亮dp不亮。LED數(shù)碼管有一般亮和超亮等不同之分,也有0.5寸、1寸等不同的尺寸。小尺寸數(shù)碼管的顯示筆畫常用一個(gè)發(fā)光二極管組成,而大尺寸的數(shù)碼管由二個(gè)或多個(gè)發(fā)光二極管組成,一般情況下,單個(gè)發(fā)光二極管的管壓降為1.8V左右,電流不超過30mA。發(fā)光二極管的陽極連接到一起連接到電源正極的稱為共陽數(shù)碼管,發(fā)光二極管的陰極連接到一起連接到電源負(fù)極的稱為共陰數(shù)碼管。常用LED數(shù)碼管顯示的數(shù)字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。


是一個(gè)12腳的帶時(shí)鐘點(diǎn)的4位共陽數(shù)碼管(0.36英寸)的顯示模塊,驅(qū)動(dòng)芯片為TM1637,只需2根信號(hào)線即可使單片機(jī)控制4位8段數(shù)碼管。

模塊特點(diǎn)

? ? 顯示器件為4位共陽紅字?jǐn)?shù)碼管

? ? 數(shù)碼管8級(jí)灰度可調(diào)

? ? 控制接口電平可為5V或3.3V

? ? 4個(gè)M2螺絲定位孔,便于安裝



TM1637 4位數(shù)碼管顯示模塊電原理圖


TM1637 4位數(shù)碼管顯示模塊實(shí)驗(yàn)開源代碼

/*

【Arduino】168種傳感器模塊系列實(shí)驗(yàn)(資料代碼+圖形編程+仿真編程)

實(shí)驗(yàn)七十三:4位LED數(shù)碼管顯示模塊0.36英寸亮度可調(diào)帶時(shí)鐘點(diǎn)( TM1637)

*/

#include <Arduino.h>

#include <TM1637Display.h>

#define CLK 2

#define DIO 3

#define TEST_DELAY??2000

const uint8_t SEG_DONE[] = {

????SEG_B | SEG_C | SEG_D | SEG_E | SEG_G,??????// d

????SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F,??// O

????SEG_C | SEG_E | SEG_G,??????????????// n

????SEG_A | SEG_D | SEG_E | SEG_F | SEG_G??????// E

????};

TM1637Display display(CLK, DIO);

void setup()

{

}

void loop()

{

?int k;

?uint8_t data[] = { 0xff, 0xff, 0xff, 0xff };

?uint8_t blank[] = { 0x00, 0x00, 0x00, 0x00 };

?display.setBrightness(0x0f);

?display.setSegments(data);

?delay(TEST_DELAY);

?data[0] = display.encodeDigit(0);

?data[1] = display.encodeDigit(1);

?data[2] = display.encodeDigit(2);

?data[3] = display.encodeDigit(3);

?display.setSegments(data);

?delay(TEST_DELAY);

?display.clear();

?display.setSegments(data+2, 2, 2);

?delay(TEST_DELAY);

?display.clear();

?display.setSegments(data+2, 2, 1);

?delay(TEST_DELAY);

?display.clear();

?display.setSegments(data+1, 3, 1);

?delay(TEST_DELAY);

?display.showNumberDec(0, false); // Expect: ___0

?delay(TEST_DELAY);

?display.showNumberDec(0, true);?// Expect: 0000

?delay(TEST_DELAY);

????display.showNumberDec(1, false); // Expect: ___1

????delay(TEST_DELAY);

?display.showNumberDec(1, true);?// Expect: 0001

?delay(TEST_DELAY);

?display.showNumberDec(301, false); // Expect: _301

?delay(TEST_DELAY);

?display.showNumberDec(301, true); // Expect: 0301

?delay(TEST_DELAY);

?display.clear();

?display.showNumberDec(14, false, 2, 1); // Expect: _14_

?delay(TEST_DELAY);

?display.clear();

?display.showNumberDec(4, true, 2, 2);?// Expect: 04__

?delay(TEST_DELAY);

?display.showNumberDec(-1, false);?// Expect: __-1

?delay(TEST_DELAY);

?display.showNumberDec(-12);????// Expect: _-12

?delay(TEST_DELAY);

?display.showNumberDec(-999);????// Expect: -999

?delay(TEST_DELAY);

?display.clear();

?display.showNumberDec(-5, false, 3, 0); // Expect: _-5_

?delay(TEST_DELAY);

?display.showNumberHexEx(0xf1af);????// Expect: f1Af

?delay(TEST_DELAY);

?display.showNumberHexEx(0x2c);?????// Expect: __2C

?delay(TEST_DELAY);

?display.showNumberHexEx(0xd1, 0, true); // Expect: 00d1

?delay(TEST_DELAY);

?display.clear();

?display.showNumberHexEx(0xd1, 0, true, 2); // Expect: d1__

?delay(TEST_DELAY);

??

????for(k=0; k <= 4; k++) {

????????display.showNumberDecEx(0, (0x80 >> k), true);

????????delay(TEST_DELAY);

????}

?for(k = 0; k < 4; k++)

????data[k] = 0xff;

?for(k = 0; k < 7; k++) {

??display.setBrightness(k);

??display.setSegments(data);

??delay(TEST_DELAY);

?}

??

?for(k = 0; k < 4; k++) {

??display.setBrightness(7, false);??

??display.setSegments(data);

??delay(TEST_DELAY);

??display.setBrightness(7, true);?

??display.setSegments(data);

??delay(TEST_DELAY);??

?}

?display.setSegments(SEG_DONE);

?while(1);

}

實(shí)驗(yàn)開源圖形編程(Mind+、編玩邊學(xué))

實(shí)驗(yàn)開源仿真編程(linkboy4.2)


TM1637 4位數(shù)碼管顯示模塊實(shí)驗(yàn)場(chǎng)景圖


TM1637 4位數(shù)碼管顯示模塊的應(yīng)用案例——使用國(guó)產(chǎn)仿真編程軟件Linkboy, 超聲波智能控制測(cè)距儀



【花雕動(dòng)手做】超聲波測(cè)距儀,設(shè)定20厘米聲光提示(視頻)

https://v.youku.com/v_show/id_XNDk5NDQzNzk5Ng==.html



【花雕動(dòng)手做】超聲波測(cè)距儀,設(shè)定20厘米聲光提示
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容