標題: 求指導數(shù)控直流穩(wěn)壓電源設計 [打印本頁]

作者: 學習學習ing    時間: 2020-8-2 00:09
標題: 求指導數(shù)控直流穩(wěn)壓電源設計
我想用DAC0832,LM317來弄,知識淺薄,不懂這1,2問怎么弄,求指導!

作者: marsyu1991    時間: 2020-8-2 23:02
LM317屬于集成可調(diào)線性穩(wěn)壓器,最簡單的辦法就是,用LM317的典型電路,把反饋端的兩個分壓電阻的其中一個改成數(shù)字電位器,然后利用單片機去控制數(shù)字電位器的阻值,即可完成簡單的數(shù)控穩(wěn)壓電源
作者: 1692483014    時間: 2020-8-3 00:35
好好看看這個:
http://www.torrancerestoration.com/bbs/dpj-119664-1.html
另外,要學會百度,例如百度:穩(wěn)壓電源的設計 、 什么是穩(wěn)壓電源的輸出電壓范圍,什么是穩(wěn)壓電源的步進,什么是穩(wěn)壓電源的紋波,什么是穩(wěn)壓電源的最大輸出電流等等。
把你想知道的一點兒一點兒拆解,一點兒一點兒百度。
作者: wulin    時間: 2020-8-3 09:22
本帖最后由 wulin 于 2020-8-3 16:13 編輯

樓主構(gòu)想的數(shù)控電源能夠?qū)崿F(xiàn),可以采用具有內(nèi)置AD/DA的芯片完成調(diào)壓和數(shù)碼管顯示。下圖是仿真和基本原理圖。




作者: Sakura最好了    時間: 2020-8-4 21:22
wulin 發(fā)表于 2020-8-3 09:22
樓主構(gòu)想的數(shù)控電源能夠?qū)崿F(xiàn),可以采用具有內(nèi)置AD/DA的芯片完成調(diào)壓和數(shù)碼管顯示。下圖是仿真和基本原理圖 ...

單片機可以用stc89c52的嗎

作者: imxuheng    時間: 2020-8-5 08:13
核心思想:改變串聯(lián)型穩(wěn)壓電源的基準電壓實現(xiàn)輸出電壓的改變。
1、如果使用單片機,
學校里面一般選擇單片機控制DA輸出,比如單片機+DAC0832。DA輸出作為串聯(lián)型穩(wěn)壓電源的基準電壓。串聯(lián)型穩(wěn)壓電源自己到網(wǎng)上搜一下
2、不使用單片機
計數(shù)器74192輸出端接入DAC0832輸入端,DA輸出作為串聯(lián)型穩(wěn)壓電源的基準電壓。這種方法需要用兩組74192+DAC0832,電路比較復雜

穩(wěn)壓電源功率20W,那么需要考慮調(diào)整管功率,TIP41之類的滿足要求

作者: wulin    時間: 2020-8-5 12:40
Sakura最好了 發(fā)表于 2020-8-4 21:22
單片機可以用stc89c52的嗎

可以用stc89c52+DAC芯片。
作者: Y_G_G    時間: 2020-8-5 17:17
我有現(xiàn)成的要不?
12位DAC+16位ADC,單片機使用STC8A4K系列的,12864顯示,匯編語言,編碼開關(guān)調(diào)節(jié)輸出電壓,步進好像是0.01V的,精度5mV以內(nèi),成本有點小高
作者: Sakura最好了    時間: 2020-8-5 20:01
Y_G_G 發(fā)表于 2020-8-5 17:17
我有現(xiàn)成的要不?
12位DAC+16位ADC,單片機使用STC8A4K系列的,12864顯示,匯編語言,編碼開關(guān)調(diào)節(jié)輸出電壓,步 ...

想知道原理
作者: Y_G_G    時間: 2020-8-5 20:10
可調(diào)電源電路.pdf (115.9 KB, 下載次數(shù): 51) 這個是電路圖

作者: Sakura最好了    時間: 2020-8-5 21:58
Y_G_G 發(fā)表于 2020-8-5 20:10
這個是電路圖

哭了,看不懂
作者: 學習學習ing    時間: 2020-8-6 20:51
wulin 發(fā)表于 2020-8-3 09:22
樓主構(gòu)想的數(shù)控電源能夠?qū)崿F(xiàn),可以采用具有內(nèi)置AD/DA的芯片完成調(diào)壓和數(shù)碼管顯示。下圖是仿真和基本原理圖 ...

我這該怎么樣,當DAC0832的輸出端給一個+,- 0.02v的電壓通過LM324放大5倍,得到0.1v。然后到LM317進行輸出,一直卡在LM317這不懂怎么像,你的圖片中那樣進行輸出,而且怎么讓他從1.5開始到20v.還有我的LM324接12v對嗎?麻煩大佬幫忙看看,提點下。。

數(shù)控.png (83.36 KB, 下載次數(shù): 62)

數(shù)控.png

作者: 學習學習ing    時間: 2020-8-6 20:58
通過LM324給出0.1v,然后怎么通過LM317輸出,而且怎么從1.5v開始
作者: wulin    時間: 2020-8-7 11:01
本帖最后由 wulin 于 2020-8-7 15:58 編輯
學習學習ing 發(fā)表于 2020-8-6 20:51
我這該怎么樣,當DAC0832的輸出端給一個+,- 0.02v的電壓通過LM324放大5倍,得到0.1v。然后到LM317進行輸 ...

