eagler8 发表于 2019-8-7 14:58:46

eagler8 发表于 2019-8-7 15:34:27

eagler8 发表于 2019-8-7 16:31:04

本帖最后由 eagler8 于 2019-8-7 17:50 编辑

26 BH1750FVI 数字光强度模块光照传感器(数值类 I2C接口)

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

Module      UNO
VCC   ——   5V
GND——GND
SCL   ——   A5
SDA——   A4
ADD ——   NC
*/

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

byte buff;
void setup()
{
Wire.begin();
Serial.begin(57600);
}

void loop()
{
int i;
uint16_t val=0;
BH1750_Init(BH1750address);
delay(200);

if(2==BH1750_Read(BH1750address))
{
    val=((buff<<8)|buff)/1.2;
    Serial.println(val,DEC);   
}
delay(150);
}

int BH1750_Read(int address)
{
int i=0;
Wire.beginTransmission(address);
Wire.requestFrom(address, 2);
while(Wire.available())
{
    buff = Wire.read();
    i++;
}
Wire.endTransmission();
return i;
}

void BH1750_Init(int address)
{
Wire.beginTransmission(address);
Wire.write(0x10);
Wire.endTransmission();
}



eagler8 发表于 2019-8-7 16:35:17

传感器放在窗口附近的自然光线的波形

eagler8 发表于 2019-8-7 16:39:18

eagler8 发表于 2019-8-7 17:20:47

eagler8 发表于 2019-8-7 17:23:58

eagler8 发表于 2019-8-7 17:36:44

eagler8 发表于 2019-8-8 21:03:42

27 开源DFPlayer Mini TF卡MP3播放模块(输出执行器类D7数字接口)


/*
Eagler8系列实验程序列表
第十类 扩展实验
27 开源DFPlayer Mini TF卡MP3播放模块(输出执行器类D7/D8数字接口)
程序之一,循环播放TF卡内0003.MP3(MP3文件夹内),音量20
材料:1.5W小型扬声器一个
Arduino-------dfplayer
5V-------------VCC
GND-----------GND
D7-----------TXD
D8-----------RXD
*/

#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"

SoftwareSerial mySoftwareSerial(2, 3);

DFRobotDFPlayerMini myDFPlayer;

void setup()
{
mySoftwareSerial.begin(9600);

myDFPlayer.begin(mySoftwareSerial);

myDFPlayer.volume(20);

myDFPlayer.loop(3);   
}

void loop()
{
}

eagler8 发表于 2019-8-8 21:05:23

/*
Eagler8系列实验程序列表
第十类 扩展实验
27 开源DFPlayer Mini TF卡MP3播放模块(输出执行器类D7/D8数字接口)
程序之二,每3秒切换到下一首歌曲,音量20(速播TF卡内所有MP3歌曲)
可以打印来自dfplayer的详细信息以处理不同的错误和状态。
材料:1.5W小型扬声器一个
Arduino-------dfplayer
5V-------------VCC
GND-----------GND
D7-----------TXD
D8-----------RXD
*/

#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"

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

void setup()
{
mySoftwareSerial.begin(9600);
Serial.begin(115200);

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

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

myDFPlayer.volume(20);
myDFPlayer.play(3);
}

void loop()
{
static unsigned long timer = millis();

if (millis() - timer > 3000) {
    timer = millis();
    myDFPlayer.next();
}

if (myDFPlayer.available()) {
    printDetail(myDFPlayer.readType(), myDFPlayer.read());
}
}

void printDetail(uint8_t type, int value){
switch (type) {
    case TimeOut:
      Serial.println(F("Time Out!"));
      break;
    case WrongStack:
      Serial.println(F("Stack Wrong!"));
      break;
    case DFPlayerCardInserted:
      Serial.println(F("Card Inserted!"));
      break;
    case DFPlayerCardRemoved:
      Serial.println(F("Card Removed!"));
      break;
    case DFPlayerCardOnline:
      Serial.println(F("Card Online!"));
      break;
    case DFPlayerPlayFinished:
      Serial.print(F("Number:"));
      Serial.print(value);
      Serial.println(F(" Play Finished!"));
      break;
    case DFPlayerError:
      Serial.print(F("DFPlayerError:"));
      switch (value) {
      case Busy:
          Serial.println(F("Card not found"));
          break;
      case Sleeping:
          Serial.println(F("Sleeping"));
          break;
      case SerialWrongStack:
          Serial.println(F("Get Wrong Stack"));
          break;
      case CheckSumNotMatch:
          Serial.println(F("Check Sum Not Match"));
          break;
      case FileIndexOut:
          Serial.println(F("File Index Out of Bound"));
          break;
      case FileMismatch:
          Serial.println(F("Cannot Find File"));
          break;
      case Advertise:
          Serial.println(F("In Advertise"));
          break;
      default:
          break;
      }
      break;
    default:
      break;
}
}

eagler8 发表于 2019-8-8 21:07:33

eagler8 发表于 2019-8-8 21:15:00

eagler8 发表于 2019-8-8 21:16:48

eagler8 发表于 2019-8-8 21:18:27

eagler8 发表于 2019-8-8 21:19:53

页: 1 2 3 4 5 6 7 8 9 [10] 11 12 13 14 15
查看完整版本: 一块扩展板完成Arduino的10类37项实验(代码+图形+仿真)