衡阳派盒市场营销有限公司

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用操縱桿和Arduino控制多個(gè)LED燈亮滅的過程

科技觀察員 ? 來源:DevicePlus ? 作者:DevicePlus ? 2022-03-30 15:24 ? 次閱讀

操縱桿工作原理

一個(gè)簡單的Arduino操縱桿使用電位器(如表盤或滑塊中的那種)沿兩個(gè)垂直軸讀取值。通過組合這兩個(gè)值,您可以獲得與操縱桿位置相對應(yīng)的x,y坐標(biāo)。有了這些數(shù)據(jù),您就可以根據(jù)操縱桿指向的位置采取行動(dòng)。

與大多數(shù)電位器一樣,兩個(gè)軸的測量范圍為0到1023。由于操縱桿從中心開始并左/右和上/下移動(dòng),因此兩個(gè)軸的默認(rèn)起始位置都在511左右。有幾種類型的Arduino操縱桿控制器,甚至還有一兩個(gè)操縱桿護(hù)罩。出于我們的目的,我們將研究一個(gè)基本的模擬Arduino操縱桿模塊。

這個(gè)Arduino操縱桿帶有五個(gè)引腳:一個(gè)用于電源,一個(gè)用于接地,兩個(gè)用于X和Y軸的引腳,以及一個(gè)用于按鈕按下的引腳。我們今天只使用前四個(gè),但您可以在將來嘗試通過按鈕擴(kuò)展您的項(xiàng)目。您還可以找到帶有按鈕的操縱桿護(hù)罩,因此您擁有控制整個(gè)游戲所需的所有輸入。

不過,現(xiàn)在,我們將通過使用它來控制四個(gè)LED來演示操縱桿的工作原理。我們的目標(biāo)是,當(dāng)操縱桿指向上、下、左和右時(shí),每個(gè)方向都會(huì)亮起不同的LED。這將很容易檢測到,因?yàn)樗膫€(gè)方向中的每一個(gè)都位于兩個(gè)電位計(jì)軸之一的遠(yuǎn)端。

你需要什么

對于這個(gè)項(xiàng)目,我們將在Arduino操縱桿模塊之上使用四個(gè)不同顏色的LED作為指示燈來顯示我們的項(xiàng)目正在運(yùn)行。物品清單:操縱桿;四個(gè)LED(如果有的話,最好是不同顏色的);四個(gè)220歐姆電阻;電線;面包板;USB電纜;ArduinoIDE等。

將所有材料放在一起后,將下一部分的代碼上傳到您的 Uno,然后轉(zhuǎn)到接線部分。

代碼

首先,將以下草圖上傳到您的 Arduino Uno。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#define joyX A0
#define joyY A1
int blueLED = 7;
int redLED = 6;
int yellowLED = 5;
int whiteLED = 4;
void setup() {
Serial.begin(9600);
pinMode(blueLED,OUTPUT);
pinMode(redLED,OUTPUT);
pinMode(yellowLED,OUTPUT);
pinMode(whiteLED,OUTPUT);
}
void loop() {
int xValue;
int yValue;
xValue = analogRead(joyX);
yValue = analogRead(joyY);
Serial.print("X: ");
Serial.print(xValue);
Serial.print("\t Y: ");
Serial.println(yValue);
if (yValue > 1020){
digitalWrite(blueLED, HIGH);
} else {
digitalWrite(blueLED, LOW);
}
if (yValue < 2){
digitalWrite(redLED, HIGH);
} else {
digitalWrite(redLED, LOW);
}
if (xValue > 1020){
digitalWrite(yellowLED, HIGH);
} else {
digitalWrite(yellowLED, LOW);
}
if (xValue < 2){
digitalWrite(whiteLED, HIGH);
} else {
digitalWrite(whiteLED, LOW);
}
}

接下來,讓我們通過草圖突出顯示您需要了解的重要部分。

1
2
3
4
5
6
7
#define joyX A0
#define joyY A1
int blueLED = 7;
int redLED = 6;
int yellowLED = 5;
int whiteLED = 4;

