找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

一塊擴(kuò)展板完成Arduino的10類(lèi)37項(xiàng)實(shí)驗(yàn)(代碼+圖形+仿真)

[復(fù)制鏈接]
121#
ID:513258 發(fā)表于 2019-7-6 07:45 | 只看該作者

回復(fù)

使用道具 舉報(bào)

122#
ID:513258 發(fā)表于 2019-7-6 07:47 | 只看該作者
21、TM1637四位數(shù)碼管(數(shù)碼管和點(diǎn)陣類(lèi),接擴(kuò)展板數(shù)字D7/D8接口)
實(shí)驗(yàn)三,顯示遞增數(shù)字




回復(fù)

使用道具 舉報(bào)

123#
ID:513258 發(fā)表于 2019-7-6 08:02 | 只看該作者

回復(fù)

使用道具 舉報(bào)

124#
ID:513258 發(fā)表于 2019-7-6 08:05 | 只看該作者
21、TM1637四位數(shù)碼管(數(shù)碼管和點(diǎn)陣類(lèi),接擴(kuò)展板數(shù)字D7/D8接口)
實(shí)驗(yàn)五,帶蜂鳴器的秒表



回復(fù)

使用道具 舉報(bào)

125#
ID:513258 發(fā)表于 2019-7-9 12:49 | 只看該作者
22、 GY-BMP280-3.3 大氣壓強(qiáng)高度計(jì)傳感器模塊 ( I2C接口)
項(xiàng)目:通過(guò)串口實(shí)時(shí)讀取溫度、氣壓與海拔數(shù)據(jù)




回復(fù)

使用道具 舉報(bào)

126#
ID:513258 發(fā)表于 2019-7-9 12:57 | 只看該作者

回復(fù)

使用道具 舉報(bào)

127#
ID:513258 發(fā)表于 2019-7-9 13:02 | 只看該作者

回復(fù)

使用道具 舉報(bào)

128#
ID:513258 發(fā)表于 2019-8-7 06:10 | 只看該作者
23 GY-NEO-6MV2新款飛控GPS模塊 (數(shù)值類(lèi)TTL接口)


  1. /*
  2. Eagler8系列實(shí)驗(yàn)程序列表
  3. 第十類(lèi) 擴(kuò)展實(shí)驗(yàn)
  4. 23 GY-NEO-6MV2新款飛控GPS模塊 (數(shù)值類(lèi)TTL接口)
  5. 項(xiàng)目:實(shí)時(shí)實(shí)地接收GPS衛(wèi)星信號(hào)數(shù)據(jù)
  6. 要點(diǎn):初始化必需加載一個(gè)庫(kù)(IDE-工具-管理庫(kù)-搜索-下載)
  7. <SoftwareSerial.h>
  8. 備注:燒錄程序時(shí),不要連接GPS模塊(會(huì)占用端口發(fā)生錯(cuò)誤)
  9. */

  10. #include <SoftwareSerial.h>

  11. SoftwareSerial ss(1, 0);

  12. void setup()
  13. {
  14.   Serial.begin(9600);
  15.   ss.begin(9600);
  16. }

  17. void loop()
  18. {
  19.   while (ss.available() > 0)
  20.   {
  21.    
  22.     byte gpsData = ss.read();
  23.     Serial.write(gpsData);
  24.   }
  25. }
復(fù)制代碼



回復(fù)

使用道具 舉報(bào)

129#
ID:513258 發(fā)表于 2019-8-7 06:20 | 只看該作者

回復(fù)

使用道具 舉報(bào)

130#
ID:513258 發(fā)表于 2019-8-7 06:26 | 只看該作者

回復(fù)

使用道具 舉報(bào)

131#
ID:513258 發(fā)表于 2019-8-7 06:29 | 只看該作者
上電十分鐘,即可穩(wěn)定接收接收GPS衛(wèi)星信號(hào)(放在窗口便于接收)




回復(fù)

使用道具 舉報(bào)

132#
ID:513258 發(fā)表于 2019-8-7 06:46 | 只看該作者

回復(fù)

使用道具 舉報(bào)

133#
ID:513258 發(fā)表于 2019-8-7 06:48 | 只看該作者

回復(fù)

使用道具 舉報(bào)

