找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
樓主: eagler8
打印 上一主題 下一主題
收起左側(cè)

【Arduino】108種傳感器模塊系列實驗(資料+代碼+圖形+仿真)

  [復(fù)制鏈接]
801#
ID:513258 發(fā)表于 2019-7-3 15:35 | 只看該作者
模塊規(guī)格
◎電壓:5V
◎二級管反向保護(hù),防止電源接反了
◎板上帶有藍(lán)色LED電源指示燈
◎模擬量輸出
◎彎曲度越大輸出電壓越高
◎帶有調(diào)零電位器
◎可以用電位器調(diào)節(jié)輸出起始電壓
◎輸出模擬電壓:0 ~ 3.5V(未驗證)
◎板子背后印有引腳輸出定義
◎彎曲應(yīng)變片就可以改變輸出電壓
◎彎曲感測器(內(nèi)含):
◎靈敏系數(shù):2.0
◎應(yīng)變極限:2%
◎?qū)Ь長:約2cm
◎感測器尺寸:7.1(L)x 5(W)mm
◎基底材料:改性酚醛基底
◎柵絲材料:康銅
◎阻值:350歐姆
◎疲勞壽命:>10000000次
◎助焊劑:普通焊錫松香

回復(fù)

使用道具 舉報

802#
ID:513258 發(fā)表于 2019-7-3 15:47 | 只看該作者
  1. /*
  2. 【Arduino】66種傳感器模塊系列實驗(46)
  3. 實驗四十六:350Ω高精度電阻式應(yīng)變片傳感器 (BF350箔式彎曲感測器)
  4. */

  5. void setup()
  6. {
  7.     Serial.begin(9600);
  8.     pinMode(A0,INPUT);
  9.     pinMode(13,OUTPUT);
  10. }

  11. void loop() {
  12.    Serial.println(analogRead(A0));
  13.    delay(50);
  14.   if (digitalRead(A0)) {
  15.     digitalWrite(13,LOW);
  16.   }
  17.   else {
  18.     digitalWrite(13,HIGH);
  19.     delay(500);
  20.   }
  21. }
復(fù)制代碼


回復(fù)

使用道具 舉報

803#
ID:513258 發(fā)表于 2019-7-3 16:08 | 只看該作者

回復(fù)

使用道具 舉報

804#
ID:513258 發(fā)表于 2019-7-3 16:11 | 只看該作者

回復(fù)

使用道具 舉報

805#
ID:513258 發(fā)表于 2019-7-3 16:55 | 只看該作者
實驗四十七:七段LED數(shù)碼管模塊Seven Segment Display

七段數(shù)碼管為常用顯示數(shù)字的電子元件。因為借由七個發(fā)光二極管以不同組合來顯示數(shù)字,所以稱為七段數(shù)碼管,而七劃旁的點為它的“第八劃”。一般的七段數(shù)碼管擁有八個發(fā)光二極管用以顯示十進(jìn)制0至9的數(shù)字,也可以顯示英文字母,包括十六進(jìn)制和二十進(jìn)制中的英文A至F(b,d,i為小寫,其他為大寫),F(xiàn)時大部份的七段數(shù)碼管會以斜體顯示。




回復(fù)

使用道具 舉報

806#
ID:513258 發(fā)表于 2019-7-3 16:58 | 只看該作者




回復(fù)

使用道具 舉報

807#
ID:513258 發(fā)表于 2019-7-3 17:50 | 只看該作者
控制
七段數(shù)碼管分為共陽極及共陰極,共陽極的七段數(shù)碼管的正極(或陽極)為八個發(fā)光二極管的共有正極,其他接點為獨立發(fā)光二極管的負(fù)極(或陰極),使用者只需把正極接電,不同的負(fù)極接地就能控制七段數(shù)碼管顯示不同的數(shù)字。共陰極的七段數(shù)碼管與共陽極的只是接駁方法相反而已。七段數(shù)碼管已可以特定的集成電路控制,只要向集成電路輸入4-bit的二進(jìn)制數(shù)字訊號就能控制七段數(shù)碼管顯示;市面上更有 8421-BCD 代碼直接轉(zhuǎn)為七劃管控制電平的 IC,方便配合單片機(jī)使用。




回復(fù)

使用道具 舉報

808#
ID:513258 發(fā)表于 2019-7-3 18:05 | 只看該作者
驅(qū)動方式
直流驅(qū)動------是指每個數(shù)碼管的每一個段碼都由一個單片機(jī)的I/O端口進(jìn)行驅(qū)動,或者使用如BCD碼二-十進(jìn)制譯碼器譯碼進(jìn)行驅(qū)動。優(yōu)點是編程簡單,顯示亮度高,缺點是占用I/O端口多。

