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

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

3天內(nèi)不再提示

基于Arduino微控制器atmega328p-pu對(duì)微控制器編程實(shí)現(xiàn)

電子設(shè)計(jì) ? 來源:電路城 ? 作者:電路城 ? 2021-04-27 15:29 ? 次閱讀

硬件部件:

atmega328p-pu× 1個(gè)

帶按鈕的旋轉(zhuǎn)編碼器× 1個(gè)

2.5伏參考電壓,ad680jtz× 1個(gè)

8 MHz晶振× 1個(gè)

電容22 pF× 2個(gè)

電容100 nF× 5

電阻1M歐姆× 2個(gè)

電阻10k歐姆× 10

電阻4.75k歐姆× 1個(gè)

電阻1k歐姆× 7

電阻220歐姆× 1個(gè)

電阻100歐姆× 7

電容1 μF× 2個(gè)

電容器100 μF× 1個(gè)

電容1000 μF× 1個(gè)

ams1117-5.0× 1個(gè)

二極管1n400× 1個(gè)

mosfet N通道ao3400× 3

Mosfet P通道A03407× 2個(gè)

JST XH插座。3p,4p,5p× 1個(gè)

LED(通用)× 1個(gè)

散熱器× 1個(gè)

風(fēng)扇40x40 12v× 1個(gè)

功率PNP晶體管1SB1375× 2個(gè)

通用晶體管PNP× 2個(gè)

通用晶體管NPN× 4

1歐姆1W 1%電阻× 2個(gè)

2.2歐姆5W電阻× 2個(gè)

齊納單二極管,5.1 V× 2個(gè)

LCD i2c顯示器16x2或20x4× 1個(gè)

Maxim Integrated DS18B20可編程分辨率1-Wire數(shù)字溫度計(jì)× 3

AA電池座× 2個(gè)

軟件應(yīng)用程序和在線服務(wù)

Arduino IDE

手動(dòng)工具和制造機(jī)

烙鐵(通用)

該項(xiàng)目致力于為NiMh AA電池充電。

聲明:這是一項(xiàng)正在進(jìn)行的工作,該軟件仍處于Alpha階段。

該充電器可用于為電池緩慢和快速充電,也可以恢復(fù)舊電池。該充電器基于Arduino微控制器atmega328p-pu,可將全部可用信息顯示到16x2或20x4 LCD字符屏上。它最多可以獨(dú)立為兩節(jié)電池充電。您只能給一個(gè)電池充電,也可以同時(shí)給兩個(gè)不同容量的電池或兩個(gè)類似的電池充電。在為電池充電之前,必須為每個(gè)電池插槽設(shè)置電池容量,充電速度和循環(huán)計(jì)數(shù),然后將電池插入插槽,然后過程開始。

充電器支持三種充電模式:

? 快速充電。電池應(yīng)在5個(gè)小時(shí)內(nèi)充滿電。充電電流取決于電池容量,等于0.2C。

? 充電緩慢。電池應(yīng)在10小時(shí)內(nèi)充滿電。充電電流等于0.1C。

? 恢復(fù)充電。此模式下的充電電流限制為40mA?;謴?fù)時(shí)間取決于電池容量。此模式可用于恢復(fù)電池容量并為其他充電器無法充電的舊電池充電。

充電過程包括以下幾個(gè)階段:

? 放電階段。電池通過內(nèi)部電阻放電至0.9 v。

? 預(yù)充電階段。電池以小電流充電,大約30mA,直到電池電壓變?yōu)?.0v。

? 主充電階段。根據(jù)計(jì)算的電流對(duì)電池充電,具體取決于電池容量和充電模式(快速,緩慢還原)。如果檢測(cè)到電壓下降或電池過熱或達(dá)到電壓上限,則電池充電階段結(jié)束。

? 充電后階段。電池以小電流充電,直到另一個(gè)電壓下降或電壓上限。

? 完成階段。電池會(huì)以短電流脈沖充電,直到將其從充電器中取出為止。

如果在給電池充電之前未設(shè)置環(huán)路,則充電過程將貫穿整個(gè)階段。如果選擇運(yùn)行多個(gè)充電循環(huán),則充電器將在主充電階段完成后立即重新開始放電過程,直到達(dá)到循環(huán)計(jì)數(shù)為止。您可以使用多個(gè)循環(huán)充電來恢復(fù)電池容量。

充電器具有三個(gè)溫度傳感器:一個(gè)用于每個(gè)電池插槽,另一個(gè)用于控制安裝在功率晶體管上方的內(nèi)部散熱器的溫度。為了降低內(nèi)部散熱器的溫度,在充電器內(nèi)部安裝了一個(gè)小風(fēng)扇。散熱器溫度達(dá)到最高限制時(shí),風(fēng)扇會(huì)自動(dòng)打開。當(dāng)散熱器變冷時(shí),風(fēng)扇將關(guān)閉。

充電器原理圖如下圖所示。為了簡(jiǎn)化原理圖的讀數(shù),它分為三個(gè)部分:控制器部分和兩個(gè)通道。兩個(gè)充電通道都非常相似,唯一的區(qū)別是輸出和輸入信號(hào)以及組件編號(hào)。

