91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

3天內不再提示

怎樣使OLED和加速度計交互

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

掃碼添加小助手

加入工程師交流群

步驟1:介紹加速度計ADXL335

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

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

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

現(xiàn)在我們知道了OLED和加速度計的工作原理,現(xiàn)在該創(chuàng)建設置了。

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

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

VCC – 5V

GND – GND

X – A3

Y – A2

Z和ST保持未連接狀態(tài)

步驟3:代碼

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

#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步:代碼說明

所以這是代碼中正在發(fā)生的事情。首先,我們包含了運行該程序所需的所有庫。 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引腳。我們還定義了將要使用的變量,并創(chuàng)建一個數(shù)組來保存x和y坐標(球的原點)。然后,對將在此程序中使用的功能進行前向聲明。

接下來,我們轉到代碼的設置部分。在這里,我們引用了正在使用的驅動程序?;趨⒖迹覀兂跏蓟聊?,并獲取其寬度和高度。最后,我們將函數(shù)稱為“圓形”。該函數(shù)清除屏幕并設置球的半徑和原點。我們使用庫中的“ FillCircle”和“ Flush”功能繪制球并顯示。這將在屏幕的左下角生成一個球,該球的半徑為5個像素,原點為(5,5)。

步驟5:動作中的傳感器

現(xiàn)在我們有了球,我們可以使用傳感器使其移動。

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

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

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

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

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

步驟6:傳感器在起作用-繼續(xù)

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