動態(tài)顯示驅(qū)動------是將所有數(shù)碼管通過分時輪流控制各個數(shù)碼管的的COM端,就使各個數(shù)碼管輪流受控顯示。將所有數(shù)碼管的8個顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼管會顯示出字形,取決于單片機(jī)對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。




回復(fù)

使用道具 舉報

809#
ID:513258 發(fā)表于 2019-7-3 18:14 | 只看該作者
LED數(shù)碼管簡易測試方法
一個質(zhì)量保證的LED數(shù)碼管,其外觀應(yīng)該是做工精細(xì)、發(fā)光顏色均勻、無局部變色及無漏光等。對于不清楚性能好壞、產(chǎn)品型號及管腳排列的數(shù)碼管,可采用下面介紹的簡便方法進(jìn)行檢測。

1.干電池檢測法。
如圖所示,取兩節(jié)普通1.5V干電池串聯(lián)(3V)起來,并串聯(lián)一個100Ω、1/8W的限流電阻器,以防止過電流燒壞被測LED數(shù)碼管。將3V干電池的負(fù)極引線(兩根引線均可接上小號鱷魚夾)接在被測數(shù)碼管的公共陰極上,正極引線依次移動接觸各筆段電極(a~h腳)。當(dāng)正極引線接觸到某一筆段電極時,對應(yīng)筆段就發(fā)光顯示。用這種方法可以快速測出數(shù)碼管是否有斷筆(某一筆段不能顯示)或連筆(某些筆段連在一起),并且可相對比較出不同的筆段發(fā)光強弱是否一致。若檢測共陽極數(shù)碼管,只需將電池的正、負(fù)極引線對調(diào)一下,方法同上。

如果將圖中被測數(shù)碼管的各筆段電極(a~h腳)全部短接起來,再接通測試用干電池,則可使被測數(shù)碼管實現(xiàn)全筆段發(fā)光。對于質(zhì)量保證的數(shù)碼管,其發(fā)光顏色應(yīng)該均勻,并且無筆段殘缺及局部變色等。

如果不清楚被測數(shù)碼管的結(jié)構(gòu)類型(是共陽極還是共陰極)和引腳排序,可從被測數(shù)碼管的左邊第1腳開始,逆時針方向依次逐腳測試各引腳,使各筆段分別發(fā)光,即可測繪出該數(shù)碼管的引腳排列和內(nèi)部接線。測試時注意,只要某一筆段發(fā)光,就說明被測的兩個引腳中有一個是公共腳,假定某一腳是公共腳不動,變動另一測試腳,如果另一個筆段發(fā)光,說明假定正確。這樣根據(jù)公共腳所接電源的極性,可判斷出被測數(shù)碼管是共陽極還是共陰極。顯然,公共腳如果接電池正極,則被測數(shù)碼管為共陽極;公共腳如果接電池負(fù)極,則被測數(shù)碼管應(yīng)為共陰極。接下來測試剩余各引腳,即可很快確定出所對應(yīng)的筆段來。




回復(fù)

使用道具 舉報

810#
ID:513258 發(fā)表于 2019-7-3 18:22 | 只看該作者
2.萬用表檢測法。
這里以MF50型指針式萬用表為例,說明具體檢測方法:首先,按照圖所示,將指針式萬用表撥至“R×10k”電阻擋。由于LED數(shù)碼管內(nèi)部的發(fā)光二極管正向?qū)妷阂话恪?.8V,所以萬用表的電阻檔應(yīng)置于內(nèi)部電池電壓是15V(或9V)的“R×10k”擋,而不應(yīng)置于內(nèi)部電池電壓是1.5V的 “R×100”或“R×1k”擋,否則無法正常測量發(fā)光二極管的正、反向電阻。然后,進(jìn)行檢測。在測圖5(b)所示的共陰極數(shù)碼管時,萬用表紅表筆(注意:紅表筆接表內(nèi)電池負(fù)極、黑表筆接表內(nèi)電池正極)應(yīng)接數(shù)碼管的“-”公共端,黑表筆則分別去接各筆段電極(a~h腳);對于共陽極的數(shù)碼管,黑表筆應(yīng)接數(shù)碼管的“+”公共端,紅表筆則分別去接a~h腳。正常情況下,萬用表的指針應(yīng)該偏轉(zhuǎn)(一般示數(shù)在100kΩ以內(nèi)),說明對應(yīng)筆段的發(fā)光二極管導(dǎo)通,同時對應(yīng)筆段會發(fā)光。若測到某個管腳時,萬用表指針不偏轉(zhuǎn),所對應(yīng)的筆段也不發(fā)光,則說明被測筆段的發(fā)光二極管已經(jīng)開路損壞。與干電池檢測法一樣,采用萬用表檢測法也可對不清楚結(jié)構(gòu)類型和引腳排序的數(shù)碼管進(jìn)行快速檢測。




