模擬IIC總線多設備掛載(12864OLED屏幕+GY30光照傳感器)

最終效果展示

OLED屏幕和GY30光照傳感器(BH1750FVI)都連接在一個IIC(I2C)總線上,所以只需要接4根線即可。獲取到的光照強度可以在OLED上實時顯示並通過串口打印。IIC是IO模擬IIC,方便後續代碼的移植到各個單片機平臺。

 

硬件彙總

單片機:STM32F103C8T6

OLED:0.96寸、128*64、驅動芯片是SSD1306(市場上常用)

光照強度傳感器:GY-30,BH1750FVI主控即可

 

接線方法

IIC總線:SCL--PA1  、 SDA--PA0

串口:TX--PA9  、 RX--PA10

GY30與OLED供電均爲3.3V

 

 

          

IIC總線的原理及特點

總線結構

 

l  總線只需要兩個數據線,分別爲:

SCL:時鐘線,維護傳輸時鐘

SDA:數據線,傳輸的數據位

l  總線是板級總線,連接線一般不超過兩米

l  總線的數據線和時鐘線均需要上拉電阻(1~10K,一般爲2.2k)

l  總線所有設備均需共地

l  器件地址需要保證唯一性,不做任何設備屏蔽的情況下,總線可掛載設備爲127個,因爲器件地址默認爲寫地址,讀地址需要將其最後一位變爲1。

l  IIC器件地址羅列:

12864 OLED屏幕:0x78

GY30光照傳感器:0x46 或者 0xB8

 

IIC總線的信號有以下類別:開始信號、數據信號、應答信號、停止信號

 

空閒狀態:

當時鍾線和數據線都爲高電平是,IIC總線上的所有從設備都處於空閒狀態。

開始信號:

當時鍾線和數據線都爲高電平是,數據線從高電平到低電平跳變,則爲開始信號

 

數據信號:

時鐘線高電平時,數據線持續爲低電平,當時鍾線降爲低電平後,IIC設備將受到1位數據0;時鐘線爲高電平時,數據線持續爲高電平,當時鍾線降爲低電平後,IIC設備將收到1位數據1。在時鐘線高電平的過程中,數據線必須保持穩定,不能變化,否則的話將被誤認爲是控制信號。

應答信號:

應答信號一般是在8個數據位發送完成後就需要產生一個

 

停止信號:

當時鍾線爲高電平、數據線爲低電平是,數據線從低到高的跳變,則爲停止信號

 

 12864 OLED屏幕簡介

 

l  每個像素點自發光、較LCD屏幕去掉了高亮背光燈,達到了更加省電的效果。

l  體積可更小,厚度可更薄

l  驅動芯片爲SSD1306

l  分辨率:128*64

l  電壓:3.3V/5V

l  通信方式:IIC

驅動原理分析:

OLED,又稱爲有機電激光顯示、有機發光半導體,其是128*64=8192個像素點組成,每個像素點可以自發光,屏幕可以不能動態改變顏色和灰度值(透明度),所以可以認爲只是控制了8192個像素點的亮和滅來顯示各種圖形或字符。

 

這裏兩個是字庫聲明數組:

const unsigned char F6x8[][6];
const unsigned char F8X16[];

可以看出字符ASCII碼字符有大和小兩個規格,分爲:

6*8:1個字符佔用行6個像素,列8個像素

8*16:1個字符佔用行8個像素,列16個像素

另外漢字字庫太大的原因,所以漢字基本都是需要用到的自己再添加進去,通常爲16*16像素。

GY-30光強傳感器

 

 

l  其使用的主芯片爲ROHM-BH1750FVI

l  供電3-5V

l  光強測量範圍:1-65535勒克斯(Lux或lx)

l  C傳感器內置16bitAD轉換器

l  直接數字輸出,輸出帶有單位值,無需複雜計算

l  通訊方式IIC

 

接線說明

 

 

IIC地址引腳是確定確定模塊地址的,模塊有兩個地址可選,如果ADDR引腳接VCC則模塊IIC地址爲0xB8,如果ADDR引腳接GND則模塊IIC地址爲0x46

BH1750FVI手冊重要提取

通訊指令集合

測量模式說明

 

我們建議您使用H分辨率模式。,H分辨率模式下足夠長的測量時間(積分時間)能夠抑制一些噪聲(包括 50Hz/60Hz)。同時, H分辨率模式的分辨率在 1x下,適用於黑暗場合下(少於 10 1x), H分辨率模式2同樣適用於黑暗場合下的檢測。

異步復位和重置的命令"00000111"

1、    異步重置電源供應時序基礎上將所有寄存器復位序列。請參考本頁的 "VCC和DVI電源供給時序圖供電序列。在DVI="L"時是電源掉電模式。

2、    重置命令重置命令僅對光強度數據寄存器起作用 (指令值爲"0")。電源供應時序對其無影響。它的作用是原來清除之前的測量結果。這個命令不能在斷電模式 ,所以在輸入該指令前要設置爲通電模式。

 

程序編寫,實戰

 

  • IIC編程使用IO模擬IIC,方便後期代碼移植到其它單片機平臺

  • OLED屏幕與GY30光照傳感器(BH1750FVI)都在一條IIC總線上,數據線佔用IO資源只需要兩條

  • OLED實時顯示光強和串口實時輸出光強

  • 光強攜帶標準單位Lux

 

原文鏈接:https://www.cnblogs.com/dongxiaodong/p/13585644.html

 如需資料可加本人微信

 

微信號:dongxiaodongwx

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章