在本節(jié)中,我們將定義六個(gè)引腳變量。前兩個(gè)引腳 A0 和 A1 將存儲(chǔ)來自操縱桿模塊的 X 和 Y 變量。接下來的四行定義了四個(gè) LED 引腳,對于這個(gè)草圖,每個(gè)引腳都是不同的顏色。

1
2
3
4
5
6
7
void setup() {
Serial.begin(9600);
pinMode(blueLED,OUTPUT);
pinMode(redLED,OUTPUT);
pinMode(yellowLED,OUTPUT);
pinMode(whiteLED,OUTPUT);
}

在本節(jié)中,我們將啟動(dòng)串行監(jiān)視器,它可以讓我們看到當(dāng)您移動(dòng)操縱桿模塊時(shí)操縱桿輸出的值。四個(gè)pinMode()函數(shù)還將 LED 引腳分配為輸出。

1
2
3
4
5
6
7
8
9
int xValue;
int yValue;
xValue = analogRead(joyX);
yValue = analogRead(joyY);
Serial.print("X: ");
Serial.print(xValue);
Serial.print("\t Y: ");
Serial.println(yValue);

在loop()部分中,我們將首先創(chuàng)建變量 xValue 和 yValue 來存儲(chǔ)來自游戲桿模塊的值。當(dāng)您四處移動(dòng)操縱桿時(shí),這些值應(yīng)該實(shí)時(shí)變化。

我們還將把 X 和 Y 值打印到串行監(jiān)視器上。如果您想查看哪些值對應(yīng)于不同的位置,請?jiān)谕ㄟ^ USB 插入 Arduino 時(shí)打開串行監(jiān)視器。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
if (yValue > 1020){
digitalWrite(blueLED, HIGH);
} else {
digitalWrite(blueLED, LOW);
}
if (yValue < 2){
digitalWrite(redLED, HIGH);
} else {
digitalWrite(redLED, LOW);
}
if (xValue > 1020){
digitalWrite(yellowLED, HIGH);
} else {
digitalWrite(yellowLED, LOW);
}
if (xValue < 2){
digitalWrite(whiteLED, HIGH);
} else {
digitalWrite(whiteLED, LOW);
}

最后,我們將使用四個(gè)if()語句來控制彩色 LED。每個(gè)都分配一個(gè)值“> 1020”或“< 2”(我們使用這些值來減少閃爍)。例如,y 軸上的“> 1020”對應(yīng)于搖桿指向上方,因此它會(huì)打開藍(lán)色 LED。同樣,y 軸上的“< 2”對應(yīng)于操縱桿指向下方,因此紅色 LED 將亮起,依此類推。

接線

pYYBAGJEBZOAQZIyAAMXouURlZI392.png

該項(xiàng)目的布線相對簡單。每個(gè)LED都需要自己的220歐姆電阻,因此請確保您有一些方便的。要連接項(xiàng)目,請按照以下步驟操作。首先,在搖桿模塊上:

將G引腳連接到Arduino上的GND。

將P引腳連接到Arduino上的5V。

將操縱桿上的X引腳連接到Arduino上的A0引腳。

將操縱桿上的Y引腳連接到Arduino上的A1引腳。

接下來,對于LED,我們將從4到7將一種顏色連接到Arduino上的數(shù)字引腳。對于每個(gè)引腳,執(zhí)行以下步驟:

將LED的長端連接到Arduino上的正確引腳(請參閱草圖變量以獲取正確的引腳映射或更改代碼以適合您擁有的LED)。

將LED的短腳連接到220歐姆電阻。

將220歐姆電阻連接到面包板上的接地軌。

將面包板上的接地軌連接到Arduino上的GND。

一切就緒并上傳軟件后,您可以打開Arduino并開始移動(dòng)操縱桿。如果您打開串行監(jiān)視器,您應(yīng)該會(huì)看到X和Y值隨著您移動(dòng)操縱桿而發(fā)生變化。嘗試向上、向下、向左和向右指向操縱桿以查看哪個(gè)LED亮起。您可以通過根據(jù)操縱桿指向的位置觸發(fā)不同的操作來擴(kuò)展此項(xiàng)目。

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

    關(guān)注

    242

    文章

    23356

    瀏覽量

    663206
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6477

    瀏覽量

    187821
  • 操縱桿
    +關(guān)注

    關(guān)注

    0

    文章

    69

    瀏覽量

    8581