回復(fù)

使用道具 舉報

811#
ID:513258 發(fā)表于 2019-7-3 18:36 | 只看該作者
LED數(shù)碼管使用常識
1.LED數(shù)碼管一般要通過專門的譯碼驅(qū)動電路,才能正常顯示字符。由于LED數(shù)碼管的品種和類型繁多,所以在實際使用時應(yīng)注意根據(jù)電路的不同選擇不同類型的管子。例如,共陰極的LED數(shù)碼管,只能接入輸出為高電平的譯碼驅(qū)動電路;共陽極的LED數(shù)碼管,只能接入輸出為低電平的譯碼驅(qū)動電路。動態(tài)掃描顯示電路的輸出端,只能接多位動態(tài)LED數(shù)碼管。
2.各廠家或同一廠家生產(chǎn)的不同型號的LED數(shù)碼管,即使封裝尺寸完全相同,其性能和引腳排列有可能大相徑庭。反過來,功能和引腳排列相同的LED數(shù)碼管,外形尺寸往往有大有小。所以選用或代換LED數(shù)碼管時,只能以它的型號為根據(jù)。表3給出了國產(chǎn)BS×××系列LED數(shù)碼管與國內(nèi)外其他同類產(chǎn)品的直接代換型號,可供參考。
3.LED數(shù)碼管屬于電流控制型器件,它的發(fā)光亮度與工作電流成正比。實際使用時,每段筆劃的工作電流取5~15mA(指普通小型管),這樣既可保證亮度適中,延長使用壽命,又不會損壞數(shù)碼管。如果在大電流下長期使用,容易使數(shù)碼管亮度衰退,降低使用壽命,過大的電流(指超過內(nèi)部發(fā)光二極管所允許的極限值)還會燒毀數(shù)碼管。為了防止過大電流燒壞數(shù)碼管,在電路中使用時一定要注意給它串聯(lián)上合適的限流電阻器。
4.使用LED數(shù)碼管時必須注意區(qū)分普通亮度數(shù)碼管和高亮度數(shù)碼管。通常情況下,用高亮度數(shù)碼管可以代換現(xiàn)有設(shè)備上的普通亮度數(shù)碼管,但反過來不能用普通亮度數(shù)碼管代換高亮度數(shù)碼管。這是因為普通亮度數(shù)碼管的發(fā)光強度IV≥0.15mcd(毫坎),而高亮度數(shù)碼管的發(fā)光強度IV≥5mcd,兩者相差懸殊,并且普通亮度數(shù)碼管每個筆段的工作電流≥5mA,而高亮度數(shù)碼管在大約1mA的工作電流下即可發(fā)光。
5.在挑選國產(chǎn)BS×××系列LED數(shù)碼管時,應(yīng)注意產(chǎn)品型號標(biāo)注的末位編號,以便與譯碼驅(qū)動電路等相匹配。通常產(chǎn)品末位數(shù)字是偶數(shù)的,為共陽極數(shù)碼管,如BS206、BS244等;若產(chǎn)品末位數(shù)字是奇數(shù),則為共陰極數(shù)碼管,如BS205、BS325等。但也有個別產(chǎn)品例外,應(yīng)注意區(qū)分。型號后綴字母 “R”,表示發(fā)紅光;后綴字母“G”,表示發(fā)綠光;后綴字母“OR”,表示發(fā)橙光。
6.小型LED數(shù)碼管為一次性產(chǎn)品,即使其中一個筆段的發(fā)光二極管在使用中損壞,也只能更換新管。曾見某圖書介紹修復(fù)數(shù)碼管內(nèi)部損壞發(fā)光二極管的方法,筆者親自動手實踐,發(fā)現(xiàn)根本行不通,只會是徒勞的。因為采用環(huán)氧樹脂灌封的全密封產(chǎn)品,外殼根本無法打開,強行用刀切割,隨著面板的四分五裂,里面的電路和光導(dǎo)材料早已被破壞得面目全非了。
7.LED數(shù)碼管除了常用的“8”字形數(shù)碼管以外,較常見的還有圖6所示的“±1”數(shù)字管、“N”形管和“米”字管等。其中,“±1”數(shù)字管能夠顯示 “+1”和“-1”,以及小數(shù)點“.”!癗”形管除了具有“8”字形數(shù)碼管的功能外,還能夠顯示字母“N”等!懊住弊止芄δ茏钊,除顯示數(shù)學(xué)運算符號 “+”、“-”、“×”、“÷”之外,還可顯示A~Z共26個英文字母,常用作單位符號顯示。
8. LED數(shù)碼管的顯示面在出廠時貼有保護(hù)膜,在使用時可以撕下來。不要用尖硬物去碰觸顯示面,以免造成劃痕等物理損傷,影響顯示效果。焊接小型LED數(shù)碼管宜用20W左右的小功率電烙鐵,焊接時間一般不要超過3s,以免燙壞器件本身或線路板。




