PS2操纵杆实验

        小的时候过生日,长辈们有的时候会送一些遥控小汽车,哪怕是到了高中也不明白其中的道理,到了大学,了解了一部分硬件知识,我已经有所理解了。

        所以今天我要做的实验就是PS2操纵杆实验。还是先上代码。

const int xPin=A0;
const int yPin=A1;
const int swPin=7;
void setup() {
  // put your setup code here, to run once:
  pinMode(swPin,INPUT);
  digitalWrite(swPin,HIGH);
  Serial.begin(9600);

}

void loop() {
  // put your main code here, to run repeatedly:
Serial.print("X:");
Serial.print(analogRead(xPin),DEC);
Serial.print("/tY:");
Serial.print(analogRead(yPin),DEC);
Serial.print("/tZ:");
Serial.println(digitalRead(swPin));
delay(100);
}

        首先还是对用到的变量进行定义,包括xPin,yPin和swPin(我看接线那上面写的sw,我查的是按钮的意思)。因为这个操作杆是一个二维的,所以有x轴和y轴,也就是这里的xPin和yPin,并且分别接在A0和A1引脚。这里的swPin主要就是按下时Z=0的坐标也会显示出来。

        在setup函数中呢,我们将swPin所在的引脚设置为输入模式,并将其改为高电平。(这里的话应该就是不按下不反应,按下才反应)。然后再设置一个串口监视器。

        在loop函数中,我们主要目的就是通过串口监视器来监视xPin和yPin的变化并将它们在串口监视器中打印出来。为了显示出来数字,这里用的时analogRead而不是digitalRead,本指令用于从Arduino的模拟输入引脚读取数值。Arduino控制器有多个10位数模转换通道。这意味着Arduino可以将0-5伏特的电压输入信号映射到数值0-1023(太极创客上面查的)。这也就解释了为什么串口监视器上面x和y的值有界限。然后就是监视z的状态,因为不用测swPin的数值,只用测高低电平,所以用digitalRead。最后延时0.1s。

        到这里我们可以畅想一下。用if语句,如果x轴的数据或者y的数据大于某个值,就可以执行下一个程序,是不是就可以操作一系列的东西呢?比如我上一个实验,如果我把光敏传感器和声音传感器改用PS2操作感,让x>600的时候灯亮,或是一些其他的值,是不是于我而言的另一种创新呢?

创作不易,感谢点赞,关注,收藏!!!

  • 11
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鲁不动AI了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值