双轴XY摇杆按键模块(stm32)

这篇具有很好参考价值的文章主要介绍了双轴XY摇杆按键模块(stm32)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

今天,翻出来一个双轴摇杆模块,某宝上几块钱一个,就给大家分享一下这个模块的驱动程序吧。

 

摇杆模块,基本功能,stm32,单片机,arm

双轴驱动模块:可随着上面的键帽转动 获得模拟值 通过adc转换就可以查看到具体的数据 从而得到上下左右的值。

引脚:

MS:按键

VRy:y轴模拟量输出

VRx:x轴模拟量输出

5v

GND

展示:

void Init_ADC(void)
{
GPIO_InitTypeDef GPIO_InitS;
	ADC_InitTypeDef ADC_InitS;
	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO|RCC_APB2Periph_ADC1,ENABLE);
	RCC_ADCCLKConfig(RCC_PCLK2_Div6);
 
	GPIO_InitS.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1;
	GPIO_InitS.GPIO_Mode=GPIO_Mode_AIN;	//模拟输入
	GPIO_InitS.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_Init(GPIOA,&GPIO_InitS);
	
	ADC_InitS.ADC_Mode = ADC_Mode_Independent; 
	ADC_InitS.ADC_ScanConvMode = DISABLE; //多通道(ENABLE)/单通道(DISABLE)
	ADC_InitS.ADC_ContinuousConvMode = DISABLE; //连续(ENABLE)/单次(DISABLE)
	ADC_InitS.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
	ADC_InitS.ADC_DataAlign = ADC_DataAlign_Right; //数据右对齐
	ADC_InitS.ADC_NbrOfChannel = 2; //通道数
	ADC_Init(ADC1, &ADC_InitS);
	ADC_Cmd(ADC1,ENABLE);
	ADC_ResetCalibration(ADC1);
	while(ADC_GetResetCalibrationStatus(ADC1));
	ADC_StartCalibration(ADC1);//开始指定ADC的校准状态
	while(ADC_GetCalibrationStatus(ADC1));//获取指定ADC的校准程序
	ADC_SoftwareStartConvCmd(ADC1, ENABLE);//使能或者失能指定的ADC的软件转换启动功能
}
u16 readAdc(u8 cmd)
{
	ADC_RegularChannelConfig(ADC1,cmd,1,ADC_SampleTime_239Cycles5);
	ADC_SoftwareStartConvCmd(ADC1, ENABLE);
	while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));//转换结束标志位
	return ADC_GetConversionValue(ADC1);//返回最近一次ADCx规则组的转换结果
}

上面为初始化以及读ADC值,我用的是PA1和PA2分别来获取X和Y轴。

经过测试我发现摇杆不动的情况值为3000左右,这个值会随着摇杆的扭动而改变

#define LEFT       3400//大于3400 左
#define RIGHT      2800//小于2800 右
#define FORWARD    2800//小于2800 上
#define BANKE      3400//小于3400 下
		if(readAdc(1)>LEFT)printf("   左");
		if(readAdc(1)<RIGHT)printf("   右");
		if(readAdc(0)<FORWARD)printf("   上");
		if(readAdc(0)>LEFT)printf("   下");

这是一些简单的测试数据 希望对大家的项目工程有一些帮助。文章来源地址https://www.toymoban.com/news/detail-628376.html

