電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>電機(jī)驅(qū)動(dòng)板Atmega328PU和HC01開源

電機(jī)驅(qū)動(dòng)板Atmega328PU和HC01開源

2022-08-15 | zip | 0.04 MB | 次下載 | 2積分

資料介紹


電路板圖如下:
pYYBAGL5krGAHp9HAADI6Y4sRzE526.jpg
poYBAGL5krOAfoMbAACzIysJQKA868.jpg
pYYBAGL5kraAE7grAADKyVfQTCc084.jpg

描述

電機(jī)驅(qū)動(dòng)板 Atmega328PU 和 HC01

?

嘿,如果你正在制作一個(gè)基本的機(jī)器人設(shè)置,一個(gè)電機(jī)驅(qū)動(dòng)器控制器板,它通過(guò)板載 MCU 控制電機(jī)驅(qū)動(dòng)器并具有用于藍(lán)牙連接的 HC01 BT 模塊,那么這里有什么超級(jí)酷和有用的東西。

?

?

?

?

我在 PCB 上添加了四個(gè)安裝孔,因此我可以添加 PCB 支架以將電機(jī)驅(qū)動(dòng)器固定在電路板的頂部。使用支架是一種聰明的方法,因?yàn)槲覀兛梢允褂眠@種方法添加多個(gè)模塊,只需將它們堆疊在一排支架中即可。

我還在電路板的一側(cè)添加了一個(gè) HC-SR04 超聲波傳感器分線針,因此它可以用來(lái)制作一個(gè)避障機(jī)器人。

本文將介紹這款電機(jī)驅(qū)動(dòng)器的構(gòu)建過(guò)程,讓我們開始吧。

?

材料

以下是我在這個(gè)項(xiàng)目中使用的東西-

  • 定制PCB
  • Atmega328PU
  • 22PF 蓋 0603 封裝
  • 16MHz晶體
  • 10K電阻0603封裝
  • 1K電阻0603封裝
  • 指示燈 LED 0603 封裝
  • AMS1117 穩(wěn)壓器
  • HC01 藍(lán)牙模塊
  • 10uF 電容 1206 封裝
  • 1uF 電容 1206 封裝
  • IC 插座 DIP 28
  • USB 微型端口
  • 排針插座
  • Arduino 作為用于閃爍 Atmega328PU 的 ISP 設(shè)置
  • PCB 支架
  • 馬達(dá)
  • 超聲波傳感器 HC-SR04
  • 電池組 12V
  • 電機(jī)驅(qū)動(dòng)器 L298N

?

示意圖

?

poYBAGL5krqAOecUAAGI4Kn1N1U930.jpg

?

這是我準(zhǔn)備的原理圖,它由與 HC01 模塊連接的最小 Atmega328PU 設(shè)置組成。在 Atmega328PU 和 HC01 之間,有一個(gè) AMS1117 3.3V 穩(wěn)壓器,用于將 5V 從 VCC 降壓到 3.3V 以使 HC01 工作。

我添加了一堆連接器,用于將東西與 atmega 連接,其中包括 ISP 輸出,Atmega 的分支 SPI 引腳用于閃爍,然后我還添加了用于電機(jī)驅(qū)動(dòng)器 IN1、IN2、IN3 和 IN4 的 CON4 與 D6、D9、D10 和D11。

我還添加了一些帶 D2、D3 和 D4 的 LED 以及一個(gè) CON4 插頭引腳,用于將超聲波傳感器與該板連接。

完成原理圖后,我將其轉(zhuǎn)換為電路板文件。

?

PCB設(shè)計(jì)

?

poYBAGL5kr2AU-Q_AALGYX5jhwY898.png

?

至于設(shè)計(jì),我制作了一個(gè)邊緣有倒角的矩形板,還在板的中心放置了四個(gè)安裝孔,這樣我就可以使用 Standoffs 將 L298N 電機(jī)驅(qū)動(dòng)器放置在這個(gè) PCB 上。

?

PCBWAY

?

pYYBAGL5kr-AUP_tAAA6WHZDlK4631.jpg

