0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用操纵杆和Arduino控制多个LED灯亮灭的过程

科技观察员 来源:DevicePlus 作者:DevicePlus 2022-03-30 15:24 次阅读

操纵杆工作原理

一个简单的Arduino操纵杆使用电位器(如表盘或滑块中的那种)沿两个垂直轴读取值。通过组合这两个值,您可以获得与操纵杆位置相对应的x,y坐标。有了这些数据,您就可以根据操纵杆指向的位置采取行动。

与大多数电位器一样,两个轴的测量范围为0到1023。由于操纵杆从中心开始并左/右和上/下移动,因此两个轴的默认起始位置都在511左右。有几种类型的Arduino操纵杆控制器,甚至还有一两个操纵杆护罩。出于我们的目的,我们将研究一个基本的interwetten与威廉的赔率体系 Arduino操纵杆模块。

这个Arduino操纵杆带有五个引脚:一个用于电源,一个用于接地,两个用于X和Y轴的引脚,以及一个用于按钮按下的引脚。我们今天只使用前四个,但您可以在将来尝试通过按钮扩展您的项目。您还可以找到带有按钮的操纵杆护罩,因此您拥有控制整个游戏所需的所有输入。

不过,现在,我们将通过使用它来控制四个LED来演示操纵杆的工作原理。我们的目标是,当操纵杆指向上、下、左和右时,每个方向都会亮起不同的LED。这将很容易检测到,因为四个方向中的每一个都位于两个电位计轴之一的远端。

你需要什么

对于这个项目,我们将在Arduino操纵杆模块之上使用四个不同颜色的LED作为指示灯来显示我们的项目正在运行。物品清单:操纵杆;四个LED(如果有的话,最好是不同颜色的);四个220欧姆电阻;电线;面包板;USB电缆;ArduinoIDE等。

将所有材料放在一起后,将下一部分的代码上传到您的 Uno,然后转到接线部分。

代码

首先,将以下草图上传到您的 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;

在本节中,我们将定义六个引脚变量。前两个引脚 A0 和 A1 将存储来自操纵杆模块的 X 和 Y 变量。接下来的四行定义了四个 LED 引脚,对于这个草图,每个引脚都是不同的颜色。

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

在本节中,我们将启动串行监视器,它可以让我们看到当您移动操纵杆模块时操纵杆输出的值。四个pinMode()函数还将 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()部分中,我们将首先创建变量 xValue 和 yValue 来存储来自游戏杆模块的值。当您四处移动操纵杆时,这些值应该实时变化。

我们还将把 X 和 Y 值打印到串行监视器上。如果您想查看哪些值对应于不同的位置,请在通过 USB 插入 Arduino 时打开串行监视器。

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);
}

最后,我们将使用四个if()语句来控制彩色 LED。每个都分配一个值“> 1020”或“< 2”(我们使用这些值来减少闪烁)。例如,y 轴上的“> 1020”对应于摇杆指向上方,因此它会打开蓝色 LED。同样,y 轴上的“< 2”对应于操纵杆指向下方,因此红色 LED 将亮起,依此类推。

接线

pYYBAGJEBZOAQZIyAAMXouURlZI392.png

该项目的布线相对简单。每个LED都需要自己的220欧姆电阻,因此请确保您有一些方便的。要连接项目,请按照以下步骤操作。首先,在摇杆模块上:

将G引脚连接到Arduino上的GND。

将P引脚连接到Arduino上的5V。

将操纵杆上的X引脚连接到Arduino上的A0引脚。

将操纵杆上的Y引脚连接到Arduino上的A1引脚。

接下来,对于LED,我们将从4到7将一种颜色连接到Arduino上的数字引脚。对于每个引脚,执行以下步骤:

将LED的长端连接到Arduino上的正确引脚(请参阅草图变量以获取正确的引脚映射或更改代码以适合您拥有的LED)。

将LED的短脚连接到220欧姆电阻。

将220欧姆电阻连接到面包板上的接地轨。

将面包板上的接地轨连接到Arduino上的GND。

一切就绪并上传软件后,您可以打开Arduino并开始移动操纵杆。如果您打开串行监视器,您应该会看到X和Y值随着您移动操纵杆而发生变化。尝试向上、向下、向左和向右指向操纵杆以查看哪个LED亮起。您可以通过根据操纵杆指向的位置触发不同的操作来扩展此项目。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led
    led
    +关注

    关注

    242

    文章

    23259

    浏览量

    660631
  • Arduino
    +关注

    关注

    188

    文章

    6469

    浏览量

    186970
  • 操纵杆
    +关注

    关注

    0

    文章

    69

    浏览量

    8528
