当前位置:网站首页>Analog rocker controlled steering gear
Analog rocker controlled steering gear
2022-07-04 22:39:00 【Let everything burn】
List of articles
Mission :
Potentiometer and steering gear combined application , If it is 180° The steering gear , The effective range of potentiometer is also 180°, If it is 90° The steering gear , The effective range of potentiometer is 90°, Potentiometer and steering gear angle position are synchronized , The effective starting point of potentiometer is self-determined , The finish for ( The starting point +90°/180°)
Ideas
The potentiometer on the yangtao development board is the omnidirectional rocker on the left , With rocker x Axis or y The axis controls the angle of the steering gear
For example, the rocker on the far left corresponds to the steering gear 0°, Pull to the rightmost steering gear and turn 180°
The angle of the steering gear is evenly distributed at the beginning and end of the rocker
The rocker is essentially an adjustable resistor , After the resistance voltage is divided, the single chip microcomputer can be used ADC Get location status
Completion code
int main (void){
// The main program
delay_ms(500); // Wait for other devices to be ready when powered on
RCC_Configuration(); // System clock initialization
TOUCH_KEY_Init();// Touch the button to initialize
RELAY_Init();// Relay initialization
TIM3_PWM_Init(59999,23);
ADC_Configuration(); //ADC Initialize settings ( Simulate the of the rocker ADC initialization )
JoyStick_Init(); // Simulate the key initialization of the rocker
I2C_Configuration();//I2C initialization
OLED0561_Init(); //OLED initialization
OLED_DISPLAY_8x16_BUFFER(0," YoungTalk "); // display string
OLED_DISPLAY_8x16_BUFFER(2," ADC TEST "); // display string
OLED_DISPLAY_8x16_BUFFER(4," ADC_IN6: "); // display string
OLED_DISPLAY_8x16_BUFFER(6," ADC_IN7: "); // display string
while(1){
// Turn the of the photoresist ADC The data is shown in OLED On
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);//
// Method 1 : Inter partition control ( Simple but troublesome )
// 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);
// Method 2 : Write formula conversion ( Difficult but convenient )
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); // Time delay
}
}
边栏推荐
- 都说软件测试很简单有手就行,但为何仍有这么多劝退的?
- LOGO special training camp section I identification logo and Logo Design Ideas
- Easy to use app recommendation: scan QR code, scan barcode and view history
- Microservices -- Opening
- Tla+ introductory tutorial (1): introduction to formal methods
- 国产数据库乱象
- leetcode 72. Edit Distance 编辑距离(中等)
- Common shortcut keys for hbuilder x
- LOGO特訓營 第三節 首字母創意手法
- Erik baleog and Olaf, advanced area of misc in the attack and defense world
猜你喜欢

Unity-VScode-Emmylua配置报错解决

Business is too busy. Is there really no reason to have time for automation?

How to transfer to software testing, one of the high paying jobs in the Internet? (software testing learning roadmap attached)

Concurrent optimization summary

Li Kou 98: verify binary search tree

2022-07-04: what is the output of the following go language code? A:true; B:false; C: Compilation error. package main import “fmt“ func main() { fmt.Pri

Locust performance test - environment construction and use

攻防世界 MISC 进阶区 Erik-Baleog-and-Olaf

【OpenGL】笔记二十九、抗锯齿(MSAA)

LOGO特训营 第五节 字体结构与设计常用技法
随机推荐
Google Earth Engine(GEE)——基于 MCD64A1 的 GlobFire 日常火灾数据集
【愚公系列】2022年7月 Go教学课程 003-IDE的安装和基本使用
短视频系统源码,点击屏幕空白处键盘不自动收起
How to manage 15million employees easily?
Force buckle 2_ 1480. Dynamic sum of one-dimensional array
MYSQL架构——逻辑架构
Locust性能测试 —— 环境搭建及使用
Force buckle_ Palindrome number
Naacl-22 | introduce the setting of migration learning on the prompt based text generation task
安装人大金仓数据库
Locust performance test - environment construction and use
Mongodb aggregation operation summary
30余家机构联合发起数字藏品行业倡议,未来会如何前进?
将QA引入软件开发生命周期是工程师要遵循的最佳实践
Why is Dameng data called the "first share" of domestic databases?
Alibaba launched a new brand "Lingyang" and is committed to becoming a "digital leader"
Taobao commodity review API interface (item_review get Taobao commodity review API interface), tmall commodity review API interface
记录:关于Win10系统中Microsoft Edge上的网页如何滚动截屏?
集群的概述与定义,一看就会
新版判断PC和手机端代码,手机端跳转手机端,PC跳转PC端最新有效代码