91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

怎樣使OLED和加速度計交互

454398 ? 來源:網絡整理 ? 作者:網絡整理 ? 2019-11-19 10:54 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

步驟1:介紹加速度計ADXL335

在本教程中,我們將展示如何使用庫顯示球并使用加速度計使其在屏幕上移動。我們將使用的加速度計是ADXL335。

傳感器可以測量x,y和z軸上的加速度,就像重力引起的加速度一樣。因此,如果傳感器在靜止狀態下與地面平行,則只有一根軸會感覺到重力加速度。傾斜設備時,其他軸也會開始感覺到重力加速度。這樣,就有可能分析設備的移動方式。

步驟2:將加速度計添加到OLED設置

現在我們知道了OLED和加速度計的工作原理,現在該創建設置了。

首先,我們需要按照上圖所示的以下方式將傳感器添加到OLED設置中。

傳感器的針腳如下所示連接到Arduino

VCC – 5V

GND – GND

X – A3

Y – A2

Z和ST保持未連接狀態

步驟3:代碼

設置好連線后,我們可以使用以下代碼創建游戲:

#include

#include

#include

#include

using namespace JUGL;

SSD1306_128x64 driver;

const int xpin = A3; //Assign pin A3 to x

const int ypin = A2; //Assign pin A2 to y

int x, y, x1, y1, r, varx, vary, width, height; //Define variables

int xy [2]; //Array to hold (x,y) coordinate

//Declaration of functions

void Circle(IScreen& scr);

void move_right(IScreen& scr);

void stop_right(IScreen& scr);

void move_left(IScreen& scr);

void stop_left(IScreen& scr);

void move_up(IScreen& scr);

void stop_up(IScreen& scr);

void move_down(IScreen& scr);

void stop_down(IScreen& scr);

void setup(){

IScreen& screen = driver; //Make reference to driver

screen.Begin(); //Initialize screen

width = screen.GetWidth(); //Get width of screen (128)

height = screen.GetHeight(); //Get height of screen (64)

Circle(screen); //Draw circle

}

