电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>电机驱动板Atmega328PU和HC01开源

电机驱动板Atmega328PU和HC01开源

2022-08-15 | zip | 0.04 MB | 次下载 | 2积分

资料介绍


电路板图如下:
pYYBAGL5krGAHp9HAADI6Y4sRzE526.jpg
poYBAGL5krOAfoMbAACzIysJQKA868.jpg
pYYBAGL5kraAE7grAADKyVfQTCc084.jpg

描述

电机驱动板 Atmega328PU 和 HC01

 

嘿,如果你正在制作一个基本的机器人设置,一个电机驱动器控制器板,它通过板载 MCU 控制电机驱动器并具有用于蓝牙连接的 HC01 BT 模块,那么这里有什么超级酷和有用的东西。

 

 

 

 

我在 PCB 上添加了四个安装孔,因此我可以添加 PCB 支架以将电机驱动器固定在电路板的顶部。使用支架是一种聪明的方法,因为我们可以使用这种方法添加多个模块,只需将它们堆叠在一排支架中即可。

我还在电路板的一侧添加了一个 HC-SR04 超声波传感器分线针,因此它可以用来制作一个避障机器人。

本文将介绍这款电机驱动器的构建过程,让我们开始吧。

 

材料

以下是我在这个项目中使用的东西-

  • 定制PCB
  • Atmega328PU
  • 22PF 盖 0603 封装
  • 16MHz晶体
  • 10K电阻0603封装
  • 1K电阻0603封装
  • 指示灯 LED 0603 封装
  • AMS1117 稳压器
  • HC01 蓝牙模块
  • 10uF 电容 1206 封装
  • 1uF 电容 1206 封装
  • IC 插座 DIP 28
  • USB 微型端口
  • 排针插座
  • Arduino 作为用于闪烁 Atmega328PU 的 ISP 设置
  • PCB 支架
  • 马达
  • 超声波传感器 HC-SR04
  • 电池组 12V
  • 电机驱动器 L298N

 

示意图

 

poYBAGL5krqAOecUAAGI4Kn1N1U930.jpg

 

这是我准备的原理图,它由与 HC01 模块连接的最小 Atmega328PU 设置组成。在 Atmega328PU 和 HC01 之间,有一个 AMS1117 3.3V 稳压器,用于将 5V 从 VCC 降压到 3.3V 以使 HC01 工作。

我添加了一堆连接器,用于将东西与 atmega 连接,其中包括 ISP 输出,Atmega 的分支 SPI 引脚用于闪烁,然后我还添加了用于电机驱动器 IN1、IN2、IN3 和 IN4 的 CON4 与 D6、D9、D10 和D11。

我还添加了一些带 D2、D3 和 D4 的 LED 以及一个 CON4 插头引脚,用于将超声波传感器与该板连接。

完成原理图后,我将其转换为电路板文件。

 

PCB设计

 

poYBAGL5kr2AU-Q_AALGYX5jhwY898.png

 

至于设计,我制作了一个边缘有倒角的矩形板,还在板的中心放置了四个安装孔,这样我就可以使用 Standoffs 将 L298N 电机驱动器放置在这个 PCB 上。

 

PCBWAY

 

pYYBAGL5kr-AUP_tAAA6WHZDlK4631.jpg

 

完成设计后,我在PCBWAY的报价页面上传了Gerber数据,选择了红色的阻焊层颜色,然后下单。

下订单后,我在一周内收到了 PCB,PCB 质量非常好。

 

poYBAGL5ksKAYdl0AAByrojg9AA869.jpg

 

poYBAGL5ksSAYRCPAACSHmrk0EQ925.jpg

 

这种形状是完全随机的,所以很难制作,但他们在制作这个 PCB 方面做得非常出色,没有任何错误。

 

一定要检查一下,以更低的价格获得出色的 PCB 服务。

 

电路板组装

 

PCB组装过程将具有以下步骤。

  • 锡膏点胶
  • 拾取和放置过程
  • 热板回流
  • 添加剩余的 THT 组件
  • 刻录引导加载程序

 

 

焊膏

pYYBAGL5ksaAVi9eAADCCF3_PuY471.jpg

 

第一步是在每个元件焊盘上涂抹焊膏。

我使用了普通的 Sn-Pb 焊膏,其熔化温度为 140 至 270 °C。

添加锡膏后,我们进入下一个过程,即“PICK & Place Process”

 

挑选和放置

poYBAGL5ksmAPOvbAADMVz2zReE831.jpg

 

然后,我使用 ESD Tweeaser 小心地将每个 SMD 组件一个一个地挑选并放置在指定的位置,这需要大约 30 秒的时间,但结果是一个完美的 PCB,所有组件都放置在它们的位置。

 