收藏 人收藏

    評論

    相關(guān)推薦

    labview操縱桿

    用labview自帶的初始化操縱桿,輸入設(shè)備信息,獲取操縱桿的坐標(biāo)軸,會(huì)占很大的內(nèi)存!!!!還有其他方法嗎!!
    發(fā)表于 04-13 01:06

    Digilent Pmod NAV和操縱桿

    Joey正在設(shè)置的是Pmod操縱桿。這是一個(gè)帶有兩個(gè)按鈕的兩軸操縱桿操縱桿中心按鈕和一個(gè)按鈕)。對于此示例,Joey使用UC32開發(fā)板運(yùn)行示例代碼,該代碼根據(jù)操縱桿的位置更改RGB
    發(fā)表于 11-01 15:52

    如何使用Arduino UNO、操縱桿模塊和NRF24L01模塊控制伺服電機(jī)?

    文章目錄參考資料:如何使用Arduino UNO、操縱桿模塊和NRF24L01模塊控制伺服電機(jī)1. 必需的組件2. 伺服電機(jī)控制如何工作3. NRF24L01引腳說明4. 電路原理圖5
    發(fā)表于 06-28 09:49

    基于arduino的超級無尾卡丁車操縱桿

    描述超級無尾卡丁車操縱桿這是我為在 2021 年的 arduino 日玩 Super Tux Kart 而創(chuàng)建的 arduino 操縱桿的演變。您可以在下面看到第一個(gè)版本,它是精美的紙
    發(fā)表于 06-24 06:52

    怎樣用Arduino操縱桿控制伺服電機(jī)

    這個(gè)項(xiàng)目的硬件部分非常容易制作。首先,將操縱桿模塊與Arduino連接。操縱桿模塊和Arduino的連接如下:
    的頭像 發(fā)表于 08-01 14:24 ?5852次閱讀

    使用Arduino Leonardo將操縱桿作為游戲控制器的方式

    在這個(gè)項(xiàng)目中,我們將使用與游戲手柄或游戲控制器相同的操縱桿來玩任何需要左右移動(dòng)的電腦游戲。要玩需要更多控制選項(xiàng)的游戲,可以使用兩個(gè)或更多操縱桿。在這里,我們將使用
    的頭像 發(fā)表于 09-01 16:17 ?7373次閱讀
    使用<b class='flag-5'>Arduino</b> Leonardo將<b class='flag-5'>操縱桿</b>作為游戲<b class='flag-5'>控制</b>器的方式

    使用Arduino Uno制作操縱桿控制的PC鼠標(biāo)

    電子發(fā)燒友網(wǎng)站提供《使用Arduino Uno制作操縱桿控制的PC鼠標(biāo).zip》資料免費(fèi)下載
    發(fā)表于 11-04 14:46 ?2次下載
    使用<b class='flag-5'>Arduino</b> Uno制作<b class='flag-5'>操縱桿</b><b class='flag-5'>控制</b>的PC鼠標(biāo)

    如何使用Arduino操縱桿控制BLDC電機(jī)

    電子發(fā)燒友網(wǎng)站提供《如何使用Arduino操縱桿控制BLDC電機(jī).zip》資料免費(fèi)下載
    發(fā)表于 11-24 10:10 ?0次下載
    如何使用<b class='flag-5'>Arduino</b>和<b class='flag-5'>操縱桿</b><b class='flag-5'>控制</b>BLDC電機(jī)

    如何使用Arduino創(chuàng)建操縱桿控制

    電子發(fā)燒友網(wǎng)站提供《如何使用Arduino創(chuàng)建操縱桿控制器.zip》資料免費(fèi)下載
    發(fā)表于 12-06 14:35 ?0次下載
    如何使用<b class='flag-5'>Arduino</b>創(chuàng)建<b class='flag-5'>操縱桿</b><b class='flag-5'>控制</b>器

    Arduino之使用PS2操縱桿控制LED

    電子發(fā)燒友網(wǎng)站提供《Arduino之使用PS2操縱桿控制LED.zip》資料免費(fèi)下載
    發(fā)表于 12-22 16:39 ?2次下載
    <b class='flag-5'>Arduino</b>之使用PS2<b class='flag-5'>操縱桿</b><b class='flag-5'>控制</b><b class='flag-5'>LED</b>

    使用操縱桿控制RGB LED

    電子發(fā)燒友網(wǎng)站提供《使用操縱桿控制RGB LED.zip》資料免費(fèi)下載
    發(fā)表于 12-27 09:51 ?0次下載
    使用<b class='flag-5'>操縱桿</b>來<b class='flag-5'>控制</b>RGB <b class='flag-5'>LED</b>

    基于Arduino Pro Mini的操縱桿手柄和DIY相機(jī)滑塊

    方案介紹操縱桿手柄控制器可以使用兩軸值(操縱桿旋鈕的移動(dòng)方向)來控制項(xiàng)目。此外,在這個(gè)項(xiàng)目中,我制作了一個(gè) DIY 相機(jī)滑塊,并使用 Arduino
    發(fā)表于 12-27 16:35 ?0次下載

    Arduino基于網(wǎng)絡(luò)的操縱桿

    電子發(fā)燒友網(wǎng)站提供《Arduino基于網(wǎng)絡(luò)的操縱桿.zip》資料免費(fèi)下載
    發(fā)表于 02-01 10:06 ?0次下載
    <b class='flag-5'>Arduino</b>基于網(wǎng)絡(luò)的<b class='flag-5'>操縱桿</b>

    如何使用模擬操縱桿控制LED

    電子發(fā)燒友網(wǎng)站提供《如何使用模擬操縱桿控制LED.zip》資料免費(fèi)下載
    發(fā)表于 06-28 10:05 ?0次下載
    如何使用模擬<b class='flag-5'>操縱桿</b>來<b class='flag-5'>控制</b><b class='flag-5'>LED</b>

    如何使用操縱桿Arduino控制伺服電機(jī)

    在這篇文章中,我們將學(xué)習(xí)如何使用操縱桿Arduino控制伺服電機(jī)。我們將看到有關(guān)操縱桿,其銷,其結(jié)構(gòu)和工作的概述。我們將從操縱桿中提取有用
    的頭像 發(fā)表于 07-27 11:47 ?1886次閱讀
    如何使用<b class='flag-5'>操縱桿</b>和<b class='flag-5'>Arduino</b><b class='flag-5'>控制</b>伺服電機(jī)
    皇家棋牌| 连环百家乐官网的玩法技巧和规则| 百家乐优博娱乐城| 百家乐园蒙特卡罗| 百家乐官网输了好多钱| 百家乐压钱技巧| 香港六合彩曾道人| 免费百家乐官网过滤软件| 扬州棋牌中心| 王牌百家乐官网的玩法技巧和规则 | 百家乐官网棋牌游| 大发888真钱娱乐城| 百家乐官网公式软件| 大发888娱乐城外挂| 百家乐官网的巧门| 大发888娱乐游戏账号| 百家乐官网正式版| 德州扑克网页游戏| 百家乐官网试玩| 明升国际| 澳门百家乐一把决战输赢| 百家乐官网另类投注法| 百家乐是怎样算牌| 现场百家乐官网平台源码| YY百家乐官网的玩法技巧和规则| 大发888登陆网页| 乐中百家乐官网的玩法技巧和规则| 1737棋牌游戏中心| 百家乐策略| 阿巴嘎旗| 至尊百家乐娱乐场开户注册 | 利来国际网上娱乐| 百家乐平台哪个比较安全| 长宁区| 海王星百家乐的玩法技巧和规则| 澳门百家乐官网网站bt| 大发888真钱娱乐城| 凯旋门百家乐技巧| 百家乐官网游戏打水方法| 全讯网高手世家| 澳门1百家乐官网网|