回復(fù)

使用道具 舉報

812#
ID:513258 發(fā)表于 2019-7-3 18:59 | 只看該作者
一位盆友送我的8個數(shù)碼管






回復(fù)

使用道具 舉報

813#
ID:513258 發(fā)表于 2019-7-3 19:31 | 只看該作者

回復(fù)

使用道具 舉報

814#
ID:513258 發(fā)表于 2019-7-3 19:33 | 只看該作者

回復(fù)

使用道具 舉報

815#
ID:513258 發(fā)表于 2019-7-3 20:15 | 只看該作者
本帖最后由 eagler8 于 2019-7-5 08:47 編輯
  1. /*
  2. 【Arduino】66種傳感器模塊系列實驗(47)
  3. 實驗四十七:七段LED數(shù)碼管模塊  之一
  4. 在這個實驗中,我們將只需逐段點亮和熄滅關(guān)閉LED,來熟悉七段數(shù)碼管的工作原理
  5. 使用共陽數(shù)碼管
  6. */

  7. void setup()
  8. {
  9. pinMode(2,OUTPUT);
  10. pinMode(3,OUTPUT);
  11. pinMode(4,OUTPUT);
  12. pinMode(5,OUTPUT);
  13. pinMode(6,OUTPUT);
  14. pinMode(7,OUTPUT);
  15. pinMode(8,OUTPUT);
  16. }

  17. void loop()
  18. {
  19.   for(int i=2;i<9;i++)
  20.   {
  21.     digitalWrite(i,HIGH);
  22.     delay(600);
  23.   }
  24.   
  25.   for(int i=2;i<9;i++)
  26.   {
  27.     digitalWrite(i,LOW);
  28.     delay(600);
  29.   }  
  30.   delay(1000);
  31. }
復(fù)制代碼

回復(fù)

使用道具 舉報

816#
ID:513258 發(fā)表于 2019-7-3 20:21 | 只看該作者
本帖最后由 eagler8 于 2019-7-5 09:03 編輯

接線

在該電路中,七段數(shù)碼管的引腳連接到Arduino引腳2-9,如下表所示。公共引腳(引腳3和引腳8)連接到VCC,dp沒有連接,因為此實驗未使用dp。

七段數(shù)碼管引腳
Arduino引腳
備注
1(e)
6

2(d)
5

3,8(COM)
VCC
共陽極
4(C )
4

5(dp)
-
6(b)
3

7(a)
2
9(F)
7

10(g)
8

七段
回復(fù)

使用道具 舉報

817#
ID:513258 發(fā)表于 2019-7-3 20:24 | 只看該作者
  1. /*
  2. 【Arduino】66種傳感器模塊系列實驗(47)
  3. 實驗四十七:七段LED數(shù)碼管模塊  之三
  4. */

  5. int pinDigitron = 2; //管腳D2連接到數(shù)碼管的A腳,D3連B... D9連h

  6. void setup() {
  7.   for(int x=0; x<8; x++)
  8.     pinMode(pinDigitron+x, OUTPUT); //設(shè)置各腳為輸出狀態(tài)
  9. }

  10. //在數(shù)碼管中顯示數(shù)字的函數(shù)
  11. void displayDigit(unsigned char digit) {
  12.   //定義一個數(shù)組表:不同數(shù)字的abcdefgh各段的取值
  13.   unsigned char abcdefgh[][8] = {
  14.     {1,1,1,1,1,1,0,0},  //0
  15.     {0,1,1,0,0,0,0,0},  //1
  16.     {1,1,0,1,1,0,1,0},  //2
  17.     {1,1,1,1,0,0,1,0},  //3
  18.     {0,1,1,0,0,1,1,0},  //4
  19.     {1,0,1,1,0,1,1,0},  //5
  20.     {1,0,1,1,1,1,1,0},  //6
  21.     {1,1,1,0,0,0,0,0},  //7
  22.     {1,1,1,1,1,1,1,0},  //8
  23.     {1,1,1,1,0,1,1,0},  //9
  24.     {1,1,1,0,1,1,1,0},  //A
  25.     {0,0,1,1,1,1,1,0},  //b
  26.     {1,0,0,1,1,1,0,0},  //C
  27.     {0,1,1,1,1,0,1,0},  //d
  28.     {1,0,0,1,1,1,1,0},  //E
  29.     {1,0,0,0,1,1,1,0},  //F
  30.   };
  31.   
  32.   if ( digit >= 16 ) return;
  33.   for (unsigned char x=0; x<8; x++)
  34.     digitalWrite( pinDigitron + x, abcdefgh[digit][x] );
  35. }

  36. void loop() {
  37.    //在數(shù)碼管中顯示0-9,A-F各個數(shù)字
  38.    for (int x=0; x<16; x++) {
  39.      displayDigit(x);  //調(diào)用displayDigit()子函數(shù),顯示數(shù)字
  40.      delay(1000); //等待1000毫秒
  41.    }
  42. }