134#
ID:513258 發(fā)表于 2019-8-7 08:13 | 只看該作者
24 5V低電平觸發(fā)單路繼電器模塊(執(zhí)行類(lèi)數(shù)字D7接口)


  1. /*
  2. Eagler8系列實(shí)驗(yàn)程序列表
  3. 第十類(lèi) 擴(kuò)展實(shí)驗(yàn)
  4. 24 5V低電平觸發(fā)單路繼電器模塊(執(zhí)行類(lèi)數(shù)字D7接口)
  5. 項(xiàng)目:通過(guò)板載D2按鈕,點(diǎn)動(dòng)控制繼電器,按下吸合,松開(kāi)關(guān)閉
  6. 備注:D7接口外接繼電器模塊(低電平觸發(fā)),使用板載D2按鈕做
  7. 為控制端,板載D12 LED燈和D5有源蜂鳴器為實(shí)驗(yàn)聲光執(zhí)行器
  8. */
  9.          
  10. int inputPin = 2;   
  11. int BuzzerPin = 5;  
  12. int RelayPin = 7;  
  13. int ledPin = 12;   
  14.            
  15. int val = 0;            
  16.       
  17. void setup()
  18. {
  19.   pinMode(inputPin, INPUT);     
  20.   pinMode(BuzzerPin, OUTPUT);
  21.   pinMode(RelayPin, OUTPUT);
  22.   pinMode(ledPin, OUTPUT);
  23. }

  24. void loop()
  25. {
  26.   val = digitalRead(inputPin);  
  27.   if(val == HIGH)
  28.   {         
  29.      digitalWrite(BuzzerPin, LOW);  
  30.      digitalWrite(RelayPin, HIGH);  
  31.      digitalWrite(ledPin, LOW);  
  32.   }
  33.   else
  34.   {
  35.      digitalWrite(BuzzerPin, HIGH);
  36.      digitalWrite(RelayPin, LOW);
  37.      digitalWrite(ledPin, HIGH);
  38.   }
  39. }
復(fù)制代碼



回復(fù)

使用道具 舉報(bào)

135#
ID:513258 發(fā)表于 2019-8-7 08:20 | 只看該作者

回復(fù)

使用道具 舉報(bào)

136#
ID:513258 發(fā)表于 2019-8-7 09:03 | 只看該作者

回復(fù)

使用道具 舉報(bào)

137#
ID:513258 發(fā)表于 2019-8-7 09:54 | 只看該作者

回復(fù)

使用道具 舉報(bào)

138#
ID:513258 發(fā)表于 2019-8-7 13:03 | 只看該作者
25 4線制聲音傳感器模塊(觸發(fā)類(lèi)模擬A3與數(shù)字D7接口)

  1. /*
  2. Eagler8系列實(shí)驗(yàn)程序列表
  3. 第十類(lèi) 擴(kuò)展實(shí)驗(yàn)
  4. 25 4線制聲音傳感器模塊(觸發(fā)類(lèi)模擬A3與數(shù)字D7接口)
  5. 項(xiàng)目一:測(cè)試A3模擬接口,串口讀取環(huán)境聲音波形
  6. */

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

  12. void loop()
  13. {
  14.   Serial.println(analogRead(A3));
  15.   delay(100);
  16. }
復(fù)制代碼



回復(fù)

使用道具 舉報(bào)

139#
ID:513258 發(fā)表于 2019-8-7 13:07 | 只看該作者

回復(fù)

使用道具 舉報(bào)

140#
ID:513258 發(fā)表于 2019-8-7 13:11 | 只看該作者

回復(fù)

使用道具 舉報(bào)

141#
ID:513258 發(fā)表于 2019-8-7 14:13 | 只看該作者
  1. Eagler8系列實(shí)驗(yàn)程序列表
  2. 第十類(lèi) 擴(kuò)展實(shí)驗(yàn)
  3. 25 帶駐極話筒4線制聲音傳感器模塊(觸發(fā)類(lèi)數(shù)字D7接口)
  4. 項(xiàng)目二:數(shù)字D7接口,聲音觸發(fā)控制板載D12 LED燈亮暗
  5. */

  6. void setup()
  7. {
  8.     pinMode(7,INPUT);
  9.     pinMode(12,OUTPUT);
  10. }

  11. void loop() {
  12.   if (digitalRead(7)) {
  13.     digitalWrite(12, HIGH);
  14.   }
  15.   else {
  16.     digitalWrite(12, LOW);
  17.   }
  18. }
