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