復(fù)制代碼


回復(fù)

使用道具 舉報

818#
ID:513258 發(fā)表于 2019-7-3 20:30 | 只看該作者
  1. /*
  2. 【Arduino】66種傳感器模塊系列實驗(47)
  3. 實驗四十七:七段LED數(shù)碼管模塊  之四
  4. */

  5. const int a = 7; //a連接到數(shù)字引腳7
  6. const int b = 6; // b連接到數(shù)字引腳6
  7. const int c = 5; //c 連接到數(shù)字引腳5
  8. const int d = 11; //d連接到數(shù)字引腳11
  9. const int e = 10; //e  連接到數(shù)字引腳 10
  10. const int f = 8; //f  連接到數(shù)字引腳 8
  11. const int g = 9; //g  連接到數(shù)字引腳 9
  12. const int dp = 4; //dp  連接到數(shù)字引腳 4

  13. void setup()
  14. {
  15.   //從4到11循環(huán),并將它們?nèi)砍跏蓟癁?輸出
  16.   for (int thisPin = 4; thisPin <= 11; thisPin++)
  17.   {
  18.     pinMode(thisPin, OUTPUT);
  19.   }
  20.   digitalWrite(dp, LOW); //從4到11循環(huán),并將它們?nèi)枯敵?br />
  21. }

  22. /*********以下為數(shù)碼管 1-f 的顯示函數(shù)*********/
  23. void digital_1(void) //顯示 1 函數(shù)
  24. {
  25.   digitalWrite(c, HIGH); //數(shù)碼管c段為高電平
  26.   digitalWrite(b, HIGH); //數(shù)碼管b段為高電平
  27.   for (int j = 7; j <= 11; j++) //數(shù)碼管其余段為低電平
  28.     digitalWrite(j, LOW);
  29. }
  30. void digital_2(void)
  31. {
  32.   digitalWrite(b, HIGH);
  33.   digitalWrite(a, HIGH);
  34.   for (int j = 9; j <= 11; j++)
  35.     digitalWrite(j, HIGH);
  36.   digitalWrite(c, LOW);
  37.   digitalWrite(f, LOW);
  38. }
  39. void digital_3(void)
  40. {
  41.   unsigned char j;
  42.   digitalWrite(g, HIGH);
  43.   digitalWrite(d, HIGH);
  44.   for (j = 5; j <= 7; j++)
  45.     digitalWrite(j, HIGH);
  46.   digitalWrite(f, LOW);
  47.   digitalWrite(e, LOW);
  48. }
  49. void digital_4(void)
  50. {
  51.   digitalWrite(c, HIGH);
  52.   digitalWrite(b, HIGH);
  53.   digitalWrite(f, HIGH);
  54.   digitalWrite(g, HIGH);
  55.   digitalWrite(a, LOW);
  56.   digitalWrite(e, LOW);
  57.   digitalWrite(d, LOW);
  58. }
  59. void digital_5(void)
  60. {
  61.   unsigned char j;
  62.   for (j = 7; j <= 9; j++)
  63.     digitalWrite(j, HIGH);
  64.   digitalWrite(c, HIGH);
  65.   digitalWrite(d, HIGH);
  66.   digitalWrite(b, LOW);
  67.   digitalWrite(e, LOW);
  68. }
  69. void digital_6(void)
  70. {
  71.   unsigned char j;
  72.   for (j = 7; j <= 11; j++)
  73.     digitalWrite(j, HIGH);
  74.   digitalWrite(c, HIGH);
  75.   digitalWrite(b, LOW);
  76. }
  77. void digital_7(void)
  78. {
  79.   unsigned char j;
  80.   for (j = 5; j <= 7; j++)
  81.     digitalWrite(j, HIGH);
  82.   for (j = 8; j <= 11; j++)
  83.     digitalWrite(j, LOW);
  84. }
  85. void digital_8(void)
  86. {
  87.   unsigned char j;
  88.   for (j = 5; j <= 11; j++)
  89.     digitalWrite(j, HIGH);
  90. }
  91. void digital_9(void)
  92. {
  93.   unsigned char j;
  94.   for (j = 5; j <= 9; j++)
  95.     digitalWrite(j, HIGH);
  96.   digitalWrite(d, LOW);
  97.   digitalWrite(e, LOW);
  98. }
  99. void digital_A(void)
  100. {
  101.   unsigned char j;
  102.   for (j = 5; j <= 10; j++)
  103.     digitalWrite(j, HIGH);
  104.   digitalWrite(d, LOW);
  105. }
  106. void digital_b(void)
  107. {
  108.   unsigned char j;
  109.   for (j = 7; j <= 11; j++)
  110.     digitalWrite(j, HIGH);
  111.   digitalWrite(a, LOW);
  112.   digitalWrite(b, LOW);
  113. }
  114. void digital_C(void)
  115. {
  116.   digitalWrite(a, HIGH);
  117.   digitalWrite(b, LOW);
  118.   digitalWrite(c, LOW);
  119.   digitalWrite(d, HIGH);
  120.   digitalWrite(e, HIGH);
  121.   digitalWrite(f, HIGH);
  122.   digitalWrite(g, LOW);
  123. }
  124. void digital_d(void)
  125. {
  126.   unsigned char j;
  127.   digitalWrite(a, LOW);
  128.   digitalWrite(f, LOW);
  129.   digitalWrite(b, HIGH);
  130.   digitalWrite(c, HIGH);
  131.   digitalWrite(j, HIGH);
  132.   for (j = 9; j <= 11; j++)
  133.     digitalWrite(j, HIGH);
  134. }
  135. void digital_E(void)
  136. {
  137.   unsigned char j;
  138.   digitalWrite(b, LOW);
  139.   digitalWrite(c, LOW);
  140.   for (j = 7; j <= 11; j++)
  141.     digitalWrite(j, HIGH);
  142. }
  143. void digital_F(void)
  144. {
  145.   unsigned char j;
  146.   digitalWrite(b, LOW);
  147.   digitalWrite(c, LOW);
  148.   digitalWrite(d, LOW);
  149.   for (j = 7; j <= 10; j++)
  150.     digitalWrite(j, HIGH);
  151. }

  152. void loop()
  153. {
  154.   digital_1();//顯示1
  155.   delay(1000);//延時1秒
  156.   digital_2();//顯示2
  157.   delay(1000);
  158.   digital_3();//顯示3
  159.   delay(1000);
  160.   digital_4();//顯示4
  161.   delay(1000);
  162.   digital_5();//顯示5
  163.   delay(1000);
  164.   digital_6();//顯示6
  165.   delay(1000);
  166.   digital_7();//顯示7
  167.   delay(1000);
  168.   digital_8();//顯示8
  169.   delay(1000);
  170.   digital_9();//顯示9
  171.   delay(1000);
  172.   digital_A();//顯示a
  173.   delay(1000);
  174.   digital_b();//顯示b
  175.   delay(1000);
  176.   digital_C();//顯示c
  177.   delay(1000);
  178.   digital_d();//顯示d
  179.   delay(1000);
  180.   digital_E();//顯示e
  181.   delay(1000);
  182.   digital_F();//顯示f
  183.   delay(1000);
  184. }