復(fù)制代碼


回復(fù)

使用道具 舉報(bào)

142#
ID:513258 發(fā)表于 2019-8-7 14:34 | 只看該作者

回復(fù)

使用道具 舉報(bào)

143#
ID:513258 發(fā)表于 2019-8-7 14:57 | 只看該作者

回復(fù)

使用道具 舉報(bào)

144#
ID:513258 發(fā)表于 2019-8-7 15:20 | 只看該作者

回復(fù)

使用道具 舉報(bào)

145#
ID:513258 發(fā)表于 2019-8-7 15:32 | 只看該作者

回復(fù)

使用道具 舉報(bào)

146#
ID:513258 發(fā)表于 2019-8-7 16:30 | 只看該作者
26 BH1750FVI 數(shù)字光強(qiáng)度模塊光照傳感器(數(shù)值類(lèi) I2C接口)

  1. /*
  2. Eagler8系列實(shí)驗(yàn)程序列表
  3. 第十類(lèi) 擴(kuò)展實(shí)驗(yàn)
  4. 26 BH1750FVI 數(shù)字光強(qiáng)度模塊光照傳感器(數(shù)值類(lèi) I2C接口)
  5. 項(xiàng)目:測(cè)試A3模擬接口,串口讀取環(huán)境光照波形

  6. Module      UNO
  7. VCC   ——   5V
  8. GND  ——  GND
  9. SCL   ——   A5
  10. SDA  ——   A4
  11. ADD ——   NC
  12. */

  13. #include <Wire.h>
  14. #include <math.h>
  15. int BH1750address = 0x23;

  16. byte buff[2];
  17. void setup()
  18. {
  19.   Wire.begin();
  20.   Serial.begin(57600);
  21. }

  22. void loop()
  23. {
  24.   int i;
  25.   uint16_t val=0;
  26.   BH1750_Init(BH1750address);
  27.   delay(200);

  28.   if(2==BH1750_Read(BH1750address))
  29.   {
  30.     val=((buff[0]<<8)|buff[1])/1.2;
  31.     Serial.println(val,DEC);     
  32.   }
  33.   delay(150);
  34. }

  35. int BH1750_Read(int address)
  36. {
  37.   int i=0;
  38.   Wire.beginTransmission(address);
  39.   Wire.requestFrom(address, 2);
  40.   while(Wire.available())
  41.   {
  42.     buff[i] = Wire.read();  
  43.     i++;
  44.   }
  45.   Wire.endTransmission();  
  46.   return i;
  47. }

  48. void BH1750_Init(int address)
  49. {
  50.   Wire.beginTransmission(address);
  51.   Wire.write(0x10);
  52.   Wire.endTransmission();
  53. }
復(fù)制代碼




回復(fù)

使用道具 舉報(bào)

147#
ID:513258 發(fā)表于 2019-8-7 16:34 | 只看該作者
傳感器放在窗口附近的自然光線的波形



回復(fù)

使用道具 舉報(bào)

148#
ID:513258 發(fā)表于 2019-8-7 16:38 | 只看該作者

回復(fù)

使用道具 舉報(bào)

149#
ID:513258 發(fā)表于 2019-8-7 17:19 | 只看該作者

回復(fù)

使用道具 舉報(bào)

150#
ID:513258 發(fā)表于 2019-8-7 17:23 | 只看該作者

回復(fù)

使用道具 舉報(bào)

151#
ID:513258 發(fā)表于 2019-8-7 17:35 | 只看該作者

回復(fù)

使用道具 舉報(bào)

