赞
踩
一、连线
PWMA---连接程序中的端口 VM------连接高电平
AIN2-----连接高电平(1) VCC-----连接VCC
AIN1-----连接低电平(0) GND-----接地
STBY----连接VCC A01-----连接电机1
BIN1--- 连接低电平(0) A02-----连接电机1
BIN2---- 连接高电平(1) B2------连接电机2
PWMB---连接程序中的端口 B1------连接电机2
GND-----接地 GND----接地
二、TB6612芯片引脚图
三、TB6612原理
STBY口接单片机的IO口清零电机全部停止,置1通过AIN1,AIN2,BIN1,BIN2控制电机的正反转
VM(4.5~15 V)和VCC(2.7~5.5 V)
四、PWM简介
假定定时器工作在向上计数PWM模式,且当CNT<CCRx时,输出为0,当CCRx>=CCRx时,输出为1.
所以可以得到如上的IO逻辑示意图:当CNT值小于CCRx的时候,IO输出低电平(0),当CNT>=CCRx的时候,IO输出高电平(1),当CNT达到ARR值的时候,重新归零,然后重新向上计数,依次循环。
五、直流电机的驱动
关于直流电机的驱动,代码如下:
-
- void TIM1_PWM_Init(u16 arr,u16 psc)
- {
- RCC->APB1ENR|=1<<2; //TIM4时钟使能
-
- RCC->APB2ENR|=1<<3;
- GPIOB->CRL&=0X00FFFF00; //PB0 1 6 7清除之前的设置
- GPIOB->CRL|=0X3B000033; //复用功能输出
-
- GPIOB->CRH&=0XFFFFFFF0; //PB8清除之前的设置
- GPIOB->CRH|=0X00000003; //复用功能输出
-
- TIM4->ARR=arr; //设定计数器自动重装值
- TIM4->PSC=psc; //预分频器设置
-
- TIM4->CCMR1|=6<<4; //CH1 PWM1模式
- TIM4->CCMR1|=1<<3; //CH1预装载使能
- TIM4->CCER|=1<<0; //OC1 输出使能
- //TIM4->BDTR|=1<<15; //MOE 主输出使能
- TIM4->CR1=0x0080; //ARPE使能
- TIM4->CR1|=0x01; //使能定时器1
-
- //TIM1
- RCC->APB2ENR|=1<<11; //TIM1时钟使能
-
- RCC->APB2ENR|=1<<2;
- GPIOA->CRH&=0XFFFFFFF0; //PA8清除之前的设置
- GPIOA->CRH|=0X0000000B; //复用功能输出
-
- TIM1->ARR=arr; //设定计数器自动重装值
- TIM1->PSC=psc; //预分频器设置
-
- TIM1->CCMR1|=6<<4; //CH1 PWM1模式
- TIM1->CCMR1|=1<<3; //CH1预装载使能
- TIM1->CCER|=1<<0; //OC1 输出使能
- TIM1->BDTR|=1<<15; //MOE 主输出使能
-
- TIM1->CR1=0x0080; //ARPE使能
- TIM1->CR1|=0x01; //使能定时器1
- }
-
- void Go_Straight(int left,int right)
- {
- LEFT_PWM_VAL=left; //250
- RIGHT_PWM_VAL=right; //270
-
- GPIOB->ODR|=1<<0; //PB0 1
- GPIOB->ODR&=~(1<<1); //PB1 0
-
- GPIOB->ODR|=1<<7; //PB7 1
- GPIOB->ODR&=~(1<<8); //PB8 0
-
- }
-
- void Stop(void)
- {
- GPIOB->ODR&=0<<0;
- GPIOB->ODR&=0<<1;
-
- GPIOB->ODR&=0<<7; //PB7 0
- GPIOB->ODR&=0<<8; //PB8 0
-
- }
-
-
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。