admin管理员组文章数量:1130349
传感器自学笔记第十六章——双轴摇杆模块
作者:GWD 时间:2019.7.1
一、 学习要点
1、检测电压常态时2.5V,最大值5V,最小值0V,实际上就是两个x,y方向上的滑动变阻器,用PCF8591模数转换模块的两个通道分别检测电压值的变化就可以知道摇杆指向的位置了;
2、它就像一个在游戏控制台中操纵杆,你可以控制输入这个操纵杆模块的 x、 y、 z 的值以及在特定的值下实现某种功能,它可以被视为一个按钮和电位计的组合。数据类型的 x,y 维为模拟输入信号而 z 维是数字输入信号,因此,x 和 y 端口连接到模拟插脚传感器端,而 z 端口连接到数字端口。
二、 手册分析
1、
2、PS2 游戏双轴摇杆传感器模块由采用原装优质金属 PS2 摇杆电位器制作,具有(X,Y)2 轴模拟输出, (Z)1 路按钮数字输出。配合 单片机可以制作遥控器等互动作品。
三、 编程
1、程序功能:摇杆的X、Y轴分别接PCF8591的AIN0、AIN1引脚,沿着X、Y方向移动摇杆串口打印的数字呈线性变化,按下摇杆P2.0引脚的小灯点亮;
2、程序效果:
2、PS2 游戏双轴摇杆传感器模块由采用原装优质金属 PS2 摇杆电位器制作,具有(X,Y)2 轴模拟输出, (Z)1 路按钮数字输出。配合 单片机可以制作遥控器等互动作品。
三、 编程
1、程序功能:摇杆的X、Y轴分别接PCF8591的AIN0、AIN1引脚,沿着X、Y方向移动摇杆串口打印的数字呈线性变化,按下摇杆P2.0引脚的小灯点亮;
2、程序效果:
3、代码
Main.c
#include <reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
#include "stdio.h"
#include "delay.h"
#include "IIC.h"
#include "PCF8591.h"typedef unsigned char uChar8;
typedef unsigned int uInt16;void InitUART (void)
{TH1 = 0xFD; // TH1: 重装值 9600 波特率 晶振 11.0592MHz TL1 = TH1;TMOD |= 0x20; // TMOD: timer 1, mode 2, 8-bit 重装 // timer 0,16位计数 SCON = 0x50; // SCON: 模式 1, 8-bit UART, 使能接收 ES = 1; //打开串口中断TR1 = 1; // TR1: timer 1 打开 TI=1;} void main (void)
{char i=0;int x=0,y=0;InitUART();while (1) { x = RD_OneByte2Pcf8591(0x92,0x40);y = RD_OneByte2Pcf8591(0x92,0x41);printf("摇杆位置 X=%d,Y=%d\n\r",x,y);Delay2000ms();}
}
PCF8591.c
#include "PCF8591.h"
void WR_OneByte2Pcf8591(unsigned char address,unsigned char cmd,unsigned char dat)
{_nop_();iic_start();_nop_();iic_sendbyte(address);_nop_();iic_sendbyte(cmd);_nop_();iic_sendbyte(dat);
}int RD_OneByte2Pcf8591(unsigned char address,unsigned char cmd)
{int num = 0;iic_start(); //address=0x41iic_sendbyte(address);iic_sendbyte(cmd);iic_start(); //address=0x41iic_sendbyte(address|0x01);num = iic_rcvbyte_nack();return (num);
}
代码下载地址:
链接:
提取码:00ug
传感器自学笔记第十六章——双轴摇杆模块
作者:GWD 时间:2019.7.1
一、 学习要点
1、检测电压常态时2.5V,最大值5V,最小值0V,实际上就是两个x,y方向上的滑动变阻器,用PCF8591模数转换模块的两个通道分别检测电压值的变化就可以知道摇杆指向的位置了;
2、它就像一个在游戏控制台中操纵杆,你可以控制输入这个操纵杆模块的 x、 y、 z 的值以及在特定的值下实现某种功能,它可以被视为一个按钮和电位计的组合。数据类型的 x,y 维为模拟输入信号而 z 维是数字输入信号,因此,x 和 y 端口连接到模拟插脚传感器端,而 z 端口连接到数字端口。
二、 手册分析
1、
2、PS2 游戏双轴摇杆传感器模块由采用原装优质金属 PS2 摇杆电位器制作,具有(X,Y)2 轴模拟输出, (Z)1 路按钮数字输出。配合 单片机可以制作遥控器等互动作品。
三、 编程
1、程序功能:摇杆的X、Y轴分别接PCF8591的AIN0、AIN1引脚,沿着X、Y方向移动摇杆串口打印的数字呈线性变化,按下摇杆P2.0引脚的小灯点亮;
2、程序效果:
2、PS2 游戏双轴摇杆传感器模块由采用原装优质金属 PS2 摇杆电位器制作,具有(X,Y)2 轴模拟输出, (Z)1 路按钮数字输出。配合 单片机可以制作遥控器等互动作品。
三、 编程
1、程序功能:摇杆的X、Y轴分别接PCF8591的AIN0、AIN1引脚,沿着X、Y方向移动摇杆串口打印的数字呈线性变化,按下摇杆P2.0引脚的小灯点亮;
2、程序效果:
3、代码
Main.c
#include <reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
#include "stdio.h"
#include "delay.h"
#include "IIC.h"
#include "PCF8591.h"typedef unsigned char uChar8;
typedef unsigned int uInt16;void InitUART (void)
{TH1 = 0xFD; // TH1: 重装值 9600 波特率 晶振 11.0592MHz TL1 = TH1;TMOD |= 0x20; // TMOD: timer 1, mode 2, 8-bit 重装 // timer 0,16位计数 SCON = 0x50; // SCON: 模式 1, 8-bit UART, 使能接收 ES = 1; //打开串口中断TR1 = 1; // TR1: timer 1 打开 TI=1;} void main (void)
{char i=0;int x=0,y=0;InitUART();while (1) { x = RD_OneByte2Pcf8591(0x92,0x40);y = RD_OneByte2Pcf8591(0x92,0x41);printf("摇杆位置 X=%d,Y=%d\n\r",x,y);Delay2000ms();}
}
PCF8591.c
#include "PCF8591.h"
void WR_OneByte2Pcf8591(unsigned char address,unsigned char cmd,unsigned char dat)
{_nop_();iic_start();_nop_();iic_sendbyte(address);_nop_();iic_sendbyte(cmd);_nop_();iic_sendbyte(dat);
}int RD_OneByte2Pcf8591(unsigned char address,unsigned char cmd)
{int num = 0;iic_start(); //address=0x41iic_sendbyte(address);iic_sendbyte(cmd);iic_start(); //address=0x41iic_sendbyte(address|0x01);num = iic_rcvbyte_nack();return (num);
}
代码下载地址:
链接:
提取码:00ug
本文标签: 传感器自学笔记第十六章双轴摇杆模块
版权声明:本文标题:传感器自学笔记第十六章——双轴摇杆模块 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://it.en369.cn/IT/1694662216a254692.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论