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