void loop(){

x1 = analogRead(xpin); //Read x analog data

y1 = analogRead(ypin); //Read y analog data

IScreen& screen = driver; //Make reference to driver

if(x1《500){ //Check if sensor is tilted to the right

move_right(screen); //Move ball right

if(varx》=width-1-r ){ //Check if ball reached end of screen

stop_right(screen); //Stop moving

}

}

if(x1》520){ //Check if sensor is tilted to the left

move_left(screen); //Move ball left

if(varx=height-1-r){ //Check if ball reached end of screen

stop_up(screen); //Stop moving

}

}

if(y1》510){ //Check if sensor is tilted down

move_down(screen); //Move ball down

if(varyr){ //Check if ball is within boundaries

scr.Flush(); //Display on screen

}

}

void stop_left(IScreen& scr){

scr.Clear(); //Clear screen

varx = r; //Update varx

xy[0] = varx; //Store new varx value

scr.FillCircle(Point(5,xy[1]),r); //Draw circle

scr.Flush(); //Display on screen

}

void move_up(IScreen& scr){

scr.Clear(); //Clear screen

vary += 10; //Move ball 10 pixels up, assign value to vary

xy[1] = vary; //Store new vary value

scr.FillCircle(Point(xy[0],vary),r); //Draw circle

if(varyr){ //Check if ball is within boundaries

scr.Flush(); //Display on screen

}

}

void stop_down(IScreen& scr){

scr.Clear(); //Clear screen

vary = r; //Update vary

xy[1] = vary; //Store new vary value

scr.FillCircle(Point(xy[0],5),r); //Draw circle

scr.Flush(); //Display on screen

}

第4步:代碼說明

所以這是代碼中正在發生的事情。首先,我們包含了運行該程序所需的所有庫。 JUGL庫包含繪制圓所需的功能,而JUGL_SSD1306_128x64庫用于初始化屏幕。最后一個庫還包含“ DrawPoint”和“ Flush”功能,以繪制圓的每個像素并將其顯示在屏幕上。 SPI和Wire庫用于通過SPI或I2C與設備通信。在這種情況下,我們正在使用I2C通信。由于該庫支持許多驅動程序,因此需要指定我們正在使用的驅動程序。第6行通過指定在128x64屏幕上使用驅動程序SSD1306來解決此問題。以下是該庫支持的其他驅動程序:

EPD 2.0

EPD 1.44

EPD 2.7

PCF8833

KS0107

在代碼的下一部分,我們將Arduino的模擬輸入A3和A2分別分配給傳感器的x和y引腳。我們還定義了將要使用的變量,并創建一個數組來保存x和y坐標(球的原點)。然后,對將在此程序中使用的功能進行前向聲明。

接下來,我們轉到代碼的設置部分。在這里,我們引用了正在使用的驅動程序。基于參考,我們初始化屏幕,并獲取其寬度和高度。最后,我們將函數稱為“圓形”。該函數清除屏幕并設置球的半徑和原點。我們使用庫中的“ FillCircle”和“ Flush”功能繪制球并顯示。這將在屏幕的左下角生成一個球,該球的半徑為5個像素,原點為(5,5)。

步驟5:動作中的傳感器

現在我們有了球,我們可以使用傳感器使其移動。

在程序的循環部分中,我們引用了我們再次使用的驅動程序。然后,我們從引腳x和y讀取數據,并將值分別分配給變量x1和y1。上表顯示了每個引腳的值,具體取決于設備的傾斜度。

通過將這些值與“靜止”值進行比較,我們可以確定設備是否向右,向左傾斜,等。讓我們以程序中的第一種情況為例。

我們知道,如果設備向右傾斜,則“靜止”值將減小。發生這種情況時,程序將調用函數“ move_right”。該函數清除屏幕,然后將值10添加到變量“ varx”(在這種情況下為零)。這表示我們要在x軸上移動球原點的像素數。然后,我們將新值“ varx”存儲在數組的第一個位置。最后,我們調用“ FillCircle”和“ Flush”函數在屏幕上顯示一個新的圓,該新圓與x軸上的上一個圓相距10個像素。只要引腳X的值小于510,該過程就會不斷重復,從而擦除上一個圓,并在每次迭代時將新的像素畫出10個像素。這給人一種錯覺,那就是球在向右移動。

但是,如果球到達屏幕末端,則會調用“ stop_right”功能。此函數清除屏幕,將varx設置為126,并將此值存儲在數組的第一個位置。然后調用函數“ FillCircle”和“ Flush”繪制并顯示一個球,球的原點為(126,xy [1])。換句話說,該程序將停止將球向右移動10個像素,而是將在屏幕y所在的任何位置繼續在屏幕右側的邊緣繪制相同的圓。

當設備向左,向上或向下傾斜時,使用相同的想法。

步驟6:傳感器在起作用-繼續

每次我們在屏幕上移動球時,都需要跟蹤x和y軸的變化。如前所述,這是通過在每次球的原點發生變化時將新的x和y值存儲在數組中來完成的。例如,如果我們將球向右移動并停止,以使繪制的最后一個球的原點為(30,5),則要從那里向上移動球,則必須考慮到球的變化。 x軸,以便在繪制新球時,其原點位于(30,15)。換句話說,數組中保存的值用作下一個要繪制的球的參考位置。

責任編輯:wv

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • OLED
    +關注

    關注

    120

    文章

    6286

    瀏覽量

    228104
  • 加速度計
    +關注

    關注

    6

    文章

    728

    瀏覽量

    46880
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Analog Devices Inc. ADXL373微功耗3軸MEMS加速度計數據手冊

    Analog Devices Inc. ADXL373微功耗3軸MEMS加速度計是一款超低功耗、±400g微機電系統(MEMS)加速度計,以2560Hz輸出數據速率 (ODR) 工作時功耗為19μA
    的頭像 發表于 06-26 14:30 ?188次閱讀
    Analog Devices Inc. ADXL373微功耗3軸MEMS<b class='flag-5'>加速度計</b>數據手冊

    Analog Devices Inc. ADXL367 MEMS加速度計數據手冊

    Analog Devices Inc. ADXL367 MEMS加速度計是一款超低功耗、3軸微機電系統 (MEMS) 加速度計,在100Hz輸出數據速率下功耗為0.89μA,在運動觸發喚醒模式下功耗
    的頭像 發表于 06-20 15:02 ?256次閱讀
    Analog Devices Inc. ADXL367 MEMS<b class='flag-5'>加速度計</b>數據手冊

    ADXL382 低噪聲密度、低功耗、3 軸加速度計數據手冊和產品介紹

    Analog Devices ADXL382 加速度計具有低噪聲密度和低功耗,可在高振動環境中進行精確測量 Analog Devices ADXL382 低噪聲密度、低功耗、3 軸加速度計支持
    的頭像 發表于 04-07 15:07 ?1100次閱讀
    ADXL382 低噪聲密度、低功耗、3 軸<b class='flag-5'>加速度計</b>數據手冊和產品介紹

    高性能石英加速度計,滿足最嚴苛應用需求

    在精度、可靠性和環境適應性至關重要的行業中,ER-QA-02A高性能石英加速度計無疑是一款顛覆性的產品。專為最具挑戰性的環境設計,這款先進的加速度計以無與倫比的精度和穩定性,成為航空航天、國防、工業以及地震監測等領域的理想選擇。
    的頭像 發表于 02-19 17:41 ?528次閱讀

    ADXL345超低功耗3軸加速度計中文手冊

    電子發燒友網站提供《ADXL345超低功耗3軸加速度計中文手冊.pdf》資料免費下載
    發表于 01-06 16:35 ?5次下載

    十軸姿態傳感器模塊 | 集成加速度計、陀螺儀、磁力,自帶BLE5.0藍牙

    海凌科全新推出HLK-AS2001十軸姿態傳感器模塊,集成加速度計、陀螺儀和磁力,自帶BLE5.0藍牙,開發簡單,應用廣泛。什么是十軸姿態傳感器模塊?HLK-AS2001十軸姿態傳感器模塊是海凌科
    的頭像 發表于 01-06 12:47 ?1016次閱讀
    十軸姿態傳感器模塊 | 集成<b class='flag-5'>加速度計</b>、陀螺儀、磁力<b class='flag-5'>計</b>,自帶BLE5.0藍牙

    ADS1258 AVSS 5ms內電壓跳變后,讀取加速度計的值變為原來的一半是為什么?

    時,ADS1258輸出為正常情況下的一半(正常情況下測得加速度計為1G,故障發生時為0.5左右,且無論如何移動加速度計,轉換后的值只發生小幅度變化)。測量過IX IY IZ及VX VY VZ在電源波動時的值未發生變化。CPU為TMS320F28335.
    發表于 11-22 07:42

    MEMS加速度計的工作原理是什么

    MEMS加速度計的工作原理主要基于牛頓第二定律,即力等于質量乘以加速度。以下是對其工作原理的介紹: 一、核心部件與結構 MEMS加速度計的核心部件包括一個微小的質量塊、彈性元件(如彈簧梁)以及檢測器
    的頭像 發表于 11-20 10:09 ?2412次閱讀

    PCB Piezotronics推出357A67型三軸電荷輸出加速度計

    據麥姆斯咨詢報道,近期,PCB Piezotronics推出了357A67型三軸電荷輸出加速度計,以滿足高溫應用需求。這款新型號是PCB Piezotronics目前最小的三軸電荷輸出加速度計,可
    的頭像 發表于 11-09 11:03 ?1915次閱讀
    PCB Piezotronics推出357A67型三軸電荷輸出<b class='flag-5'>加速度計</b>

    具有TLV2772的3V加速度計

    電子發燒友網站提供《具有TLV2772的3V加速度計.pdf》資料免費下載
    發表于 10-11 11:00 ?0次下載
    具有TLV2772的3V<b class='flag-5'>加速度計</b>

    EPSON工業級加速度計選型

    愛普生加速度計(Accelerometers)是一種工業級三軸輸出壓電式加速度傳感器,采用具有專利技術的雙音叉式石英傳感器元件和Quarts光刻技術,通過壓電效應來計算出諸如此類的內容物體運動的方向
    的頭像 發表于 09-19 15:31 ?699次閱讀
    EPSON工業級<b class='flag-5'>加速度計</b>選型

    e2studio開發三軸加速度計LIS2DW12(4)----測量傾斜度

    本文將介紹如何驅動和利用LIS2DW12三軸加速度計的傾斜檢測理論和傾斜角測量方法。一般來說,這里描述的程序也可以應用于三軸模擬或數字加速度計,這取決于它們各自的規格。
    的頭像 發表于 08-09 16:00 ?1158次閱讀
    e2studio開發三軸<b class='flag-5'>加速度計</b>LIS2DW12(4)----測量傾斜度

    e2studio開發三軸加速度計LIS2DW12(3)----檢測活動和靜止狀態

    本文將介紹實時獲取和處理加速度數據。程序的核心流程包括初始化硬件接口、配置加速度計的參數,以及通過輪詢檢查中斷信號來不斷讀取加速度數據。
    的頭像 發表于 08-09 15:53 ?1030次閱讀
    e2studio開發三軸<b class='flag-5'>加速度計</b>LIS2DW12(3)----檢測活動和靜止狀態

    e2studio開發三軸加速度計LIS2DW12(2)----基于中斷信號獲取加速度數據

    本文將介紹實時獲取和處理加速度數據。程序的核心流程包括初始化硬件接口、配置加速度計的參數,以及通過輪詢檢查中斷信號來不斷讀取加速度數據。
    的頭像 發表于 08-09 15:43 ?1019次閱讀
    e2studio開發三軸<b class='flag-5'>加速度計</b>LIS2DW12(2)----基于中斷信號獲取<b class='flag-5'>加速度</b>數據

    e2studio開發三軸加速度計LIS2DW12(1)----輪詢獲取加速度數據

    本文將介紹如何驅動和利用LIS2DW12傳感器,實現精確的運動感應功能。 IS2DW12是一款高性能、超低功耗的三軸線性加速度計,屬于“femto”系列,利用了成熟的微機械加速度計制造工藝。這個
    的頭像 發表于 08-09 14:54 ?2376次閱讀
    e2studio開發三軸<b class='flag-5'>加速度計</b>LIS2DW12(1)----輪詢獲取<b class='flag-5'>加速度</b>數據
    主站蜘蛛池模板: www.人人干| 色综合中文字幕 | 男人和女人在床做黄的网站 | 亚洲免费视频一区 | 天堂资源在线中文 | 日本大黄视频 | 亚洲综合在线最大成人 | 香港经典a毛片免费观看爽爽影院 | 欧美福利在线播放 | 天堂最新资源在线 | 一本一本大道香蕉久在线精品 | 日韩美aaa特级毛片 日韩美a一级毛片 | 久久午夜免费视频 | 黑色丝袜美美女被躁视频 | 色综合色综合色综合色综合网 | 亚洲精品日韩专区silk | 欧美一欧美一区二三区性 | 天天槽任我槽免费 | 国产综合色精品一区二区三区 | 天天干天天插天天 | 日操夜干| 久操久操久操 | 欧美三级视频在线 | 免费高清成人啪啪网站 | 国产综合第一页在线视频 | 欧美三级在线观看视频 | 国产乱理论片在线观看理论 | 亚洲一区二区视频 | 色香婷婷 | 四虎国产精品4hu永久 | 国产成人毛片亚洲精品不卡 | 7777色鬼xxxx欧美色夫 | 在线好吊色视频98gao | 天堂在线观看中文字幕 | 欧美另类丰满69xxxxx | 日本三级香港三级人妇99 | 精品国产一二三区 | 男女爱爱视频免费 | 一区二区三区高清视频在线观看 | 久久久久久久国产精品电影 | 日韩卡1卡2卡三卡四卡二卡免 |