這是一個簡單的構建微控制器控制的電源,1.2至33伏可調直流和高達3安培之間預先設定的電壓(或32個或更多)。本指南將通過建設過程中的每一個方面,然而,一些電子和微控制器的基本熟悉將需要對微控制器編程。
規格
輸入電壓:33伏直流最大
輸入電流:3安培最大
輸出電壓:5至預置電壓1.2至33 **伏直流
輸出電流:3安培最大 *有沒有整流橋,所以輸入電壓必須 DC **輸出電壓
該電路的LM350是一可調正電壓穩壓器(T2)。穩壓器,能夠提供超過3安培以上的輸出電壓範圍為1.2VDC到33Vdc。它易於使用,熱過載保護,較大的電壓範圍,電流限制,高紋波抑制,使一個可變電源偉大的選擇 。受行駛ADJ引腳通過接地電阻的電流的電壓(Vout引腳) 。因此,通過改變電阻的輸出電壓會發生變化 。更改阻力ATTINY2313愛特梅爾微控制器(U1)的控制 。單片機有2個主要功能,收集用戶輸入,並改變輸出。收集用戶輸入的是很容易的,有兩個按鈕(S1 - S2),一去到下一個電壓,和其他到以前的電壓。按鈕連接到微控制器的引腳PD2和PD3。當按下一個按鈕,微控制器看到一個相應管腳上的信號(+5伏) 。休息的時候,當一個按鈕被按下微控制器看到相應管腳上的低信號(0伏),因為在引腳連接到地槽電阻(R2 - R3),稱為拉下拉電阻 。
當單片機看到一個從低到高的輸入引腳的變化,它發出了一個高的信號(+5伏)輸出引腳。有5個輸出引腳PB0 PB1 PB2 PB3 PB4,每個小電流限流電阻(R4 - R8)經歷了LED(D2 - D6),所以你可以看到當前選中的電壓是什麼,然後基腳一個小的2N2222晶體管(Q1?Q5)。
每個晶體管有一個電阻連接到它的集電極引腳和其發射極引腳連接到地。當晶體管接收其管腳上的電壓,功率會從集電極流向發射。這基本上變成一個電阻變化ADJ引腳上的LM350(T2)當前打開或關閉。
LM7805(T1)僅僅是一個基本固定的5伏直流穩壓器提供電源的微控制器
。二極體D1從一個正電壓連接到接地保護電路
。電容C1 C2 C3 C4和C5用於保持穩定的電源和分離 需要安裝到PCB 的部分電路 的LED唐?噸。它們可以被安裝在面板上輕鬆地顯示所選擇的電壓,或完全排除,並用跳線取代 。目前,他們設置以下值:
D2 - > D3 - 3.3V, 5V,D4 - > 7V,D5 - > 9V,D6 - > 12V
改變R9 - R15的值會改變預設的電壓,以任何你想要的電壓。
其中Ra是組件R9和Rb是R10 - R14與R15的並聯組成部分。請記住,R10,R14與R15和自己的價值,需要這樣計算並聯。
示意圖
三極體2N222,穩壓管LM350,LM7805引腳圖
零件清單
單片機控制器編程
單片機AtTiny2313的源代碼如下所示:
它可以輕鬆地修改與此相同的電路來控制36個不同的電壓 。設置SUT_CKSEL保險絲:?詮釋 。RC振蕩。4兆赫;啟動時間:?14 CK + 65毫秒 確保CKDIV8熔絲沒有設置 的PCB也為RX TX和PD6連接,這樣,一個液晶顯示屏,電腦控制,和額外的投入和產出,可以很容易地被添加。
AtTiny2313 @ internal 4Mhz
*/
#include <avr/io.h>
#define F_CPU 4000000UL
#include <util/delay.h>
uint8_t buttons;
uint8_t outPin = 1;
int main(void)
{
while(1)
{
buttons = (PIND & 0x0C);// This will store the value of PD2 and PD3 (PD2=0x04, and PD3=0x08, so together it's 0x0C)
_delay_ms(35);// A small debounce delay
if(buttons == 0x04)// If PD2 (-) was pressed
{
if(outPin == 0x01)// If its at its lowest value and DOWN is pressed,
{
outPin = 0x10;// roll over to the highest value (0x10)
}
else // If its not at its lowest value
{
outPin >>= 1;// lower it by a power of 2 (bit shift it to the right by 1)
}
PORTB = outPin;// Set the output port to our outPin value (this will make it output high on the pin that corresponds to outPin's value)
}
if(buttons == 0x08)// If PD3 (+) was pressed
{
if(outPin == 0x10)// If its at its highest value and UP is pressed,
{
outPin = 0x01;// roll over to the lowest value (0x01)
}
else // If its not at its highest value
{
outPin <<= 1;// lower it by a power of 2 (bit shift it to the right by 1)
}
PORTB = outPin;// Set the output port to our outPin value (this will make it output high on the pin that corresponds to outPin's value)
}
}
return 0;
}
[admin via 研發互助社區 ] 1.2V至33V的可調直流數字穩壓電源設計及製作已經有6687次圍觀
http://cocdig.com/docs/show-post-39667.html