到了这里,关于双轴XY摇杆按键模块(stm32)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • K_A08_009 基于 STM32等单片机驱动TB6612模块按键控制直流电机正反转加减速启停

    K_A08_009 基于 STM32等单片机驱动TB6612模块按键控制直流电机正反转加减速启停

    目录 一、资源说明 二、基本参数         1、参数         2、引脚说明 三、驱动说明         TB6612模块驱动说明         对应程序:         ENA ENB输出PWM 四、部分代码说明         接线说明                 1、STC89C52RC+TB6612模块                 2、STM32F

    2024年02月15日
    浏览(14)
  • 摇杆按键+SG90 实现舵机云台(STM32F103C8T6)

    摇杆按键+SG90 实现舵机云台(STM32F103C8T6)

    STM32F103C8T6最小系统板*1 SG90舵机(180°)*2 摇杆按键*1 舵机支架*1 面包板*1(非必须) 杜邦线若干 类似这种的支架,不过需要自己裁切嵌入的部分 代码很简单,主要使用ADC双通道读取两个电位器的值(实际上就是电压),通过获取到的值的范围来确定上下左右,从而来改变两

    2024年02月14日
    浏览(13)
  • K_A08_013 基于 STM32等单片机驱动大功率MOS管模块按键控制直流电机加减速启停

    K_A08_013 基于 STM32等单片机驱动大功率MOS管模块按键控制直流电机加减速启停

    目录 一、资源说明 二、基本参数         参数         引脚说明 三、驱动说明         大功率MOS模块驱动         对应程序: 四、部分代码说明         接线说明                 STC89C52RC+大功率MOS模块                 STM32F103C8T6+大功率MO

    2023年04月26日
    浏览(11)
  • STM32 -- 实现按键的长按与短按检测(其他单片机可移植)

    STM32 -- 实现按键的长按与短按检测(其他单片机可移植)

    目录 资源获取 一 前言 二 思路  三 实现代码 1.主要代码 四 完整代码 Key.h Key.c 该改进版本(1ms太繁琐了,我改成了25ms检测一次)   1.定时器部分 2.按键检测部分  五、参考 欢迎关注微信公众号--星之援工作室 发送(长短按检测) 今天在逛博客的时候,偶然看到了一

    2024年02月12日
    浏览(15)
  • STM32独立按键实现单击双击长按功能

    目录 前言 一、按键功能定义 二、使用步骤 1.按键初始化 2.按键扫描函数(重点) 总结 在使用STM32或其他单片机开发项目时,经常需要用到独立按键进行控制。 通常一个独立按键需要使用一个IO口,如果项目需要按键实现多个功能,往往需要使用到多个按键,需要使用到多个

    2023年04月17日
    浏览(42)
  • 单片机01天---stm32基本信息了解

    单片机01天---stm32基本信息了解

    下载数据手册 以STM32F407ZG为例 网站:www.st.com,搜索芯片型号,下载“数据手册”使用 数据手册使用 查看芯片型号信息 芯片资源信息 时钟框图 芯片资源表格下方 GPIO口表格 一般位于下图后面的位置 ①工作电压:1.8V – 3.6V,VSS/GND(电源负极0)、VDD/VCC/V3.3(电源正极1),

    2024年02月20日
    浏览(11)
  • 单片机毕业设计 stm32发送短信消息(GMS模块)

    单片机毕业设计 stm32发送短信消息(GMS模块)

    Hi,大家好,学长今天向大家介绍如何使用GMS模块,达到单片机发送短信的效果,应用场景非常广泛 ** 单片机发送短信消息(GMS模块)** 大家可用于 课程设计 或 毕业设计 GSM模块使用上海SIMcom公司的SIM900高精度无线GSM/GPRS完全四频芯片,使用SMT封装且融 合了高性能的ARM926EJ

    2024年02月07日
    浏览(19)
  • STM32单片机与LD3320语音模块的交互方法

    在嵌入式系统中,STM32单片机广泛应用于各种应用领域。而LD3320语音模块是一种常用的语音识别与合成模块。本文将介绍如何在STM32单片机上与LD3320语音模块进行交互,并提供相应的源代码。 硬件连接 首先,我们需要将STM32单片机与LD3320语音模块进行正确的硬件连接。以下是

    2024年03月13日
    浏览(9)
  • JDY-31蓝牙模块远程控制STM32F103单片机

    JDY-31蓝牙模块远程控制STM32F103单片机

       手机app通过蓝牙模块发送指令实时控制单片机的外设功能,比如发送衣柜开关门指令(舵机旋转),衣架上升降落(步进电机正转反转),远程开启去污除湿功能(继电器控制打开关闭小风扇+加热片)。 本次例子:手机APP连接蓝牙模块远程控制SG90舵机正转(0-180°)和反

    2024年02月01日
    浏览(19)
  • 【Proteus仿真】【STM32单片机】多功能智能台灯

    【Proteus仿真】【STM32单片机】多功能智能台灯

    本项目使用Proteus8仿真STM32单片机控制器,使用LCD1604液晶、按键、蜂鸣器、语音识别模块、PCF8591 ADC模块、DHT11温湿度传感器、光线传感器、台灯、人体红外传感器等。 主要功能: 系统运行后,LCD1604液晶显示温湿度和光线强度、时间日期,系统工作模式;系统默认为自动模式

    2024年02月07日
    浏览(18)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包