当前位置:网站首页>模拟摇杆控制舵机
模拟摇杆控制舵机
2022-07-04 22:17:00 【让一切都燃烧】
任务:
电位器和舵机组合应用,如果是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); //延时
}
}
边栏推荐
- 力扣_回文数
- 复数在数论、几何中的用途 - 曹则贤
- 现在mysql cdc2.1版本在解析值为0000-00-00 00:00:00的datetime类
- Deployment of JVM sandbox repeater
- 好用app推荐:扫描二维码、扫描条形码并查看历史
- Introduction and application of bigfilter global transaction anti duplication component
- 短视频系统源码,点击屏幕空白处键盘不自动收起
- 抖音实战~评论数量同步更新
- Why should garment enterprises talk about informatization?
- La prospérité est épuisée, les choses sont bonnes et mauvaises: Où puis - je aller pour un chef de station personnel?
猜你喜欢
Li Kou 98: verify binary search tree
Concurrent optimization summary
Play with grpc - go deep into concepts and principles
The sandbox has reached a cooperation with digital Hollywood to accelerate the economic development of creators through human resource development
NFT Insider #64:电商巨头eBay提交NFT相关商标申请,毕马威将在Web3和元宇宙中投入3000万美元
Tla+ introductory tutorial (1): introduction to formal methods
LOGO special training camp section I identification logo and Logo Design Ideas
安装人大金仓数据库
It is said that software testing is very simple, but why are there so many dissuasions?
Logo Camp d'entraînement section 3 techniques créatives initiales
随机推荐
# 2156. Find the substring of the given hash value - post order traversal
Now MySQL cdc2.1 is parsing the datetime class with a value of 0000-00-00 00:00:00
面试必备 LeetCode 链表算法题汇总,全程干货!
Recommendation of mobile app for making barcode
Google Earth Engine(GEE)——Tasks升级,实现RUN ALL可以一键下载任务类型中的所有影像
质量体系建设之路的分分合合
关于栈区、堆区、全局区、文字常量区、程序代码区
A large number of virtual anchors in station B were collectively forced to refund: revenue evaporated, but they still owe station B; Jobs was posthumously awarded the U.S. presidential medal of freedo
Mysql root 账号如何重置密码
Alibaba launched a new brand "Lingyang" and is committed to becoming a "digital leader"
力扣3_383. 赎金信
BigFilter全局交易防重组件的介绍与应用
Service online governance
虚拟人产业面临的挑战
odps 中 对表进行了一次备份,为什么在元数据库查m_table 时,两张表的逻辑大小不一致,但数
Scala download and configuration
How to transfer to software testing, one of the high paying jobs in the Internet? (software testing learning roadmap attached)
Shell script implements application service log warehousing MySQL
php短视频源码,点赞时会有大拇指动画飘起
将QA引入软件开发生命周期是工程师要遵循的最佳实践