152#
ID:513258 發(fā)表于 2019-8-8 21:03 | 只看該作者
27 開(kāi)源DFPlayer Mini TF卡MP3播放模塊(輸出執(zhí)行器類(lèi)D7數(shù)字接口)

  1. /*
  2. Eagler8系列實(shí)驗(yàn)程序列表
  3. 第十類(lèi) 擴(kuò)展實(shí)驗(yàn)
  4. 27 開(kāi)源DFPlayer Mini TF卡MP3播放模塊(輸出執(zhí)行器類(lèi)D7/D8數(shù)字接口)
  5. 程序之一,循環(huán)播放TF卡內(nèi)0003.MP3(MP3文件夾內(nèi)),音量20
  6. 材料:1.5W小型揚(yáng)聲器一個(gè)
  7. Arduino-------dfplayer
  8. 5V-------------VCC
  9. GND-----------GND
  10. D7-----------TXD
  11. D8-----------RXD
  12. */

  13. #include "SoftwareSerial.h"
  14. #include "DFRobotDFPlayerMini.h"

  15. SoftwareSerial mySoftwareSerial(2, 3);

  16. DFRobotDFPlayerMini myDFPlayer;

  17. void setup()
  18. {
  19. mySoftwareSerial.begin(9600);

  20. myDFPlayer.begin(mySoftwareSerial);

  21. myDFPlayer.volume(20);

  22. myDFPlayer.loop(3);   
  23. }

  24. void loop()
  25. {
  26. }
復(fù)制代碼



回復(fù)

使用道具 舉報(bào)

153#
ID:513258 發(fā)表于 2019-8-8 21:04 | 只看該作者
  1. /*
  2. Eagler8系列實(shí)驗(yàn)程序列表
  3. 第十類(lèi) 擴(kuò)展實(shí)驗(yàn)
  4. 27 開(kāi)源DFPlayer Mini TF卡MP3播放模塊(輸出執(zhí)行器類(lèi)D7/D8數(shù)字接口)
  5. 程序之二,每3秒切換到下一首歌曲,音量20(速播TF卡內(nèi)所有MP3歌曲)
  6. 可以打印來(lái)自dfplayer的詳細(xì)信息以處理不同的錯(cuò)誤和狀態(tài)。
  7. 材料:1.5W小型揚(yáng)聲器一個(gè)
  8. Arduino-------dfplayer
  9. 5V-------------VCC
  10. GND-----------GND
  11. D7-----------TXD
  12. D8-----------RXD
  13. */

  14. #include "Arduino.h"
  15. #include "SoftwareSerial.h"
  16. #include "DFRobotDFPlayerMini.h"

  17. SoftwareSerial mySoftwareSerial(8, 7);
  18. DFRobotDFPlayerMini myDFPlayer;
  19. void printDetail(uint8_t type, int value);

  20. void setup()
  21. {
  22.   mySoftwareSerial.begin(9600);
  23.   Serial.begin(115200);

  24.   Serial.println();
  25.   Serial.println(F("DFRobot DFPlayer Mini Demo"));
  26.   Serial.println(F("Initializing DFPlayer ... (May take 3~5 seconds)"));

  27.   if (!myDFPlayer.begin(mySoftwareSerial)) {  
  28.     Serial.println(F("Unable to begin:"));
  29.     Serial.println(F("1.Please recheck the connection!"));
  30.     Serial.println(F("2.Please insert the SD card!"));
  31.     while(true);
  32.   }
  33.   Serial.println(F("DFPlayer Mini online."));

  34.   myDFPlayer.volume(20);  
  35.   myDFPlayer.play(3);  
  36. }

  37. void loop()
  38. {
  39.   static unsigned long timer = millis();

  40.   if (millis() - timer > 3000) {
  41.     timer = millis();
  42.     myDFPlayer.next();  
  43.   }

  44.   if (myDFPlayer.available()) {
  45.     printDetail(myDFPlayer.readType(), myDFPlayer.read());
  46.   }
  47. }

  48. void printDetail(uint8_t type, int value){
  49.   switch (type) {
  50.     case TimeOut:
  51.       Serial.println(F("Time Out!"));
  52.       break;
  53.     case WrongStack:
  54.       Serial.println(F("Stack Wrong!"));
  55.       break;
  56.     case DFPlayerCardInserted:
  57.       Serial.println(F("Card Inserted!"));
  58.       break;
  59.     case DFPlayerCardRemoved:
  60.       Serial.println(F("Card Removed!"));
  61.       break;
  62.     case DFPlayerCardOnline:
  63.       Serial.println(F("Card Online!"));
  64.       break;
  65.     case DFPlayerPlayFinished:
  66.       Serial.print(F("Number:"));
  67.       Serial.print(value);
  68.       Serial.println(F(" Play Finished!"));
  69.       break;
  70.     case DFPlayerError:
  71.       Serial.print(F("DFPlayerError:"));
  72.       switch (value) {
  73.         case Busy:
  74.           Serial.println(F("Card not found"));
  75.           break;
  76.         case Sleeping:
  77.           Serial.println(F("Sleeping"));
  78.           break;
  79.         case SerialWrongStack:
  80.           Serial.println(F("Get Wrong Stack"));
  81.           break;
  82.         case CheckSumNotMatch:
  83.           Serial.println(F("Check Sum Not Match"));
  84.           break;
  85.         case FileIndexOut:
  86.           Serial.println(F("File Index Out of Bound"));
  87.           break;
  88.         case FileMismatch:
  89.           Serial.println(F("Cannot Find File"));
  90.           break;
  91.         case Advertise:
  92.           Serial.println(F("In Advertise"));
  93.           break;
  94.         default:
  95.           break;
  96.       }
  97.       break;
  98.     default:
  99.       break;
  100.   }
  101. }