收藏 人收藏

    评论

    相关推荐

    labview操纵杆

    用labview自带的初始化操纵杆,输入设备信息,获取操纵杆的坐标轴,会占很大的内存!!!!还有其他方法吗!!
    发表于 04-13 01:06

    Digilent Pmod NAV和操纵杆

    Joey正在设置的是Pmod操纵杆。这是一个带有两个按钮的两轴操纵杆操纵杆中心按钮和一个按钮)。对于此示例,Joey使用UC32开发板运行示例代码,该代码根据操纵杆的位置更改RGB
    发表于 11-01 15:52

    如何使用Arduino UNO、操纵杆模块和NRF24L01模块控制伺服电机?

    文章目录参考资料:如何使用Arduino UNO、操纵杆模块和NRF24L01模块控制伺服电机1. 必需的组件2. 伺服电机控制如何工作3. NRF24L01引脚说明4. 电路原理图5
    发表于 06-28 09:49

    基于arduino的超级无尾卡丁车操纵杆

    描述超级无尾卡丁车操纵杆这是我为在 2021 年的 arduino 日玩 Super Tux Kart 而创建的 arduino 操纵杆的演变。您可以在下面看到第一个版本,它是精美的纸
    发表于 06-24 06:52

    怎样用Arduino操纵杆控制伺服电机

    这个项目的硬件部分非常容易制作。首先,将操纵杆模块与Arduino连接。操纵杆模块和Arduino的连接如下:
    的头像 发表于 08-01 14:24 5784次阅读

    使用Arduino Leonardo将操纵杆作为游戏控制器的方式

    在这个项目中,我们将使用与游戏手柄或游戏控制器相同的操纵杆来玩任何需要左右移动的电脑游戏。要玩需要更多控制选项的游戏,可以使用两个或更多操纵杆。在这里,我们将使用
    的头像 发表于 09-01 16:17 7287次阅读
    使用<b class='flag-5'>Arduino</b> Leonardo将<b class='flag-5'>操纵杆</b>作为游戏<b class='flag-5'>控制</b>器的方式

    使用Arduino Uno制作操纵杆控制的PC鼠标

    电子发烧友网站提供《使用Arduino Uno制作操纵杆控制的PC鼠标.zip》资料免费下载
    发表于 11-04 14:46 2次下载
    使用<b class='flag-5'>Arduino</b> Uno制作<b class='flag-5'>操纵杆</b><b class='flag-5'>控制</b>的PC鼠标

    如何使用Arduino操纵杆控制BLDC电机

    电子发烧友网站提供《如何使用Arduino操纵杆控制BLDC电机.zip》资料免费下载
    发表于 11-24 10:10 0次下载
    如何使用<b class='flag-5'>Arduino</b>和<b class='flag-5'>操纵杆</b><b class='flag-5'>控制</b>BLDC电机

    如何使用Arduino创建操纵杆控制

    电子发烧友网站提供《如何使用Arduino创建操纵杆控制器.zip》资料免费下载
    发表于 12-06 14:35 0次下载
    如何使用<b class='flag-5'>Arduino</b>创建<b class='flag-5'>操纵杆</b><b class='flag-5'>控制</b>器

    Arduino之使用PS2操纵杆控制LED

    电子发烧友网站提供《Arduino之使用PS2操纵杆控制LED.zip》资料免费下载
    发表于 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

    电子发烧友网站提供《使用操纵杆控制RGB LED.zip》资料免费下载
    发表于 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相机滑块

    方案介绍操纵杆手柄控制器可以使用两轴值(操纵杆旋钮的移动方向)来控制项目。此外,在这个项目中,我制作了一个 DIY 相机滑块,并使用 Arduino
    发表于 12-27 16:35 0次下载

    Arduino基于网络的操纵杆

    电子发烧友网站提供《Arduino基于网络的操纵杆.zip》资料免费下载
    发表于 02-01 10:06 0次下载
    <b class='flag-5'>Arduino</b>基于网络的<b class='flag-5'>操纵杆</b>

    如何使用模拟操纵杆控制LED

    电子发烧友网站提供《如何使用模拟操纵杆控制LED.zip》资料免费下载
    发表于 06-28 10:05 0次下载
    如何使用模拟<b class='flag-5'>操纵杆</b>来<b class='flag-5'>控制</b><b class='flag-5'>LED</b>

    如何使用操纵杆Arduino控制伺服电机

    在这篇文章中,我们将学习如何使用操纵杆Arduino控制伺服电机。我们将看到有关操纵杆,其销,其结构和工作的概述。我们将从操纵杆中提取有用
    的头像 发表于 07-27 11:47 1797次阅读
    如何使用<b class='flag-5'>操纵杆</b>和<b class='flag-5'>Arduino</b><b class='flag-5'>控制</b>伺服电机