?

完成設(shè)計(jì)后,我在PCBWAY的報(bào)價(jià)頁(yè)面上傳了Gerber數(shù)據(jù),選擇了紅色的阻焊層顏色,然后下單。

下訂單后,我在一周內(nèi)收到了 PCB,PCB 質(zhì)量非常好。

?

poYBAGL5ksKAYdl0AAByrojg9AA869.jpg

?

poYBAGL5ksSAYRCPAACSHmrk0EQ925.jpg

?

這種形狀是完全隨機(jī)的,所以很難制作,但他們?cè)谥谱鬟@個(gè) PCB 方面做得非常出色,沒(méi)有任何錯(cuò)誤。

?

一定要檢查一下,以更低的價(jià)格獲得出色的 PCB 服務(wù)。

?

電路板組裝

?

PCB組裝過(guò)程將具有以下步驟。

  • 錫膏點(diǎn)膠
  • 拾取和放置過(guò)程
  • 熱板回流
  • 添加剩余的 THT 組件
  • 刻錄引導(dǎo)加載程序

?

?

焊膏

pYYBAGL5ksaAVi9eAADCCF3_PuY471.jpg

?

第一步是在每個(gè)元件焊盤上涂抹焊膏。

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

添加錫膏后,我們進(jìn)入下一個(gè)過(guò)程,即“PICK & Place Process”

?

挑選和放置

poYBAGL5ksmAPOvbAADMVz2zReE831.jpg

?

然后,我使用 ESD Tweeaser 小心地將每個(gè) SMD 組件一個(gè)一個(gè)地挑選并放置在指定的位置,這需要大約 30 秒的時(shí)間,但結(jié)果是一個(gè)完美的 PCB,所有組件都放置在它們的位置。

?

熱板回流

pYYBAGL5ksuAZ0VPAACtnxRqSRE961.jpg

?

poYBAGL5ks2ANq19AADI0c_pIoE993.jpg

?

pYYBAGL5ks-AGXIzAACjJ08FE8w273.jpg

?

在“PICK & Place Process”之后,我小心翼翼地將整個(gè)電路板抬起并放在我的 DIY SMT Hotplate 上,它也是自制的,就像這個(gè)項(xiàng)目一樣。

幾分鐘后,當(dāng)熱板達(dá)到焊膏熔化溫度時(shí),所有組件都將通過(guò)此熱回流工藝焊接。

然后我們從熱板上取下 PCB 以冷卻所有組件和電路板表面。

?

?

然后我通過(guò) USB 端口插入 5V 電源以檢查 HC01 是否工作,如果設(shè)置正常工作,HC01 一側(cè)的 LED 將閃爍。

?

THT 組件

?

pYYBAGL5ktKAPGl7AACaL76eJOk795.jpg

?

poYBAGL5ktSANMq9AACyMu_IB4Y124.jpg

?

最后,我們將 THT 組件添加到 PCB,它們是 Atmega 插座和接頭引腳。

完成后,我們的電路就完成了!

?

Atmega328PU 通過(guò) Arduino 作為 ISP 燒錄引導(dǎo)加載程序

?

poYBAGL5kteAS3ZYAADCe7GQclE680.jpg

?

pYYBAGL5ktmARer4AADRD3l3Oy4233.jpg

?

現(xiàn)在,此設(shè)置使用 Atmega328PU。Atmega328PU 有一個(gè)小十六進(jìn)制文件,稱為引導(dǎo)加載程序,類似于 BIOS。便宜的 atmega328PU 通常不附帶預(yù)裝的引導(dǎo)加載程序,因此我必須將引導(dǎo)加載程序刻錄到 MCU 上,為此,我使用了我之前的一個(gè)項(xiàng)目,即基于 Arduino 的 Attiny Programmer。

?

程序員是為將引導(dǎo)加載程序和 Flash 代碼刻錄到 Attiny MCU 中,使用上傳到常規(guī) Arduino Nano R3 的“Arduino as ISP Sketch”進(jìn)行一些調(diào)整(在復(fù)位和 GND 之間添加 1uf Cap)

