找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
楼主: eagler8
收起左侧

一块扩展板完成Arduino的10类37项实验(代码+图形+仿真)

[复制链接]
ID:513258 发表于 2019-7-6 07:45 | 显示全部楼层
21-6.jpg
回复

使用道具 举报

ID:513258 发表于 2019-7-6 07:47 | 显示全部楼层
21、TM1637四位数码管(数码管和点阵类,接扩展板数字D7/D8接口)
实验三,显示递增数字

21-7.jpg


回复

使用道具 举报

ID:513258 发表于 2019-7-6 08:02 | 显示全部楼层
21-7-.jpg
回复

使用道具 举报

ID:513258 发表于 2019-7-6 08:05 | 显示全部楼层
21、TM1637四位数码管(数码管和点阵类,接扩展板数字D7/D8接口)
实验五,带蜂鸣器的秒表

21-8.jpg

回复

使用道具 举报

ID:513258 发表于 2019-7-9 12:49 | 显示全部楼层
22、 GY-BMP280-3.3 大气压强高度计传感器模块 ( I2C接口)
项目:通过串口实时读取温度、气压与海拔数据

22.jpg


回复

使用道具 举报

ID:513258 发表于 2019-7-9 12:57 | 显示全部楼层
22-1.jpg
回复

使用道具 举报

ID:513258 发表于 2019-7-9 13:02 | 显示全部楼层
22-2.jpg
回复

使用道具 举报

