电位器(摇杆)和舵机组合应用
文章目录
- 任务:
- 完成代码
任务:
电位器和舵机组合应用,如果是180°舵机,电位器有效范围也是180°,如果是90°舵机,电位器有效范围为90°,电位器和舵机角度位置同步,电位器有效起点自定,终点为(起点+90°/180°)
桃开发板上电位器是左边的全向摇杆,使用摇杆的x轴或者y轴控制舵机角度
例如摇杆在最左侧对应舵机0°,拉到最右侧舵机转到180°
舵机的角度在摇杆的起点和终点上均匀分布
摇杆本质是可调电阻,电阻分压后可以使用单片机的ADC获取位置状态
完成代码
int main (void){//主程序delay_ms(500); //上电时等待其他器件就绪RCC_Configuration(); //系统时钟初始化 TOUCH_KEY_Init();//触摸按键初始化RELAY_Init();//继电器初始化TIM3_PWM_Init(59999,23); ADC_Configuration(); //ADC初始化设置(模拟摇杆的ADC初始化)JoyStick_Init(); //模拟摇杆的按键初始化I2C_Configuration();//I2C初始化OLED0561_Init(); //OLED初始化OLED_DISPLAY_8x16_BUFFER(0," YoungTalk "); //显示字符串OLED_DISPLAY_8x16_BUFFER(2," ADC TEST "); //显示字符串OLED_DISPLAY_8x16_BUFFER(4," ADC_IN6: "); //显示字符串OLED_DISPLAY_8x16_BUFFER(6," ADC_IN7: "); //显示字符串while(1){//将光敏电阻的ADC数据显示在OLED上OLED_DISPLAY_8x16(4,10*8,ADC_DMA_IN[0]/1000+0x30);//OLED_DISPLAY_8x16(4,11*8,ADC_DMA_IN[0]%1000/100+0x30);//OLED_DISPLAY_8x16(4,12*8,ADC_DMA_IN[0]%100/10+0x30);//OLED_DISPLAY_8x16(4,13*8,ADC_DMA_IN[0]%10+0x30);//OLED_DISPLAY_8x16(6,10*8,ADC_DMA_IN[1]/1000+0x30);//OLED_DISPLAY_8x16(6,11*8,ADC_DMA_IN[1]%1000/100+0x30);//OLED_DISPLAY_8x16(6,12*8,ADC_DMA_IN[1]%100/10+0x30);//OLED_DISPLAY_8x16(6,13*8,ADC_DMA_IN[1]%10+0x30);////方法一:分区间控制(简单)
// if(ADC_DMA_IN[0]<100)
// TIM_SetCompare3(TIM3,1500);
//
// if(ADC_DMA_IN[0]>=100&&ADC_DMA_IN[0]<1700)
// TIM_SetCompare3(TIM3,ADC_DMA_IN[0]+1500);
// if(ADC_DMA_IN[0]>=1700&&ADC_DMA_IN[0]<2000)
// TIM_SetCompare3(TIM3,ADC_DMA_IN[0]+2300);
//
// if( ADC_DMA_IN[0]>=2000&&ADC_DMA_IN[0]<3500)
// TIM_SetCompare3(TIM3,ADC_DMA_IN[0]+2500);
// if( ADC_DMA_IN[0]>=3500&&ADC_DMA_IN[0]<4000)
// TIM_SetCompare3(TIM3,ADC_DMA_IN[0]+3500);
//
// if( ADC_DMA_IN[0]>4000)
// TIM_SetCompare3(TIM3,7500);
// delay_ms(10);//方法二:写公式转换(难)TIM_SetCompare3(TIM3,ADC_DMA_IN[0]*(3.3/4096)*1820+1500);if(GPIO_ReadInputDataBit(JoyStickPORT,JoyStick_KEY)==0){OLED_DISPLAY_8x16(0,0,'Y');//}else{OLED_DISPLAY_8x16(0,0,' ');//}delay_ms(200); //延时}
}
电位器(摇杆)和舵机组合应用相关推荐
- 摇杆控制舵机(云台)
使用摇杆控制舵机(云台) 硬件 摇杆1 SG90舵机1 STM32F103C8T6最小系统板*1 软件思路 1.先采集摇杆的x,y的电压信息来获取摇杆的位置状态(如果是单个舵机就采集一个维度就可以了, ...
- arduino 舵机接线图_求用5个电位器分别控制舵机的arduino的原码和连线图
按照上图连线,按照如下代码烧程序.12345678910111213141516171819202122232425262728293031323334353637383940414243444546 ...
- ArduinoUNO实战-第二十一章-通过调整电位器来改变9克舵机的角度
一.参考 Arduino基础入门篇28-舵机控制 二.目标 通过调整电位器来改变舵机旋转的角度 有些电脑的USB的驱动能力不足,不能驱动起来舵机,请使用DC9V的电源适配器给arduino供电 三.理 ...
- 基于STC8G2K64S4单片机使用幻尔舵机控制板
#前言 本文主要是讲解了如何使用STC8G2K64S4单片机二次开发使用幻尔舵机控制板 在官网给的资料里有使用方法,因为涉及到串口通讯,对于小白来说可能比较难懂 硬件方面 这块幻尔舵机控制板在淘宝店里 ...
- 中国工程机器人大赛暨国际公开赛(RoboWork)
中国工程机器人大赛暨国际公开赛(RoboWork)-探索者全地形赛 目 录 摘要 正 文 1.1 综述 1.2 系统整体设计 1.3 机械结构设计 1.4 硬件设计 1.5 软件设计 1.6 系统开发 ...
- 120D02s调机帖[转]
从七月购入第一个小六通minicp已经接近2个月了,差不多正飞四面,对头倒飞悬停了,节骨眼上miniCP主板损坏,不治返厂了.期间入了New V120D02S. 在家里研究和折腾了几天,差不多基本上已 ...
- 机甲大师机器人控制(二):功能分析
本文是机甲大师机器人控制的系列博客之一.本文介绍了博主在开发控制策略的前期对其进行的功能分析并熟悉一些基本原理. 系列博客: 机甲大师机器人控制(一):概念与流程 机甲大师机器人控制(二):功能分析 ...
- 【华为云技术分享】40多元成本制作基于Arduin的随动四轴机械臂,机械臂实现步骤记录、复现等功能
[摘要] Arduin随动四轴机械臂,机械臂实现步骤记录.复现等功能:主要原材料元器件有:电位器 * 4.9g舵机 * 4.轻触开关 * 1.Arduin UNO * 1.热熔胶.杜邦线多根(建议用质 ...
- Arduino云台,关键是可以调角度!!!基于MPU6050,用卡尔曼滤波进行角度处理,保证你能一次过学会从硬件到软件的制做!!!(第一节)
哈哈哈,我又来啦!!! 大家好啊!我是菜鸟啊啊啊,今天给大家带来的是Arduino云台,云台分为处理部分和执行部分,执行部分只需要用电机驱动就可以了,但是菜鸟这边只不过是用舵机就可以了因为经费这东西不 ...
最新文章
- C# 获取当前屏幕DPI
- 2020人工神经网络第一次作业
- UIExtendedEdge
- BSP二叉树的数学原理(绝对原创)
- ML之ME/LF:机器学习中的模型评估指标/损失函数(连续型/离散型)的简介、损失函数/代价函数/目标函数之间区别、案例应用之详细攻略
- c语言中freopen函数,fopen和freopen_C中freopen和fopen的区别(用法+详解+区别)
- 内核启动的C语言阶段——start_kernel函数
- 孙鑫VC学习笔记:第二讲 掌握C++
- 专题四:MATLAB绘图
- 插头DP/轮廓线DP
- 自定义控件属性英文类别
- 小特工具箱新增功能:文档转换、代码转换和AI写诗词
- select *和select 字段名
- guid主分区表损坏如何处理_恢复guid分区表【免费找回技巧与步骤】
- 8.4 单片机按键介绍
- GC问题排查实战三-Parallel Scavenge和Parallel Old日志分析
- Nginx配置不带www自动跳转到www域名
- FFmpeg5.0源码阅读之AVClass和AVOption
- 超简单!为图片和 PDF 上去掉水印
- dell电脑java下载_【亲测不管用】【DELL安装系统的坑】亲测UEFI启动模式的电脑安装Win10和Ubuntu双系统(dell笔记本和hp笔记本)...