充電器的控制器部分:

基于Arduino微控制器atmega328p-pu對(duì)微控制器編程實(shí)現(xiàn)

如上圖所示,為增加電池電壓測(cè)量,已實(shí)現(xiàn)外部基準(zhǔn)電壓源AD680JTZ。其精度為0.4%,并且控制器可以檢查高達(dá)0.001伏的電池電壓。您可以用運(yùn)行在8 MHz或更高頻率的Arduino板(uno,nano,pro mini)替換atmega328p-pu IC

這是套接字說明:

? J1可以像Arduino pro mini一樣通過UART端口對(duì)微控制器進(jìn)行編程。

? J2連接電池溫度傳感器DS18b20

? X2 12伏電源連接器

? U3連接i2c LCD顯示器。平滑改變顯示屏亮度所需的亮度引腳

? U4連接旋轉(zhuǎn)編碼器。

? U5連接安裝在散熱器上的12v 40x40x10mm風(fēng)扇。

通道“ A”原理圖:

基于Arduino微控制器atmega328p-pu對(duì)微控制器編程實(shí)現(xiàn)

通道“ B”的原理圖:

基于Arduino微控制器atmega328p-pu對(duì)微控制器編程實(shí)現(xiàn)

在這里,您可以找到該項(xiàng)目的完整原理圖和PCB板。

讓我解釋一下充電器如何在通道“ B”上工作。晶體管Q9和Q10是達(dá)林頓對(duì),可為連接到插座J4的電池提供充電電流。Arduino控制器通過PWR_B端口將PWM信號(hào)提供給Q13晶體管。PWM占空比越大,在Q9集電極上產(chǎn)生的電流就越大。

Q11 mosfet用于啟用或禁用電池充電電流。Q12 MOSFET用于通過R26電阻對(duì)電池放電。

要測(cè)量R31電阻上的充電電流電壓,請(qǐng)檢查。

為了向電池提供所需的電流,充電器中使用了PID算法

定義溫度傳感器的正確順序

您必須對(duì)充電器進(jìn)行一些初始配置,因?yàn)樵诖隧?xiàng)目的單條總線上有三個(gè)溫度傳感器ds18b20。在啟動(dòng)過程中,充電器以某種特定順序檢測(cè)所有傳感器。您必須指定正確的傳感器順序,充電器才能正常工作。

將NiMh_Serial固件加載到您的控制器,并將終端連接到UART端口。選擇“溫度”菜單項(xiàng)。按下編碼器按鈕。您可以看到所有溫度傳感器的值。加熱一些傳感器,并記住它在列表中的位置。對(duì)每個(gè)傳感器重復(fù)此過程。現(xiàn)在,您可以定義充電器的正確傳感器順序。將NiMH_Charger代碼加載到Arduino IDE并找到“ core.init(SO_BHA);”行。在setup()函數(shù)中。要定義正確的傳感器順序,您必須為core.init()方法指定正確的SO_ *代碼。溫度傳感器有6種可能的組合:

SO_ABH-通道“ A”,通道“ B”,內(nèi)部散熱器。

SO_BAH-通道“ B”,通道“ A”,內(nèi)部散熱器等。

此過程只能執(zhí)行一次。

串行固件的其他可能性

* _serial固件是一種功能強(qiáng)大的工具,可用于調(diào)試充電器硬件。使用串行菜單,您可以選擇電池通道“ A”或“ B”之一,定義充電電流,執(zhí)行測(cè)試充電,測(cè)試放電,散熱器風(fēng)扇測(cè)試和溫度傳感器測(cè)試。

