STM32单片机CAN总线汽车大灯随动控制系统0~180度舵机

实践制作DIY- GC0037-汽车大灯随动系统

一、功能说明:

基于STM32单片机设计-汽车大灯随动系统

二、功能介绍:

角度采集板:STM32F103C系列最小系统+电位器(模拟车头方向盘角度)+CAN通讯模块

舵机控制板:STM32F103C系列最小系统+5V舵机(0~180度)+CAN通讯模块+4个按键(自动/手动 角度+ 角度-  LED开关)+1个LED灯模拟汽车的大灯+OLED显示大灯的角度和工作模式

1.两款电路板使用CAN总线进行通讯。

2.采集板可以采集电位器的0~3.3V对应0~-180,然后通过CAN总线发送给舵机控制板。

3.舵机控制板在自动模式下,根据角度采集板上传的角度控制舵机。

4.舵机控制板可以通过按键选择自动和手动模式。

5.手动模式可以通过角度+ 角度-手动调整舵机的角度。

6.有LED开关键,点击后可以开关LED灯.

7.OLED显示大灯的角度和工作模式

三、详情介绍:

视频讲解:哔哩哔哩搜索UP主“爱搞单片机”在其空间搜索关键词汽车大灯随动系统观看该视频详解讲解

 

功能演示操作

这是一款基于STM32单片机汽车大灯随动系统采用角度采集板:STM32F103C系列最小系统+电位器(模拟车头方向盘角度)+CAN通讯模块

舵机控制板:STM32F103C系列最小系统+5V舵机(0~180度)+CAN通讯模块+4个按键(自动/手动 角度+ 角度-  LED开关)+1个LED灯模拟汽车的大灯+OLED显示大灯的角度和工作模式

1.两款电路板使用CAN总线进行通讯。

2.采集板可以采集电位器的0~3.3V对应0~-180,然后通过CAN总线发送给舵机控制板。

3.舵机控制板在自动模式下,根据角度采集板上传的角度控制舵机。

4.舵机控制板可以通过按键选择自动和手动模式。

5.手动模式可以通过角度+ 角度-手动调整舵机的角度。

6.有LED开关键,点击后可以开关LED灯.

7.OLED显示大灯的角度和工作模式

具体测试方法观看视频详细介绍。。。

 

了解更多尽请观看视频讲解。。。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
以下是使用STM32F103C8T6控制舵机实现0到180旋转的代码示例: ```c #include "stm32f10x.h" void delay_ms(uint32_t ms) { for (uint32_t i = 0; i < ms; i++) { for (uint32_t j = ; j < 2000; j++) { __NOP(); } } } int main(void) { // 初始化舵机控制引脚 RCC->APB2ENR |= RCC_APB2ENR_IOPBEN; // 使能GPIOB时钟 GPIOB->CRL &= ~(GPIO_CRL_CNF0 | GPIO_CRL_MODE0); // 将PB0引脚配置为推挽输出 GPIOB->CRL |= GPIO_CRL_MODE0_1; // 初始化定时器 RCC->APB1ENR |= RCC_APB1ENR_TIM3EN; // 使能TIM3时钟 TIM3->PSC = 7200 - 1; // 设置预分频值,得到1MHz的计数频率 TIM3->ARR = 20000 - 1; // 设置自动重装载值,得到50Hz的PWM周期 TIM3->CCR1 = 1500; // 设置初始占空比为1.5ms,对应0位置 TIM3->CCMR1 |= TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2; // 设置PWM模式为模式2 TIM3->CCER |= TIM_CCER_CC1E; // 使能通道1的输出 TIM3->CR1 |= TIM_CR1_CEN; // 使能定时器 while (1) { // 逐渐增加占空比,实现舵机从0180的旋转 for (uint16_t i = 1500; i <= 6000; i += 100) { TIM3->CCR1 = i; delay_ms(10); } // 逐渐减小占空比,实现舵机180到0的旋转 for (uint16_t i = 6000; i >= 1500; i -= 100) { TIM3->CCR1 = i; delay_ms(10); } } } ``` 该代码使用了STM32F103C8T6的定时器TIM3和GPIOB的引脚PB0来控制舵机。通过逐渐增加和减小占空比,可以实现舵机从0180的旋转和从180到0的旋转。代码中的delay_ms函数用于延时,可以根据需要进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值