找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1772|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

arduino實(shí)現(xiàn)語音播報(bào)當(dāng)前oled上的光照強(qiáng)度

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:655886 發(fā)表于 2019-12-4 13:47 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
  1. #include <Wire.h> //IIC
  2. #include <math.h>
  3. #include <U8glib.h>
  4. #include <SoftwareSerial.h>
  5. #include <JQ6500_Serial.h>
  6. JQ6500_Serial mp3(8, 9);
  7. U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);
  8. int BH1750address = 0x23;
  9. byte buff[2];
  10. char str[10];
  11. int led = 7;
  12. void setup()
  13. {
  14.   Wire.begin();
  15.   Serial.begin(9600);
  16.   pinMode(led, OUTPUT);
  17.   mp3.begin(9600);
  18.   mp3.reset();
  19.   mp3.setVolume(30);
  20.   mp3.setLoopMode(MP3_LOOP_NONE);
  21. }

  22. void loop()
  23. {
  24.   int i,vsl;
  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.      vsl = 250 - val;

  32. //    Serial.println(vsl);
  33. //    Serial.println("[lx]");
  34.   }
  35.   int m = val;
  36.   float bw = m / 100;
  37.   float sw = m / 10 % 10;
  38.   float gw = m % 10;



  39.   u8g.setFont(u8g_font_ncenB18);
  40.   u8g.firstPage();  //OLED左上角為0,0 ;字符定位為 左下角  firstPage標(biāo)志圖像循環(huán)開始
  41.   do {


  42.     u8g.drawStr( 0, 50, dtostrf(val, 5, 2, str)); //左上角


  43.   }
  44.   while ( u8g.nextPage() ); //nextPage標(biāo)志圖像循環(huán)結(jié)束
  45.   delay(150);
  46.    mp3.playFileByIndexNumber(11);
  47.    delay(3000);
  48.   if ( bw != 0 )
  49.   {
  50.     mp3.playFileByIndexNumber(bw + 1);
  51.     delay(400);
  52.   }
  53.   int pp=!(bw == 0.0 && sw == 0.0);
  54.   Serial.println(pp);
  55.   if ( !(bw == 0 && sw == 0) )
  56.   {
  57.     mp3.playFileByIndexNumber(sw + 1);
  58.      delay(400);
  59.   }
  60.   //if (mp3.getStatus() != MP3_STATUS_PLAYING  )
  61.   //{
  62.   mp3.playFileByIndexNumber(gw + 1);
  63.    delay(400);
  64.   // }
  65.    if (vsl > 150)
  66.     {
  67.       mp3.playFileByIndexNumber(12);
  68.       delay(3000);
  69.       digitalWrite(led, 1);
  70.       delay(10);
  71.     }
  72.     else {
  73.       digitalWrite(led, 0);
  74.     }
  75.     delay(5000);
  76. }

  77. int BH1750_Read(int address) //
  78. {
  79.   int i = 0;
  80.   Wire.beginTransmission(address);
  81.   Wire.requestFrom(address, 2);
  82.   while (Wire.available()) //
  83.   {
  84.     buff[i] = Wire.read();  //接收字節(jié)
  85.     i++;
  86.   }
  87.   Wire.endTransmission();
  88.   return i;
  89. }

  90. void BH1750_Init(int address)
  91. {
  92.   Wire.beginTransmission(address);
  93.   Wire.write(0x10);//1lx reolution 120ms
  94.   Wire.endTransmission();
  95. }
復(fù)制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:1 發(fā)表于 2019-12-4 15:11 | 只看該作者
本帖需要重新編輯補(bǔ)全電路原理圖,源碼,詳細(xì)說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復(fù)

使用道具 舉報(bào)

板凳
ID:669196 發(fā)表于 2019-12-20 15:04 | 只看該作者
請問1lx reolution 120ms是什么意思呀
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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