復(fù)制代碼


回復(fù)

使用道具 舉報(bào)

154#
ID:513258 發(fā)表于 2019-8-8 21:06 | 只看該作者

回復(fù)

使用道具 舉報(bào)

155#
ID:513258 發(fā)表于 2019-8-8 21:14 | 只看該作者

回復(fù)

使用道具 舉報(bào)

156#
ID:513258 發(fā)表于 2019-8-8 21:16 | 只看該作者

回復(fù)

使用道具 舉報(bào)

157#
ID:513258 發(fā)表于 2019-8-8 21:17 | 只看該作者

回復(fù)

使用道具 舉報(bào)

158#
ID:513258 發(fā)表于 2019-8-8 21:19 | 只看該作者

回復(fù)

使用道具 舉報(bào)

159#
ID:513258 發(fā)表于 2019-8-8 21:20 | 只看該作者

回復(fù)

使用道具 舉報(bào)

160#
ID:513258 發(fā)表于 2019-8-9 09:12 | 只看該作者
28 LCD1602液晶屏模塊(輸出顯示器類(lèi), IIC/I2C接口)

  1. /*
  2. Eagler8系列實(shí)驗(yàn)程序列表
  3. 第十類(lèi) 擴(kuò)展實(shí)驗(yàn)
  4. 28 LCD1602液晶屏模塊(輸出顯示器類(lèi) IIC/I2C接口)
  5. 項(xiàng)目一:尋找查詢(xún)?cè)O(shè)備IIC地址,在串口上即可看到1602的地址
  6. 這里查詢(xún)結(jié)果是“0x27”(這個(gè)地址不對(duì)的話,實(shí)測(cè)無(wú)法燒錄程序)
  7. Arduino------LCD1602
  8. 5V-------------VCC
  9. GND-----------GND
  10. A4-----------SDA IIC 數(shù)據(jù)線
  11. A5-----------SCL  IIC 時(shí)鐘線
  12. */

  13. #include <Wire.h>

  14. void setup(){
  15.   Wire.begin();
  16.   Serial.begin(9600);
  17.   Serial.println("\nI2C Scanner");
  18. }
  19. void loop(){
  20.   byte error, address;
  21.   int nDevices;
  22.   Serial.println("Eagler8 Scanning...");
  23.   nDevices = 0;
  24.   for (address = 1; address < 127; address++ ){
  25.    
  26.     Wire.beginTransmission(address);
  27.     error = Wire.endTransmission();
  28.     if (error == 0){
  29.       Serial.print("I2C device found at address 0x");
  30.       if (address < 16)
  31.         Serial.print("0");
  32.       Serial.print(address, HEX);
  33.       Serial.println(" !");
  34.       nDevices++;
  35.     }else if (error == 4){
  36.       Serial.print("Unknow error at address 0x");
  37.       if (address < 16)
  38.         Serial.print("0");
  39.       Serial.println(address, HEX);
  40.     }
  41.   }
  42.   if (nDevices == 0)
  43.     Serial.println("No I2C devices found\n");
  44.   else
  45.     Serial.println("done\n");
  46.   delay(5000); // wait 5 seconds for next scan
  47. }
復(fù)制代碼



回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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