該項(xiàng)目仍在進(jìn)行中,因?yàn)殡姵爻潆娺^程非常耗時(shí),并且調(diào)試需要大量時(shí)間。
責(zé)任編輯:pj

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7454

    瀏覽量

    150853
  • 顯示器
    +關(guān)注

    關(guān)注

    21

    文章

    4927

    瀏覽量

    139739
  • 晶體管
    +關(guān)注

    關(guān)注

    77

    文章

    9609

    瀏覽量

    137659
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Atmega328p-puAtmega16A-PU有什么區(qū)別

    Atmega328p-puArduino-URO主控芯片)和Atmega16A-PU有什么區(qū)別Atmega328p-puAtmega16
    發(fā)表于 11-23 09:15

    基于picoPower 8位AVR RISC的高性能微控制器

    描述Atmega328P 不帶 Arduino PCB 設(shè)計(jì)Atmega328P 微控制器ATmega328P 是一款基于 picoPow
    發(fā)表于 07-01 08:32

    ATMEGA 328P微控制器上數(shù)字釬焊站的裝配設(shè)計(jì)

    描述ATMEGA 328P微控制器上數(shù)字釬焊站的裝配設(shè)計(jì)
    發(fā)表于 08-11 07:35

    AtMega328AtMega328-MU的編程

    描述AtMega328AtMega328-MU 的編程板。非常適合為您的項(xiàng)目編程新芯片。用于刻錄引導(dǎo)加載程序和編程的自己的引腳。設(shè)計(jì)為
    發(fā)表于 09-13 07:03

    怎樣在ATmega328微控制器上刻錄引導(dǎo)加載程序

    如果你正在查看這個(gè)項(xiàng)目,那么你可能已經(jīng)使用過Arduino板了。 Arduino UNO上的ATmega328微控制器很可能在一定時(shí)間(或不正確的連接)后發(fā)生故障。為了重用
    的頭像 發(fā)表于 07-29 10:17 ?7168次閱讀

    什么是微控制器?如何編程微控制器?

    對(duì)微控制器進(jìn)行編程或刻錄意味著“將程序從編譯傳輸?shù)?b class='flag-5'>微控制器的存儲(chǔ)”。微控制器的程序通常是用C
    的頭像 發(fā)表于 08-21 15:40 ?1w次閱讀

    ATmega48和ATmega88與ATmega168及ATmega328P微控制器數(shù)據(jù)手冊(cè)

    ATmega48PA/88PA/168PA/328P是基于AVR增強(qiáng)RISC架構(gòu)的低功耗CMOS 8位微控制器。通過在一個(gè)時(shí)鐘周期內(nèi)執(zhí)行強(qiáng)大的指令,ATmega48PA/88PA/16
    發(fā)表于 11-30 08:00 ?34次下載
    <b class='flag-5'>ATmega</b>48和<b class='flag-5'>ATmega</b>88與<b class='flag-5'>ATmega</b>168及<b class='flag-5'>ATmega328P</b>的<b class='flag-5'>微控制器</b>數(shù)據(jù)手冊(cè)

    Atmega328p-puAtmega16A-PU區(qū)別

    Atmega328p-puArduino-URO主控芯片)和Atmega16A-PU有什么區(qū)別Atmega328p-puAtmega16
    發(fā)表于 11-15 12:06 ?0次下載
    <b class='flag-5'>Atmega328p-pu</b>與<b class='flag-5'>Atmega16A-PU</b>區(qū)別

    Arduino Uno微控制器采用的是Atmel的ATmega328

    Arduino Uno微控制器采用的是Atmel的ATmega328
    發(fā)表于 11-15 12:06 ?11次下載
    <b class='flag-5'>Arduino</b> Uno<b class='flag-5'>微控制器</b>采用的是Atmel的<b class='flag-5'>ATmega328</b>

    基于ATmega328微控制器板原理圖

    ArduinoUno是一款基于ATmega328微控制器板。它有14個(gè)數(shù)字輸入/輸出引腳(其中6個(gè)可用作PWM輸出)、6個(gè)模擬輸入、一個(gè)16MHz晶體振蕩、一個(gè)USB連接、一個(gè)電源插孔、一個(gè)
    的頭像 發(fā)表于 07-05 17:17 ?3916次閱讀
    基于<b class='flag-5'>ATmega328</b>的<b class='flag-5'>微控制器</b>板原理圖

    基于ATmega328P的電感計(jì)

    這是一個(gè)電感計(jì)的項(xiàng)目,基于著名的 Arduino 微控制器。這個(gè)項(xiàng)目的主要目的還能夠突出兩個(gè)微控制器之間的區(qū)別:STM32 和 ATmega328P
    發(fā)表于 12-08 10:17 ?6次下載

    基于Atmega328P PU的EEPROM

    ,電容器和發(fā)光二極管。此外,它還包括用于將外圍設(shè)備連接到微控制器的接頭。所有這些都是在一個(gè)相對(duì)較小的板上完成的,尺寸為 44x28 毫米。Atmega328P-PU MCU 位于電路板的中央。標(biāo)題和 LED 指示燈沿邊緣放置。SMD 組件用于將電路板尺寸保持在最小。我選擇
    發(fā)表于 12-23 14:17 ?1次下載

    基于atmega328pArduino平臺(tái)的氣象站設(shè)計(jì)

    方案介紹基于arduino平臺(tái)的小型臺(tái)式氣象站,使用atmega32P微控制器,BME280,DS3231和OLED顯示屏。該項(xiàng)目中使用的物料清單Atmega328p-PU1個(gè)Ds32
    發(fā)表于 12-28 16:23 ?3次下載

    簡(jiǎn)單的獨(dú)立ATMega328p微控制器

    電子發(fā)燒友網(wǎng)站提供《簡(jiǎn)單的獨(dú)立ATMega328p微控制器.zip》資料免費(fèi)下載
    發(fā)表于 06-12 10:57 ?1次下載
    簡(jiǎn)單的獨(dú)立<b class='flag-5'>ATMega328p</b><b class='flag-5'>微控制器</b>

    基于ATmega328P微控制器的Ardu鍵盤

    電子發(fā)燒友網(wǎng)站提供《基于ATmega328P微控制器的Ardu鍵盤.zip》資料免費(fèi)下載
    發(fā)表于 06-19 14:47 ?4次下載
    基于<b class='flag-5'>ATmega328P</b><b class='flag-5'>微控制器</b>的Ardu鍵盤