完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
一、小车PID控制进程
电机的分类 直流电机的分类 直流电机按照结构可分为有刷电机和无刷电机 有刷电机 特点: 电刷和换向器之间有摩擦,效率低,低速扭矩大,价格较便宜 无刷电机 特点: 安静,效率高,转矩特性优异,启动电流小,价格较贵 直流减速电机即齿轮减速电机 是在普通直流电机的基础上,组装上微型齿轮减速箱。齿轮减速箱的作用是,提供较低的转速,较大的力矩。同时,齿轮箱不同的减速比可以提供不同的转速和力矩。 H桥电路 为了方便可以用芯片 MC3386电机驱动芯片 PWM 它是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用于测量,通信,功率控制与变换等许多领域。脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。 常见应用有:电机控制,DAC输出等 STM32-PWM 直流电机驱动 电机1 IN1 PC3 IN2 PA3 PWMA PA2 (TIM5-CH3) 电机2 IN3 PE15 IN4 PE13 PWMB PD12(TIM4-CH1) 二、测试Start! 基本配置 TIM5也一样通道注意是3 配置PWM AAR决定了周期 配置: CCR初始为0就行 测试代码主要部分: int main(void) { /* USER CODE BEGIN 1 */ int pwm_value = 100, temp =0; /* USER CODE END 1 */ /* MCU Configuration----------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_USART1_UART_Init(); MX_TIM5_Init(); MX_TIM4_Init(); /* USER CODE BEGIN 2 */ printf("电机驱动测试程序n"); //电机1设置 HAL_GPIO_WritePin(GPIOC, GPIO_PIN_3, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3, GPIO_PIN_SET); HAL_TIM_PWM_Start(&htim5, TIM_CHANNEL_3); //电机2设置 HAL_GPIO_WritePin(GPIOE, GPIO_PIN_15, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOE, GPIO_PIN_13, GPIO_PIN_SET); HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_1); /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { if(pwm_value >= 8000) temp = -100; if(pwm_value <= 100) temp = 100; pwm_value = pwm_value + temp; TIM5->CCR3 = pwm_value; TIM4->CCR1 = pwm_value; printf("pwm_value = %dn",pwm_value); HAL_Delay(500); /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */ } 现象加速减速循环 PID调节时注意死区 代码日后更新github,还没有整理,整理完给链接地址 |
|
|
|
只有小组成员才能发言,加入小组>>
3278 浏览 9 评论
2955 浏览 16 评论
3455 浏览 1 评论
8987 浏览 16 评论
4050 浏览 18 评论
1102浏览 3评论
570浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
568浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2301浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1856浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 22:49 , Processed in 1.151407 second(s), Total 79, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号