十六届全向组硬件开源(二)

 前言:算法开源已经开始
第一章信号的预处理

       这一章更新下麦轮的驱动方案,使用过CH32的同学都知道,这款单片机的定时器很少,所以推荐的方案中都是采用DRV8701方案来解决一个PWM口控制一路电机,实现电机的正反转。对于以往智能车常用的HIP4082驱动方案都避之不谈,实际上,对于HIP4082也是可以采用相同的控制方法,只是需要在程序上更改一下就行。通常使用DRV8701驱动都是通过IO的高低来控制电机的正反转,但同样的方式在HIP4082上可能就会产生疯转。首先,我们先来考虑下在PWM管脚充足是我们是如何控制电机的。一般我们都是一路正占空比,一路负占空比,正向是正的占空比给正,另外一路不给,倒车时给负的一路,正的一路不给。那如果两边同时给会怎么样?这就是如果使用IO口控制HIP4082时候会产生的原因。假设正向使用时,IO拉低,另外一个管脚给PWM波。这时需要反向,直接IO拉高,电机是会反转,但同时,会疯转因为这个时候由于高电平使得电机一直处于一个反向满占空比。解决方案就是在同样同样需要20%的占空比的时候,反向程序里输入80%的占空比。因为电机真实转速与两端电压有关,一个高电平满占空比,减去一个80%的占空比,这时候速度才和正向的20%相等。

附上一个电机的正反转控制代码,正向输入正的占空比数,反向输入负占空比数。

void engine_hinder_left(int16 pwm_worth)
 {
    //pwm_worth=int_protect( pwm_worth, -9000, 9000);
    if(pwm_worth>=0)                              //正转
      {
       gpio_set(C11,0);
       pwm_duty(PWM4_CH4_B9, pwm_worth);  //改变B9输出PWM的占空比为百分之 duty/PWM_DUTY_MAX*100
      }
    else
      {
        gpio_set(C11, 1);
        pwm_duty(PWM4_CH4_B9,Enginemax+pwm_worth);  //反转

      }
}

     控制上说完,下面说说电路原理图。HIP4082需要输入12V电压来驱动MOS,之前看到好多都是采用MC34063。感觉外围电路太复杂,麻烦,为了减轻焊接的困难,同时相对于我的车模设计,板子也不需要过于小巧。我便用了一款国产的B0512S-1W,用起来很方便,集成度高。就是体积有点大,不过也不影响板子的布局。并且选用SN74HC125PWR三态门作为信号的隔离,并加上上拉电阻防止初始化时信号不确定影响控制。

 B0512   5V升12v电路原理图

 SN74三态门原理图

 三态门5v供电采用的是LM2940,直接在输入输出端加上滤波电容即可。

     HIP4082的电路图,和官网的数据手册上没什么区别,唯一遇到过的问题就是自举电容当时焊接时容值不够,mos管无法导通,驱动板发出很大噪声,无法使用。

     在一开始的做车时候开始用opa2350做运放,加上了检波的电路,这样运放板输出端的电压是直流信号。采集时只要采集一次即可,无需像其他运放板需要采集多次取平均,加快程序的运行速度。

     最后在发一个ch32的核心板原理图,核心板上的供电MIC5205,当初这里也需要一个坑,Mic5205电容没有配好,导致电压不对,电压在3.75左右。结果单片机一支无法使用,程序也无法下载。关于核心板电路的绘制,也不是很难,毕竟大部分在数据手册上的表明了,比如晶振的值,参考电压,电源引脚的滤波电容容值,以及一些BOOT管脚的上拉和下拉,和复位管脚的电容电阻配对。这些在官方手册上都会有的,虽然核心板也做出来了,但我比赛却没用。咳咳,毕竟,CH32逐飞卖的也不贵,还没啥大BUG,节约一下时间成本。

 核心板上5V稳3.3V电路,mic5205

     核心板下载口,这里直接拿逐飞的下载器,所以管脚做的和逐飞的一样,起振电容选用22pf,还有复位及BOOT管脚。

 

        这里把单片机电源用0欧电阻隔开,其实没啥用,要不要都能正常使用。 

下面展示一下自制的核心板,绿色不是很好看。

正面

背面 

正常使用的时候,比赛没用,因为没有学校标识,不符合规则。 

    由于核心板引脚太密集,就直接将PDF文件放在文末,可以自己下载。还是那句话,开源不仅仅是文件开源,不会直接开源整个工程,不然直接拿过去打板,什么也学习不到。开源的目的是希望新手可以很快的进入做车的状态和了解需要做的事。如果连AD都不会使用,直接拿工程去打板,有什么意义呢。原理图网上多的事,但自己画起来却不是一蹴而就。希望可以给看到这些文章的人,提高一些效率,少一点弯路。

核心板等原理图PDF:   https://www.aliyundrive.com/s/oQNSPdeF39B

版权声明:本文为CSDN博主「六五绅士」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_43488141/article/details/119970712

六五绅士

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

MCU串行通讯和并行通讯的区别以及UART的理解

假如我们需要从一个MCU发送一段数据到另一个MCU,我们可以选择两种通信方式,串行通信或者并行通信。 假如我们要发送的数据是数字198转化为二进制,就是11000110,如果使用串行通信

Proteus + Keil单片机仿真教程(二)炫彩灯

一、炫彩灯 参考图: 程序分析:每个小灯闪两次,依次累加常亮,最后所有灯再闪烁两次。 这个程序主要是延时程序、单片机引脚口的控制,流程化控制,相对比较简单&#