不必搞那么復雜,用PWM通過運放濾波放大控制LM317,輸出電壓通過運算可得,實際電路參數(shù)微調(diào)一下即可。運放最大輸出電壓=VCC-1.5V,所以用12V電源不行。LM324/358最大電源電壓的32V,放心使用。仿真簡圖和示例程序如下:


  1. #include<reg52.h>
  2. #define key_S 10                                        //宏定義短按(約10ms)
  3. #define key_L key_S*35                        //宏定義長按(約500ms)
  4. #define key_I key_S*27                        //宏定義長按連+/-間隔(約120ms)
  5. #define uint unsigned int
  6. #define uchar unsigned char
  7. sbit OUT =P2^4;
  8. sbit key1=P2^5;
  9. sbit key2=P2^6;

  10. unsigned char code table[]={//共陽數(shù)碼管段碼"0~f-."
  11.                 0xc0,0xf9,0xa4,0xb0,
  12.                 0x99,0x92,0x82,0xf8,
  13.                 0x80,0x90,0x88,0x83,
  14.                 0xc6,0xa1,0x86,0x8e,0xbf,0x7f};
  15. uchar data dis_buf[4];
  16. unsigned char num=0;
  17. unsigned int count=0,V_IN;
  18. bit sign=0;

  19. void delay(unsigned int k)
  20. {
  21.         unsigned int i,j;
  22.         for(i=k;i>0;i--)
  23.                 for(j=110;j>0;j--);
  24. }

  25. void keyscan()    //按鍵掃描
  26. {
  27.         static unsigned int time=0;
  28.         if(!key1||!key2)
  29.         {
  30.                 time++;
  31.                 if(time>key_L)//長按有效
  32.                         time=key_I;//連+/-間隔

  33.                 if(time==key_S||time==key_L)//短按消抖+/-或長按連+/-
  34.                 {
  35.                         if(!key1)//++
  36.                         {
  37.                                 if(count<100)
  38.                                         count++;//步進電壓0.1875
  39.                         }
  40.                         if(!key2)//--
  41.                         {
  42.                                 if(count>0)
  43.                                         count--;
  44.                         }
  45.                 }
  46.         }
  47.         else time=0;
  48. }
  49. void Timer0Init()        //100微秒@12.000MHz
  50. {
  51.         TMOD= 0x02;                //設置T0自動重裝模式
  52.         TL0 = 0x9C;                //設置定時初值
  53.         TH0 = 0x9C;                //設置定時重載值
  54.         TR0 = 1;                        //定時器0開始計時
  55.         EA = 1;                        //開總中斷
  56.         ET0 = 1;                        //開T0中斷
  57. }
  58. void display(void)
  59. {
  60.         static uchar i=0;
  61.         dis_buf[0]=table[V_IN/1000];//數(shù)據(jù)分解
  62.         dis_buf[1]=table[V_IN/100%10];
  63.         dis_buf[2]=table[V_IN/10%10];
  64.         dis_buf[3]=table[V_IN%10];

  65.         P0=0xff;                                        //段碼消隱
  66.         P2&=0xf0;                                //位碼清0
  67.         if(i==1)
  68.                 P0=dis_buf[i]&0x7f;//送段碼加點
  69.         else
  70.                 P0=dis_buf[i];                //送段碼不加點
  71.         P2|=0x01<<i;                        //送位碼
  72.         i++;
  73.         i%=4;
  74. }
  75. void main(void)
  76. {
  77.         Timer0Init();
  78.         while(1)
  79.         {
  80.                 keyscan();
  81.                 V_IN=(count*187.5+1250+5)/10;//電壓換算(放大1000/10四舍五入)
  82.                 display();
  83.                 delay(1);
  84.         }
  85. }

  86. void Timer0Interrupt(void) interrupt 1
  87. {
  88.         num++;
  89.         if(num>100)
  90.                 num=0;
  91.         if(count>=num)//PWM
  92.                 OUT=1;
  93.         else OUT=0;
  94. }
復制代碼





作者: 學習學習ing    時間: 2020-8-8 13:05
wulin 發(fā)表于 2020-8-7 11:01
不必搞那么復雜,用PWM通過運放濾波放大控制LM317,輸出電壓通過運算可得,實際電路參數(shù)微調(diào)一下即可。運 ...

大佬,好像加減過程中他的實際輸出電壓和數(shù)碼管顯示的有誤差,剛開始誤差不大,到后面他的實際電壓誤差會很大
作者: wulin    時間: 2020-8-8 14:05
學習學習ing 發(fā)表于 2020-8-8 13:05
大佬,好像加減過程中他的實際輸出電壓和數(shù)碼管顯示的有誤差,剛開始誤差不大,到后面他的實際電壓誤差會 ...

這只是一個基本的原理電路。理論計算和實際電路當然會有誤差,這是由VCC精準度、元器件的離散性和元件溫飄導致。要在程序中修改換算系數(shù)使其更接近實際數(shù)值,也可以按前述電路用ADC取樣,這樣誤差會很小。
公式原型V_IN=((count*0.1875+1.25)*1000+5)/10;//電壓換算(放大1000/10四舍五入)
count=PWM占空比值,0.1875為換算系數(shù),1.25為317最低輸出電壓。可以根據(jù)實測輸出最高電壓減最低電壓除以100得到換算系數(shù)在程序中修正。

作者: 青桑葉    時間: 2020-8-8 14:56
按照樓主的題目,主要是考慮0832的分辨率,用cpu控制輸出的數(shù)字量,此信號經(jīng)過濾波,輸入給0832,可以輸出給運放去控制一個三極管,加到317的adj端.317的輸出最低要調(diào)整到1.5v,其它的量通過三極管和電阻的配合,升到20v       這個電腦沒畫圖軟件.思路供參考
作者: 春風十里吹    時間: 2020-8-8 15:15
其實沒有這么麻煩,有一個功率在的供電電源(二手電腦電源可考慮),一個可PWM可調(diào)的降壓型芯片,同比較器及電路就能做




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1