ID:513258 发表于 2019-8-7 06:10 | 显示全部楼层
23 GY-NEO-6MV2新款飞控GPS模块 (数值类TTL接口)


  1. /*
  2. Eagler8系列实验程序列表
  3. 第十类 扩展实验
  4. 23 GY-NEO-6MV2新款飞控GPS模块 (数值类TTL接口)
  5. 项目:实时实地接收GPS卫星信号数据
  6. 要点:初始化必需加载一个库(IDE-工具-管理库-搜索-下载)
  7. <SoftwareSerial.h>
  8. 备注:烧录程序时,不要连接GPS模块(会占用端口发生错误)
  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. }
复制代码



回复

使用道具 举报

ID:513258 发表于 2019-8-7 06:20 | 显示全部楼层
23-1.jpg
回复

使用道具 举报

ID:513258 发表于 2019-8-7 06:26 | 显示全部楼层
23-2.jpg
回复

使用道具 举报

ID:513258 发表于 2019-8-7 06:29 | 显示全部楼层
上电十分钟,即可稳定接收接收GPS卫星信号(放在窗口便于接收)

23-3.jpg


回复

使用道具 举报

ID:513258 发表于 2019-8-7 06:46 | 显示全部楼层
23-4.jpg
回复

使用道具 举报

ID:513258 发表于 2019-8-7 06:48 | 显示全部楼层
23-5.jpg
回复

使用道具 举报

ID:513258 发表于 2019-8-7 08:13 | 显示全部楼层
24 5V低电平触发单路继电器模块(执行类数字D7接口)


  1. /*
  2. Eagler8系列实验程序列表
  3. 第十类 扩展实验
  4. 24 5V低电平触发单路继电器模块(执行类数字D7接口)
  5. 项目:通过板载D2按钮,点动控制继电器,按下吸合,松开关闭
  6. 备注:D7接口外接继电器模块(低电平触发),使用板载D2按钮做
  7. 为控制端,板载D12 LED灯和D5有源蜂鸣器为实验声光执行器
  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. }
复制代码



回复

使用道具 举报

ID:513258 发表于 2019-8-7 08:20 | 显示全部楼层
24-1.jpg
回复

使用道具 举报

ID:513258 发表于 2019-8-7 09:03 | 显示全部楼层
24-2.jpg
回复

使用道具 举报

ID:513258 发表于 2019-8-7 09:54 | 显示全部楼层
24-3.jpg
回复

使用道具 举报

ID:513258 发表于 2019-8-7 13:03 | 显示全部楼层
25 4线制声音传感器模块(触发类模拟A3与数字D7接口)

  1. /*
  2. Eagler8系列实验程序列表
  3. 第十类 扩展实验
  4. 25 4线制声音传感器模块(触发类模拟A3与数字D7接口)
  5. 项目一:测试A3模拟接口,串口读取环境声音波形
  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. }
复制代码



回复

使用道具 举报

ID:513258 发表于 2019-8-7 13:07 | 显示全部楼层
25.jpg
回复

使用道具 举报

ID:513258 发表于 2019-8-7 13:11 | 显示全部楼层
25-1.jpg
回复

使用道具 举报

ID:513258 发表于 2019-8-7 14:13 | 显示全部楼层
  1. Eagler8系列实验程序列表
  2. 第十类 扩展实验
  3. 25 带驻极话筒4线制声音传感器模块(触发类数字D7接口)
  4. 项目二:数字D7接口,声音触发控制板载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. }
复制代码


回复

使用道具 举报

ID:513258 发表于 2019-8-7 14:34 | 显示全部楼层
25-2-.jpg
回复

使用道具 举报

ID:513258 发表于 2019-8-7 14:57 | 显示全部楼层
25-3.jpg
回复

使用道具 举报

ID:513258 发表于 2019-8-7 15:20 | 显示全部楼层
25-4.jpg
回复

使用道具 举报

ID:513258 发表于 2019-8-7 15:32 | 显示全部楼层
25-5.jpg
回复

使用道具 举报

ID:513258 发表于 2019-8-7 16:30 | 显示全部楼层
26 BH1750FVI 数字光强度模块光照传感器(数值类 I2C接口)

  1. /*
  2. Eagler8系列实验程序列表
  3. 第十类 扩展实验
  4. 26 BH1750FVI 数字光强度模块光照传感器(数值类 I2C接口)
  5. 项目:测试A3模拟接口,串口读取环境光照波形

  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. }
复制代码




回复

使用道具 举报

ID:513258 发表于 2019-8-7 16:34 | 显示全部楼层
传感器放在窗口附近的自然光线的波形

26.jpg

回复

使用道具 举报

ID:513258 发表于 2019-8-7 16:38 | 显示全部楼层
26-1.jpg
回复

使用道具 举报

ID:513258 发表于 2019-8-7 17:19 | 显示全部楼层
26-2.jpg
回复

使用道具 举报

ID:513258 发表于 2019-8-7 17:23 | 显示全部楼层
26-3 (1).jpg
回复

使用道具 举报

ID:513258 发表于 2019-8-7 17:35 | 显示全部楼层
26-4.jpg
回复

使用道具 举报

ID:513258 发表于 2019-8-8 21:03 | 显示全部楼层
27 开源DFPlayer Mini TF卡MP3播放模块(输出执行器类D7数字接口)

  1. /*
  2. Eagler8系列实验程序列表
  3. 第十类 扩展实验
  4. 27 开源DFPlayer Mini TF卡MP3播放模块(输出执行器类D7/D8数字接口)
  5. 程序之一,循环播放TF卡内0003.MP3(MP3文件夹内),音量20
  6. 材料:1.5W小型扬声器一个
  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. }
复制代码



回复

使用道具 举报

ID:513258 发表于 2019-8-8 21:04 | 显示全部楼层
  1. /*
  2. Eagler8系列实验程序列表
  3. 第十类 扩展实验
  4. 27 开源DFPlayer Mini TF卡MP3播放模块(输出执行器类D7/D8数字接口)
  5. 程序之二,每3秒切换到下一首歌曲,音量20(速播TF卡内所有MP3歌曲)
  6. 可以打印来自dfplayer的详细信息以处理不同的错误和状态。
  7. 材料:1.5W小型扬声器一个
  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. }
复制代码


回复

使用道具 举报

ID:513258 发表于 2019-8-8 21:06 | 显示全部楼层
27-4.jpg
回复

使用道具 举报

ID:513258 发表于 2019-8-8 21:14 | 显示全部楼层
27.jpg
回复

使用道具 举报

ID:513258 发表于 2019-8-8 21:16 | 显示全部楼层
27-5.jpg
回复

使用道具 举报

ID:513258 发表于 2019-8-8 21:17 | 显示全部楼层
27-6.jpg
回复

使用道具 举报

ID:513258 发表于 2019-8-8 21:19 | 显示全部楼层
27-7.jpg
回复

使用道具 举报

ID:513258 发表于 2019-8-8 21:20 | 显示全部楼层
27-8.jpg
回复

使用道具 举报

ID:513258 发表于 2019-8-9 09:12 | 显示全部楼层
28 LCD1602液晶屏模块(输出显示器类, IIC/I2C接口)

  1. /*
  2. Eagler8系列实验程序列表
  3. 第十类 扩展实验
  4. 28 LCD1602液晶屏模块(输出显示器类 IIC/I2C接口)
  5. 项目一:寻找查询设备IIC地址,在串口上即可看到1602的地址
  6. 这里查询结果是“0x27”(这个地址不对的话,实测无法烧录程序)
  7. Arduino------LCD1602
  8. 5V-------------VCC
  9. GND-----------GND
  10. A4-----------SDA IIC 数据线
  11. A5-----------SCL  IIC 时钟线
  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. }
复制代码



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表