热板回流

pYYBAGL5ksuAZ0VPAACtnxRqSRE961.jpg

 

poYBAGL5ks2ANq19AADI0c_pIoE993.jpg

 

pYYBAGL5ks-AGXIzAACjJ08FE8w273.jpg

 

在“PICK & Place Process”之后,我小心翼翼地将整个电路板抬起并放在我的 DIY SMT Hotplate 上,它也是自制的,就像这个项目一样。

几分钟后,当热板达到焊膏熔化温度时,所有组件都将通过此热回流工艺焊接。

然后我们从热板上取下 PCB 以冷却所有组件和电路板表面。

 

 

然后我通过 USB 端口插入 5V 电源以检查 HC01 是否工作,如果设置正常工作,HC01 一侧的 LED 将闪烁。

 

THT 组件

 

pYYBAGL5ktKAPGl7AACaL76eJOk795.jpg

 

poYBAGL5ktSANMq9AACyMu_IB4Y124.jpg

 

最后,我们将 THT 组件添加到 PCB,它们是 Atmega 插座和接头引脚。

完成后,我们的电路就完成了!

 

Atmega328PU 通过 Arduino 作为 ISP 烧录引导加载程序

 

poYBAGL5kteAS3ZYAADCe7GQclE680.jpg

 

pYYBAGL5ktmARer4AADRD3l3Oy4233.jpg

 

现在,此设置使用 Atmega328PU。Atmega328PU 有一个小十六进制文件,称为引导加载程序,类似于 BIOS便宜的 atmega328PU 通常不附带预装的引导加载程序,因此我必须将引导加载程序刻录到 MCU 上,为此,我使用了我之前的一个项目,即基于 Arduino 的 Attiny Programmer。

 

程序员是为将引导加载程序和 Flash 代码刻录到 Attiny MCU 中,使用上传到常规 Arduino Nano R3 的“Arduino as ISP Sketch”进行一些调整(在复位和 GND 之间添加 1uf Cap)

请参阅我以前的项目以制作此程序员并开始使用此闪烁方法。

 

我将 Atmega328PU 的 SPI 引脚通过 Arduino Nano 的 SPI 引脚通过一个插头插座连接在一起,并烧录 Atmega328PU 的引导程序,并上传 ULTRASONIC SENSO TEST SKETCH 用于测试 Atmega 芯片

 

 

测试草图#1 超声波传感器

 








   {
序列号.开始();
pinMode(trigPin,输出);
pinMode(echoPin,输入);
pinMode(LED,输出);
pinMode(led2,输出);
pinMode(led3,输出);

 
}

   {
,距离;
数字写入(trigPin,低);
延迟微秒();
数字写入(trigPin,高);
延迟微秒();
数字写入(trigPin,低);
持续时间=脉冲输入(回声针,高);
距离 = (持续时间/  ) /  ;
 

(距离 <= ){
数字写入(领导,高);
 
}
{
数字写入(领导,低);
}
(距离 < ){
数字写入(led2,高);
 
}
{
数字写入(led2,低);
}

(距离 < ){
数字写入(led3,高);
 
}
{
数字写入(led3,低);
}

延迟();
}

 

poYBAGL5ktuANusrAACYVkP5jXA220.jpg

 

我将 HC-SR04 超声波传感器模块添加到其分配的 Header Pin 插座中,并上传了我制作的测试草图。当我们将任何东西放在它前面 30 厘米的距离处时,第一个 LED 会发光,通过减小其他两个 LED 发光的距离。

 

测试草图#2 BT 终端 LED 开/关

 

垃圾;
字符串输入字符串 =  ;


                     
{
 序列号.开始();            
 pinMode(,OUTPUT)也应如此;
}


 
 {
   (Serial.available()){
  (Serial.available())
    {
       inChar = (  )Serial.read(); 
      inputString += inChar;        
    }
    Serial.println(inputString);
    (Serial.available() >  )  
    {
      垃圾 = Serial.read() ; }     
    }
     (inputString ==  ){           
      digitalWrite(  , HIGH);  
    }
      (inputString ==  ){     
      digitalWrite(  , LOW);
    }
    输入字符串 =  ;
    }

 

pYYBAGL5kt6AYI-1AACQhebtr4Y213.jpg

 

检查超声波传感器后,我将BT测试草图上传到MCU并使用BT终端APP与HC01连接。

通过BT终端APP向HC01发送“on”,LED点亮,发送“off”将其关闭。

 

添加带 PCB 支架的电机驱动器

在测试板工作正常后,我继续下一步,即使用 PCB Standoffs 将 L298N 电机驱动器添加到主板。

 

在主板和电机驱动器之间添加电线连接器

 