復(fù)制代碼


回復(fù)

使用道具 舉報

819#
ID:532564 發(fā)表于 2019-7-4 17:10 | 只看該作者
樓主請收下我的膝蓋
回復(fù)

使用道具 舉報

820#
ID:513258 發(fā)表于 2019-7-5 06:10 | 只看該作者

早上好,謝謝鼓勵
回復(fù)

使用道具 舉報

821#
ID:513258 發(fā)表于 2019-7-5 11:02 | 只看該作者

回復(fù)

使用道具 舉報

822#
ID:513258 發(fā)表于 2019-7-5 11:06 | 只看該作者

回復(fù)

使用道具 舉報

823#
ID:513258 發(fā)表于 2019-7-5 11:08 | 只看該作者

回復(fù)

使用道具 舉報

824#
ID:513258 發(fā)表于 2019-7-5 11:22 | 只看該作者
實驗四十八:GY-291 數(shù)字三軸重力加速度傾斜度模塊 (IIC/SPI傳輸)

ADXL345
ADXL345是一款小而薄的低功耗3軸加速度計,分辨率高(13位),測量范圍達(dá)±16g。數(shù)字輸出數(shù)據(jù)為16位二進(jìn)制補碼格式,可通過SPI(3線或4線)或I2C數(shù)字接口訪問。ADXL345非常適合移動設(shè)備應(yīng)用。它可以在傾斜檢測應(yīng)用中測量靜態(tài)重力加速度,還可以測量運動或沖擊導(dǎo)致的動態(tài)加速度。其高分辨率(4 mg/LSB),能夠測量不到1.0°的傾斜角度變化。該器件提供多種特殊檢測功能;顒雍头腔顒訖z測功能檢測有無運動發(fā)生,以及任意軸上的加速度是否超過用戶設(shè)置的限值。敲擊檢測功能可以檢測單擊和雙擊動作。自由落體檢測功能可以檢測器件是否正在掉落。這些功能可以映射到兩個中斷輸出引腳中的一個。正在申請專利的32級先進(jìn)先出(FIFO)緩沖器可用于存儲數(shù)據(jù),最大程度地減少主機(jī)處理器的干預(yù)。低功耗模式支持基于運動的智能電源管理,從而以極低的功耗進(jìn)行閾值感測和運動加速度測量。