責任編輯:wv

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

    關注

    121

    文章

    6363

    瀏覽量

    234016
  • 加速度計
    +關注

    關注

    6

    文章

    816

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    高精度石英加速度計助力航空航天精準測量

    在航空航天慣性測量領域,每一次微小的加速度變化都可能關乎飛行器的姿態(tài)與軌跡。從運載火箭的主動段飛行,到衛(wèi)星的在軌姿態(tài)控制,一個能夠精準捕捉微弱信號、同時耐受嚴苛環(huán)境的加速度計,是慣性導航系統(tǒng)不可或缺
    的頭像 發(fā)表于 03-26 15:47 ?503次閱讀
    高精度石英<b class='flag-5'>加速度計</b>助力航空航天精準測量

    探索NXP FXLS8964AF 3軸低g加速度計:特性、應用與設計要點

    探索NXP FXLS8964AF 3軸低g加速度計:特性、應用與設計要點 在汽車電子領域,對于高性能、低功耗的傳感器需求日益增長。NXP的FXLS8964AF 3軸低g加速度計,憑借其出色的特性和豐
    的頭像 發(fā)表于 12-25 10:20 ?474次閱讀

    深入解析FXLS8971CF:3軸低g加速度計的卓越性能與應用

    深入解析FXLS8971CF:3軸低g加速度計的卓越性能與應用 在當今工業(yè)和醫(yī)療物聯(lián)網(wǎng)(IoT)領域,對于高性能、低功耗的傳感器需求日益增長。NXP Semiconductors
    的頭像 發(fā)表于 12-24 14:00 ?564次閱讀

    深入解析FXLS8961AF:汽車應用中的3軸低g加速度計

    深入解析FXLS8961AF:汽車應用中的3軸低g加速度計 在汽車電子領域,傳感器技術的發(fā)展日新月異。其中,3軸加速度計在汽車安全和便利性應用中扮演著至關重要的角色。今天,我們就來詳細探討NXP
    的頭像 發(fā)表于 12-24 13:55 ?440次閱讀

    探索Series 660低成本可嵌入式加速度計:應用與技術解析

    探索Series 660低成本可嵌入式加速度計:應用與技術解析 在電子工程領域,加速度計是用于測量加速度的設備,在眾多應用場景中發(fā)揮著關鍵作用。今天,我們將深入探討PCB Piezotronics
    的頭像 發(fā)表于 12-12 15:45 ?431次閱讀
    探索Series 660低成本可嵌入式<b class='flag-5'>加速度計</b>:應用與技術解析

    IMI微功耗ICP?嵌入式加速度計:無線物聯(lián)網(wǎng)設備的理想之選

    IMI微功耗ICP?嵌入式加速度計:無線物聯(lián)網(wǎng)設備的理想之選 在電子工程師的日常工作中,為無線、電池供電的物聯(lián)網(wǎng)設備選擇合適的加速度計是一項關鍵任務。今天,我們就來深入了解一下IMI的微功耗ICP
    的頭像 發(fā)表于 12-10 16:00 ?511次閱讀
    IMI微功耗ICP?嵌入式<b class='flag-5'>加速度計</b>:無線物聯(lián)網(wǎng)設備的理想之選

    加速度計都有哪些分類?

    加速度計的分類主要依據(jù)其工作原理和測量維度(軸數(shù)),以下是詳細的分類:按工作原理分類(這是最核心的分類方式)這是根據(jù)加速度計內部如何感知和轉換加速度信號來劃分的。
    的頭像 發(fā)表于 12-04 15:55 ?628次閱讀
    <b class='flag-5'>加速度計</b>都有哪些分類?

    加速度計伺服電路模塊原理與應用

    在慣性導航與姿態(tài)控制這一尖端技術領域,系統(tǒng)感知運動狀態(tài)的能力直接決定了其精度與可靠性。而將物理世界的加速度精確轉換為可用電信號的關鍵,在于一個核心部件——加速度計伺服電路模塊。該模塊專為光電加速度計
    的頭像 發(fā)表于 11-28 15:43 ?480次閱讀

    如何為你的項目選擇合適的加速度計?

    在智能科技飛速發(fā)展的今天,從翱翔天空的飛行器到我們手中的智能設備,對運動的精準感知已成為關鍵。加速度計,作為測量加速度和振動的核心傳感器,其選型直接決定了項目的成敗。面對不同的技術類型,如何才能做出最明智的選擇?本文將帶您了解主要的加速
    的頭像 發(fā)表于 11-06 15:32 ?360次閱讀
    如何為你的項目選擇合適的<b class='flag-5'>加速度計</b>?

    石油鉆井為何離不開抗高溫抗沖擊的石英加速度計?

    在地下數(shù)千米的復雜鉆井環(huán)境中,鉆頭需要穿越堅硬的巖層、承受劇烈振動和超過150℃的高溫。此時,石英加速度計就如同鉆井系統(tǒng)的"感知神經(jīng)",通過與陀螺儀協(xié)同工作,精確測量角速度和加速度
    的頭像 發(fā)表于 09-30 15:16 ?706次閱讀
    石油鉆井為何離不開抗高溫抗沖擊的石英<b class='flag-5'>加速度計</b>?

    MEMS加速度計與石英加速度計的發(fā)展現(xiàn)狀與水平對比

    在工程測量與慣性導航領域,加速度計是感知運動與振動的核心傳感器。其中,微機電系統(tǒng)(MEMS)加速度計和石英加速度計是兩種技術路線迥異但應用廣泛的重要類型。它們各自的發(fā)展現(xiàn)狀和技術水平呈現(xiàn)出一種既競爭又互補的格局。
    的頭像 發(fā)表于 09-19 14:55 ?1315次閱讀
    MEMS<b class='flag-5'>加速度計</b>與石英<b class='flag-5'>加速度計</b>的發(fā)展現(xiàn)狀與水平對比

    洞察萬物運動:詳解加速度計的分類與廣泛應用

    在我們日常生活中,從智能手機屏幕的自動旋轉到汽車的緊急安全氣囊觸發(fā),一種看不見的技術始終在默默工作,感知著物體的運動和振動。這種技術的核心元件就是加速度計。它是一種能夠測量加速度(包括靜態(tài)重力加速度
    的頭像 發(fā)表于 09-18 16:06 ?1060次閱讀
    洞察萬物運動:詳解<b class='flag-5'>加速度計</b>的分類與廣泛應用

    為什么在振動分析中加速度計最常用?

    盡管振動可以通過位移、速度、加速度三個參數(shù)來完整描述,但在現(xiàn)代預測性維護和狀態(tài)監(jiān)測領域,加速度傳感器(加速度計)占據(jù)了絕對主導地位,原因如下:寬廣的頻率范圍:機械設備的早期故障(如軸承
    的頭像 發(fā)表于 09-12 12:02 ?991次閱讀
    為什么在振動分析中<b class='flag-5'>加速度計</b>最常用?

    超高精度MEMS加速度計能否撼動石英加速度計的市場地位?

    在慣性傳感技術飛速發(fā)展的今天,ER-MA-6 MEMS加速度計以其突破性的技術指標,正在挑戰(zhàn)傳統(tǒng)石英加速度計的市場地位。這款采用先進微機電系統(tǒng)技術打造的高精度傳感器,不僅繼承了MEMS器件固有
    的頭像 發(fā)表于 08-28 15:21 ?757次閱讀
    超高精度MEMS<b class='flag-5'>加速度計</b>能否撼動石英<b class='flag-5'>加速度計</b>的市場地位?

    航空航天對石英加速度計的要求?

    在航空航天這一對精度與可靠性要求近乎極致的領域,石英加速度計不僅是測量的工具,更是飛行安全、導航精度和任務成功的核心保障。它如同飛行器的“精密感官”,必須在地面、高空乃至太空的極端環(huán)境下,瞬間捕捉
    的頭像 發(fā)表于 08-21 15:56 ?1007次閱讀
    航空航天對石英<b class='flag-5'>加速度計</b>的要求?