【Espruino】NO.12 加速度传感器演示
http://blog.csdn.net/qwert1213131/article/details/31035403
本文屬于個(gè)人理解,能力有限,紕漏在所難免。還望指正!
【小魚(yú)有點(diǎn)電】
【Espruino中文社區(qū)】
?
加速度計(jì)的應(yīng)用范圍越來(lái)越廣泛,四軸飛行器、游戲手柄、跌倒檢測(cè)、振動(dòng)、傾角檢測(cè)都會(huì)有他的身影。跟其它MEMS配合應(yīng)用范圍更廣。
Espruino已經(jīng)提供了數(shù)字加速度計(jì)ADXL345的基本函數(shù)庫(kù)。僅僅須要簡(jiǎn)單幾句代碼就能獲取各軸加速度值。
數(shù)據(jù)手冊(cè)在此:點(diǎn)擊打開(kāi)鏈接
ADXL345支持SPI和I2C接口,本次實(shí)驗(yàn)使用I2C接口,也就是說(shuō)須要2跟線,SDA(B6)和SCL(B7),須要注意的是這兩條線要上拉4.7K電阻。
首先要依據(jù)引腳配置I2C。這里使用的是I2C1,SDA(B6)和SCL(B7):
I2C1.setup({scl:B6, sda:B7});接著調(diào)用ADXL345的庫(kù)
var accel = require("ADXL345").connect(i2c,cspin,range)當(dāng)中,cspin沒(méi)實(shí)用到。range例如以下:
| 0 | +/-2 g |
| 1 | +/-4 g |
| 2 | +/-8 g |
| 3 | +/-16 g |
默認(rèn)情況下,加速度計(jì)處于待機(jī)模式,若要獲取數(shù)據(jù),須要打開(kāi)測(cè)量模式。設(shè)置為true:
accel.measure(true or false)若要讀取到數(shù)據(jù)。則調(diào)用以下的函數(shù),就能得到x、y、z各軸的加速度,單位為g:
accel.read()?
實(shí)驗(yàn)中通過(guò)讀取x軸的數(shù)據(jù)來(lái)讓3個(gè)led分別亮起。示比例如以下,還有視頻:
I2C1.setup({scl:B6, sda:B7}); var accel = require("ADXL345").connect(I2C1,0,3); accel.measure(true); clearInterval(); function led(){if(accel.read().x<-0.25)digitalWrite([LED3,LED2,LED1],0b100);else if(accel.read().x>0.25)digitalWrite([LED3,LED2,LED1],0b001);elsedigitalWrite([LED3,LED2,LED1],0b010); } setInterval(led,200);?
轉(zhuǎn)載于:https://www.cnblogs.com/zsychanpin/p/6789455.html
總結(jié)
以上是生活随笔為你收集整理的【Espruino】NO.12 加速度传感器演示的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: js确保正确this的几种写法
- 下一篇: Python将JSON格式数据转换为SQ