pYYBAGL5kuCAClDfAADNJnVKGYY726.jpg

 

poYBAGL5kuKAAgefAACi8QnBvEw389.jpg

 

然后我在电机控制器的 VCC GND 和 5V 以及电机驱动器的 VCC GND 和 5V 之间添加了电线。

然后我在电机控制器的控制引脚和 Atmega328pu 的 Pwm 引脚之间添加了电线。

 

  • ENA 和 ENB 均为高电平
  • IN1 至 D6
  • IN2 至 D9
  • IN3 至 D10
  • IN4 至 D11

设置完成,现在我们可以将电池添加到电机驱动器的 VCC 和 GND 端口,并将电机端子添加到电机驱动器的连接器。

 

添加电机和电池

 

pYYBAGL5kuWADCntAADP-aHRemo703.jpg

 

poYBAGL5kueAedJPAACHS2isUo0204.jpg

 

 

最终草图 - 测试电机

 

 motorLpin1 =  ;
 motorLpin2 =  ; 
 motorRpin1 =  ;
 motorRpin2 =  ;
LED1 =  ;
LED2 =  ;
LED3 =  ;

 
 {
序列号.开始();
Serial.flush();
pinMode(motorLpin1,输出);
pinMode(motorLpin2,输出);
pinMode(电机Rpin1,输出);
pinMode(电机Rpin2,输出);
pinMode(LED1,输出);
pinMode(LED2,输出);
pinMode(LED3,输出);


}

  {
字符串输入= (Serial.available()){
输入+=()Serial.read();
延迟();
}

(输入== ){
马达停止();
}
 (输入== ){
马达前进();
}
 (输入== ){
电机后退();
}
 (输入== ){
左电机();
}
 (输入== ){
右电机();
}
 
 }

 
 {
数字写入(motorLpin1,HIGH);
数字写入(motorLpin2,LOW);
数字写入(motorRpin1,HIGH);
数字写入(电机Rpin2,低);
数字写入(LED1,高);
数字写入(LED2,低);
数字写入(LED3,低);
}

 
 {

数字写入(motorLpin1,LOW);
数字写入(motorLpin2,HIGH);
数字写入(电机Rpin1,低);
数字写入(motorRpin2,HIGH);
数字写入(LED1,低);
数字写入(LED2,高);
数字写入(LED3,低);
}
 
 {
数字写入(motorLpin1,HIGH);
数字写入(motorLpin2,LOW);
数字写入(电机Rpin1,低);
数字写入(motorRpin2,HIGH);
数字写入(LED1,低);
数字写入(LED2,低);
数字写入(LED3,高);
}
 
 {
 
数字写入(motorLpin1,LOW);
数字写入(motorLpin2,HIGH);
数字写入(motorRpin1,HIGH);
数字写入(电机Rpin2,低);
数字写入(LED1,低);
数字写入(LED2,低);
数字写入(LED3,高);

}
 
 {

数字写入(motorLpin1,LOW);
数字写入(motorLpin2,LOW);
数字写入(电机Rpin1,低);
数字写入(电机Rpin2,低);
数字写入(LED1,低);
数字写入(LED2,低);
数字写入(LED3,低);

}

 

pYYBAGL5kuqAanPwAADGmBzgCn0776.jpg

 

poYBAGL5kuyAbZKKAAB1M7JLJbI063.jpg

 

我将上面的草图上传到 Atmega 中,然后添加了一个带有电机驱动器连接器的齿轮直流电机,并添加了一个 12V 电池组来为整个系统供电

为了控制电机,我正在使用与 HC01 模块连接的 BT 终端应用程序向 MCU 发送“F”表示前进,“B”表示后退。

为了停止电机,我们通过 BT 端子发送“S”,电机停止旋转。

 

下一步,做一个机器人

 

pYYBAGL5ku6AU9eEAACi2IZWjfQ336.jpg

 

此电机控制器的下一步或下一步用途将是构建一个机器人,我目前正在设计一个将使用此控制器设置的机器人,敬请期待。

如果您喜欢机器人,请查看我以前的机器人项目-

 

 

 

谢谢,PCBWAY 支持这个项目,如果你需要更好的 PCB 服务以降低成本,请检查它们,我很快就会带着新项目回来。

和平

 

代码


下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1山景DSP芯片AP8248A2数据手册
  2. 1.06 MB  |  532次下载  |  免费
  3. 2RK3399完整板原理图(支持平板,盒子VR)
  4. 3.28 MB  |  339次下载  |  免费
  5. 3TC358743XBG评估板参考手册
  6. 1.36 MB  |  330次下载  |  免费
  7. 4DFM软件使用教程
  8. 0.84 MB  |  295次下载  |  免费
  9. 5元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537798次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420027次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191187次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费