請(qǐng)參閱我以前的項(xiàng)目以制作此程序員并開始使用此閃爍方法。

?

我將 Atmega328PU 的 SPI 引腳通過(guò) Arduino Nano 的 SPI 引腳通過(guò)一個(gè)插頭插座連接在一起,并燒錄 Atmega328PU 的引導(dǎo)程序,并上傳 ULTRASONIC SENSO TEST SKETCH 用于測(cè)試 Atmega 芯片。

?

?

測(cè)試草圖#1 超聲波傳感器

?








   {
序列號(hào).開始();
pinMode(trigPin,輸出);
pinMode(echoPin,輸入);
pinMode(LED,輸出);
pinMode(led2,輸出);
pinMode(led3,輸出);

 
}

   {
,距離;
數(shù)字寫入(trigPin,低);
延遲微秒();
數(shù)字寫入(trigPin,高);
延遲微秒();
數(shù)字寫入(trigPin,低);
持續(xù)時(shí)間=脈沖輸入(回聲針,高);
距離 = (持續(xù)時(shí)間/  ) /  ;
 

(距離 <= ){
數(shù)字寫入(領(lǐng)導(dǎo),高);
 
}
{
數(shù)字寫入(領(lǐng)導(dǎo),低);
}
(距離 < ){
數(shù)字寫入(led2,高);
 
}
{
數(shù)字寫入(led2,低);
}

(距離 < ){
數(shù)字寫入(led3,高);
 
}
{
數(shù)字寫入(led3,低);
}

延遲();
}

?

poYBAGL5ktuANusrAACYVkP5jXA220.jpg

?

我將 HC-SR04 超聲波傳感器模塊添加到其分配的 Header Pin 插座中,并上傳了我制作的測(cè)試草圖。當(dāng)我們將任何東西放在它前面 30 厘米的距離處時(shí),第一個(gè) LED 會(huì)發(fā)光,通過(guò)減小其他兩個(gè) LED 發(fā)光的距離。

?

測(cè)試草圖#2 BT 終端 LED 開/關(guān)