ADXL345采用3 mm × 5 mm × 1 mm、14引腳小型超薄塑料封裝。




回復(fù)

使用道具 舉報

825#
ID:513258 發(fā)表于 2019-7-5 11:33 | 只看該作者

回復(fù)

使用道具 舉報

826#
ID:513258 發(fā)表于 2019-7-5 12:28 | 只看該作者

回復(fù)

使用道具 舉報

827#
ID:513258 發(fā)表于 2019-7-5 12:36 | 只看該作者

回復(fù)

使用道具 舉報

828#
ID:513258 發(fā)表于 2019-7-5 13:15 | 只看該作者
主要特性
超低功耗:V S = 2.5 V 時(典型值),測量模式下低至23ì A ,
待機(jī)模式下為0.1μA
功耗隨帶寬自動按比例變化
用戶可選的分辨率
10 位固定分辨率
全分辨率,分辨率隨g范圍提高而提高,± 16g 時高達(dá)13 位
(在所有g(shù)范圍內(nèi)保持4 mg/L S B 的比例系數(shù))
正在申請專利的嵌入式存儲器管理系統(tǒng)采用FI FO 技術(shù),可將
主機(jī)處理器負(fù)荷降至最低
單振/雙振檢測
活動/非活動監(jiān)控
自由落體檢測
電源電壓范圍:2.0 V 至3.6 V
I / O電壓范圍:1.7 V 至V S
S PI (3線和4線)和I 2 C數(shù)字接口
靈活的中斷模式,可映射到任一中斷引腳
通過串行命令可選測量范圍
通過串行命令可選帶寬
寬溫度范圍(- 40° C 至+ 85 ℃)
抗沖擊能力:10, 000 g
無鉛/符合Ro HS標(biāo)準(zhǔn)



回復(fù)

使用道具 舉報

829#
ID:513258 發(fā)表于 2019-7-5 13:49 | 只看該作者
工作原理
ADXL345是一款完整的3軸加速度測量系統(tǒng),可選擇的測量范圍有±2 g,±4 g,±8 g或±16 g。既能測量運動或沖擊導(dǎo)致的動態(tài)加速度,也能測量靜止加速度,例如重力加速度,使得器件可作為傾斜傳感器使用。該傳感器為多晶硅表面微加工結(jié)構(gòu),置于晶圓頂部。由于應(yīng)用加速度,多晶硅彈簧懸掛于晶圓表面的結(jié)構(gòu)之上,提供力量阻力。差分電容由獨立固定板和活動質(zhì)量連接板組成,能對結(jié)構(gòu)偏轉(zhuǎn)進(jìn)行測量。加速度使慣性質(zhì)量偏轉(zhuǎn)、差分電容失衡,從而傳感器輸出的幅度與加速度成正比。相敏解調(diào)用于確定加速度的幅度和極性。



回復(fù)

使用道具 舉報

830#
ID:513258 發(fā)表于 2019-7-5 14:04 | 只看該作者

回復(fù)

使用道具 舉報

831#
ID:513258 發(fā)表于 2019-7-5 14:15 | 只看該作者

回復(fù)

使用道具 舉報

832#
ID:513258 發(fā)表于 2019-7-5 14:24 | 只看該作者
ADXL345三軸加速度模塊
采用ADXL345芯片,具有體積小,功耗低的特點,13位數(shù)字精度分辨能夠測量超過±16g的加速度變換。信號輸出為16位數(shù)字輸出,可以通過SPI與I2C接口實現(xiàn)信號采集。ADXL345適用于傾斜角度測量,能夠進(jìn)行靜態(tài)重力加速度檢測。同時也適用于運動狀態(tài)的追蹤,測量運動或沖擊過程造成的瞬時加速度。其高分辨率(4mg/LSB)使之能夠感應(yīng)變化小于1°的傾斜角度。ADXL345三軸加速度計還內(nèi)置一款LDO模塊讓你的加速度計能夠工作于3.3~6v的工作電壓之下。同時傳感器提供了幾個特殊的功能。能夠在靜態(tài)或動態(tài)情況下檢測是否有運動或停止出現(xiàn),另外能夠感知單軸的加速度值是否超出用戶的設(shè)定值。檢測單擊/雙擊。如果該設(shè)備正在下降,能進(jìn)行自由落體感應(yīng)檢測。這些功能能夠被映射到兩個中斷輸出引腳上。在低功耗模式是用戶能夠基于ADXL345動作感應(yīng),進(jìn)行電源管理,同時只損耗極低的功耗。




