传感器自学笔记第十六章——双轴摇杆模块
作者: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);
}
代码下载地址:
链接:https://pan.baidu.com/s/1aNVDaUgucrI3oTHRR80EDw
提取码:00ug
传感器自学笔记第十六章——双轴摇杆模块相关推荐
- Linux(b站视频兄弟连)自学笔记第十六章——备份与恢复
Linux(b站视频兄弟连)自学笔记第十六章--备份与恢复 概述 dump和restore命令 概述 dump和restore命令
- 传感器自学笔记第十二章——火焰传感器+HC-SR501人体感应模块+按键模块+红绿双色LED(共阴)模块+按键开关模块+三色LED
作者:GWD 时间:2019.06.28 火焰传感器(开关量类传感器) 一. 学习要点:无 二. 手册分析: 用途:各种火焰,火源探测 模块特色: 1. 可以检测火焰或者波长在760纳米-1100纳米 ...
- [go学习笔记.第十六章.TCP编程] 3.项目-海量用户即时通讯系统-redis介入,用户登录,注册
1.实现功能-完成用户登录 在redis手动添加测试用户,并画出示意图以及说明注意事项(后续通过程序注册用户) 如:输入用户名和密码,如果在redis中存在并正确,则登录,否则退出系统,并给出相应提示 ...
- 强化学习(RLAI)读书笔记第十六章Applications and Case Studies(不含alphago)
强化学习(RLAI)读书笔记第十六章Applications and Case Studies(不含alphago) 16.1 TD-Gammon 16.2 Samuel's Checkers Pla ...
- 强化学习(RLAI)读书笔记第十六章Applications and Case Studies(alphago)
强化学习(RLAI)读书笔记第十六章Applications and Case Studies(alphago) 16.6 Mastering the Game of Go 16.6.1 AlphaG ...
- Linux(b站视频兄弟连)自学笔记第十五章——启动管理
Linux(b站视频兄弟连)自学笔记第十五章--启动管理 CentOS 6.x启动管理 系统运行级别 系统启动过程 启动引导程序grub Grub配置文件 Grub加密与字符界面分辨率调整 系统修复模 ...
- Linux(b站视频兄弟连)自学笔记第十四章——日志管理
Linux(b站视频兄弟连)自学笔记第十四章--日志管理 简介 rsyslogd 日志轮替 简介 rsyslogd 日志轮替
- Linux(b站视频兄弟连)自学笔记第十二章——Linux服务管理
Linux(b站视频兄弟连)自学笔记第十二章--Linux服务管理 服务分类 RPM包安装服务的管理 独立服务的管理 基于xinetd 的服务管理 源码包服务管理 服务分类 RPM包安装服务的管理 独 ...
- C++ Primer plus学习笔记-第十六章:string类和标准模板库
第十六章:string类和标准模板库 前言:这一章已经相当靠近全书的后面部分了:这一章我们会深入探讨一些技术上的细节,比如string的具体构造函数,比如适用于string类的几个函数,比如我们还会介 ...
最新文章
- python的redis数据库连接与使用
- 中山大学计算机学院运动会,喜讯!我院获2019中大校运会教工组团体第二名
- Parser in C
- 安卓耗电监控app_Android系统十大耗电应用拍照APP排第一
- 答复审稿人的10条简易法则,你都学会了吗?
- 简单搜索 poj1321
- 找零兑换(递归解法)
- Django完整的开发一个博客系统
- 在Flex中获取一个屏幕截图(Screenshot)并将其传递给ASP.NET
- Sql JOIN 一张图说明
- 预防 Android Dex 64k Method Size Limit
- 《JAVA程序设计基础(第3版)实验指导》pdf 附下载链接
- SpringBoot房屋租赁系统
- 用python操作浏览器的三种方式_经验 | python 操作浏览器的三种方式
- hive hql 交差并集 练习
- linux文件误删除该如何恢复?
- Win12爆料,微软Windows 12计划3月份开始开发
- 关于 Android 的 OMA DRM 验证
- 64位处理器与32位处理器的区别
- Windows Azure 虚拟网络中虚拟机的网络隔离选项