?

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


 ? ? ? ? ? ? ? ? ? ? 
{
?序列號(hào).開始();? ? ? ? ? ? 
?pinMode(,OUTPUT)也應(yīng)如此;
}


 
 {
?  (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測(cè)試草圖上傳到MCU并使用BT終端APP與HC01連接。

通過(guò)BT終端APP向HC01發(fā)送“on”,LED點(diǎn)亮,發(fā)送“off”將其關(guān)閉。

?

添加帶 PCB 支架的電機(jī)驅(qū)動(dòng)器

在測(cè)試板工作正常后,我繼續(xù)下一步,即使用 PCB Standoffs 將 L298N 電機(jī)驅(qū)動(dòng)器添加到主板。

?

在主板和電機(jī)驅(qū)動(dòng)器之間添加電線連接器

?

pYYBAGL5kuCAClDfAADNJnVKGYY726.jpg

?

poYBAGL5kuKAAgefAACi8QnBvEw389.jpg

?

然后我在電機(jī)控制器的 VCC GND 和 5V 以及電機(jī)驅(qū)動(dòng)器的 VCC GND 和 5V 之間添加了電線。

然后我在電機(jī)控制器的控制引腳和 Atmega328pu 的 Pwm 引腳之間添加了電線。

?

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

設(shè)置完成,現(xiàn)在我們可以將電池添加到電機(jī)驅(qū)動(dòng)器的 VCC 和 GND 端口,并將電機(jī)端子添加到電機(jī)驅(qū)動(dòng)器的連接器。

?

添加電機(jī)和電池

?

pYYBAGL5kuWADCntAADP-aHRemo703.jpg

?

poYBAGL5kueAedJPAACHS2isUo0204.jpg

?

?

最終草圖 - 測(cè)試電機(jī)

?

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

 
 {
序列號(hào).開始();
Serial.flush();
pinMode(motorLpin1,輸出);
pinMode(motorLpin2,輸出);
pinMode(電機(jī)Rpin1,輸出);
pinMode(電機(jī)Rpin2,輸出);
pinMode(LED1,輸出);
pinMode(LED2,輸出);
pinMode(LED3,輸出);


}

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

(輸入== ){
馬達(dá)停止();
}
 (輸入== ){
馬達(dá)前進(jìn)();
}
 (輸入== ){
電機(jī)后退();
}
 (輸入== ){
左電機(jī)();
}
 (輸入== ){
右電機(jī)();
}
 
 }

 
 {
數(shù)字寫入(motorLpin1,HIGH);
數(shù)字寫入(motorLpin2,LOW);
數(shù)字寫入(motorRpin1,HIGH);
數(shù)字寫入(電機(jī)Rpin2,低);
數(shù)字寫入(LED1,高);
數(shù)字寫入(LED2,低);
數(shù)字寫入(LED3,低);
}

 
 {

數(shù)字寫入(motorLpin1,LOW);
數(shù)字寫入(motorLpin2,HIGH);
數(shù)字寫入(電機(jī)Rpin1,低);
數(shù)字寫入(motorRpin2,HIGH);
數(shù)字寫入(LED1,低);
數(shù)字寫入(LED2,高);
數(shù)字寫入(LED3,低);
}
 
 {
數(shù)字寫入(motorLpin1,HIGH);
數(shù)字寫入(motorLpin2,LOW);
數(shù)字寫入(電機(jī)Rpin1,低);
數(shù)字寫入(motorRpin2,HIGH);
數(shù)字寫入(LED1,低);
數(shù)字寫入(LED2,低);
數(shù)字寫入(LED3,高);
}
 
 {
 
數(shù)字寫入(motorLpin1,LOW);
數(shù)字寫入(motorLpin2,HIGH);
數(shù)字寫入(motorRpin1,HIGH);
數(shù)字寫入(電機(jī)Rpin2,低);
數(shù)字寫入(LED1,低);
數(shù)字寫入(LED2,低);
數(shù)字寫入(LED3,高);

}
 
 {

數(shù)字寫入(motorLpin1,LOW);
數(shù)字寫入(motorLpin2,LOW);
數(shù)字寫入(電機(jī)Rpin1,低);
數(shù)字寫入(電機(jī)Rpin2,低);
數(shù)字寫入(LED1,低);
數(shù)字寫入(LED2,低);
數(shù)字寫入(LED3,低);

}

?

pYYBAGL5kuqAanPwAADGmBzgCn0776.jpg

?

poYBAGL5kuyAbZKKAAB1M7JLJbI063.jpg

?

我將上面的草圖上傳到 Atmega 中,然后添加了一個(gè)帶有電機(jī)驅(qū)動(dòng)器連接器的齒輪直流電機(jī),并添加了一個(gè) 12V 電池組來(lái)為整個(gè)系統(tǒng)供電。

為了控制電機(jī),我正在使用與 HC01 模塊連接的 BT 終端應(yīng)用程序向 MCU 發(fā)送“F”表示前進(jìn),“B”表示后退。

為了停止電機(jī),我們通過(guò) BT 端子發(fā)送“S”,電機(jī)停止旋轉(zhuǎn)。

?

下一步,做一個(gè)機(jī)器人

?

pYYBAGL5ku6AU9eEAACi2IZWjfQ336.jpg

?

此電機(jī)控制器的下一步或下一步用途將是構(gòu)建一個(gè)機(jī)器人,我目前正在設(shè)計(jì)一個(gè)將使用此控制器設(shè)置的機(jī)器人,敬請(qǐng)期待。

如果您喜歡機(jī)器人,請(qǐng)查看我以前的機(jī)器人項(xiàng)目-

?

?

?

謝謝,PCBWAY 支持這個(gè)項(xiàng)目,如果你需要更好的 PCB 服務(wù)以降低成本,請(qǐng)檢查它們,我很快就會(huì)帶著新項(xiàng)目回來(lái)。

和平

?

代碼


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評(píng)估板參考手冊(cè)
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊(cè)
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)