回復(fù)

使用道具 舉報

833#
ID:513258 發(fā)表于 2019-7-5 14:31 | 只看該作者
模塊的電原理圖



回復(fù)

使用道具 舉報

834#
ID:513258 發(fā)表于 2019-7-5 15:37 | 只看該作者



回復(fù)

使用道具 舉報

835#
ID:513258 發(fā)表于 2019-7-5 15:40 | 只看該作者

回復(fù)

使用道具 舉報

836#
ID:513258 發(fā)表于 2019-7-5 15:41 | 只看該作者

回復(fù)

使用道具 舉報

837#
ID:513258 發(fā)表于 2019-7-5 16:09 | 只看該作者
  1. /*
  2. 【Arduino】66種傳感器模塊系列實驗(48)
  3. 實驗四十八:GY-291 數(shù)字三軸重力加速度傾斜度模塊 (IIC/SPI傳輸)
  4. 簡單實驗,之一
  5. */

  6. void setup()
  7. {
  8. Serial.begin(9600);     
  9. pinMode(A4, INPUT);
  10. pinMode(A5, INPUT);
  11. }

  12. void loop()
  13. {
  14. Serial.println(analogRead(A4));
  15. Serial.println(analogRead(A5));

  16. delay(100);
  17. }
復(fù)制代碼


回復(fù)

使用道具 舉報

838#
ID:513258 發(fā)表于 2019-7-5 16:11 | 只看該作者

回復(fù)

使用道具 舉報

839#
ID:513258 發(fā)表于 2019-7-5 16:13 | 只看該作者

回復(fù)

使用道具 舉報

840#
ID:513258 發(fā)表于 2019-7-5 16:58 | 只看該作者
  1. /*
  2. 【Arduino】66種傳感器模塊系列實驗(48)
  3. 實驗四十八:GY-291 數(shù)字三軸重力加速度傾斜度模塊 (IIC/SPI傳輸)
  4. 實驗代碼之二
  5. */

  6. #include <Wire.h>

  7. #define DEVICE (0x53)  
  8. #define TO_READ (6)   

  9. byte buff[TO_READ] ;      
  10. char str[512];            
  11. int regAddress = 0x32;     
  12. int x, y, z;                        
  13. double roll = 0.00, pitch = 0.00;      

  14. void setup() {
  15.   Wire.begin();         
  16.   Serial.begin(9600);  
  17.   
  18.   writeTo(DEVICE, 0x2D, 0);      
  19.   writeTo(DEVICE, 0x2D, 16);
  20.   writeTo(DEVICE, 0x2D, 8);
  21. }

  22. void loop() {

  23.   readFrom(DEVICE, regAddress, TO_READ, buff);
  24.                                              
  25.   x = (((int)buff[1]) << 8) | buff[0];   
  26.   y = (((int)buff[3])<< 8) | buff[2];
  27.   z = (((int)buff[5]) << 8) | buff[4];

  28.   //we send the x y z values as a string to the serial port
  29.   Serial.print("The acceleration info of x, y, z are:");
  30.   sprintf(str, "%d %d %d", x, y, z);  
  31.   Serial.print(str);
  32.   Serial.write(10);
  33.   
  34.   RP_calculate();
  35.   Serial.print("Roll:"); Serial.println( roll );
  36.   Serial.print("Pitch:"); Serial.println( pitch );
  37.   Serial.println("");
  38.   
  39.   delay(300);
  40. }

  41. void writeTo(int device, byte address, byte val) {
  42.   Wire.beginTransmission(device);
  43.   Wire.write(address);        
  44.   Wire.write(val);      
  45.   Wire.endTransmission();
  46. }

  47. void readFrom(int device, byte address, int num, byte buff[]) {
  48.   Wire.beginTransmission(device);
  49.   Wire.write(address);        
  50.   Wire.endTransmission();

  51.     Wire.beginTransmission(device);
  52.   Wire.requestFrom(device, num);   

  53.   int i = 0;
  54.   while(Wire.available())   
  55.   {
  56.     buff[i] = Wire.read();
  57.     i++;
  58.   }
  59.   Wire.endTransmission();
  60. }

  61. void RP_calculate(){
  62.   double x_Buff = float(x);
  63.   double y_Buff = float(y);
  64.   double z_Buff = float(z);
  65.   roll = atan2(y_Buff , z_Buff) * 57.3;
  66.   pitch = atan2((- x_Buff) , sqrt(y_Buff * y_Buff + z_Buff * z_Buff)) * 57.3;
  67. }
復(fù)制代碼


回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表