久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8527|回復: 18
打印 上一主題 下一主題
收起左側

DIY高精度電壓表電流表 12位ADC XPT2046 單片機程序原理圖PCB

  [復制鏈接]
跳轉到指定樓層
樓主
在實際測試中,不管是研發還是維修,我們經常需要測量設備的電壓電流,根據這個情況,我做了一個電壓電流表。

單片機:由于手頭上STC89C52RC很多,而且這也是大多數人比較常用的,所以我用了89C52RC做處理器。
ADC采樣:這個單片機沒有內置ADC,我采用XPT2046做ADC采集,XPT2046不僅精度高(12位ADC),
                而且有四個通道,還很便宜,非常適合ADC采樣。
基準電壓:由于隨著輸入電壓與負載的波動,會使得XPT2046的電壓不是標準的5V,雖然XPT2046內置了
                基準電壓,但是太小了,會導致這個表的量程不夠,所以我采用了TL431產生一個基準電壓。
采樣電阻:電流采樣使用一個0.1歐姆1%精度,2512封裝的貼片電阻,如果有1A電流,則產生0.1W的功耗,
                取樣電阻不會發燙,但是此時電阻只有0.1V的電壓理論ADC采集是沒問題,但是如果流過0.1A,
                那只有0.01V的電壓,ADC采樣就不合適,所以需要放大。電壓采樣采用兩個0603的電阻并聯,
                由于接了跟隨器,所以這兩個電阻可以取大一些降低功耗(雖然問題不大)。
放大電路:采用LM358,一路做電流采樣的放大,本項目是放大10倍,另一路做電壓采樣跟隨器。
                 LM358存在零點漂移,所以在設置放大倍數的適合可能需要進行微調。
顯示:使用了OLED,測試0.96寸的,實際可以使用0.91寸即可。
電路原理圖(json格式的):如下:


PCB文件(json格式的):


制作出來的實物圖如下:


校正方法:接入負載,輸出一個足夠大的電流,1A最好,然后測試取樣電阻的電壓,應該是0.1V,然后可以微調LM358的電阻使得OLED的顯示正確,也可以在代碼微調,代碼里面有微調系數。附加功能:加了三個按鍵,可以額外開發更多功能。代碼留有很多開發的余地,并且可以自己編程序顯示電阻和功率。


單片機源程序如下:
  1. #include "oled.h"
  2. #include "bmp.h"
  3. #include "xpt2046.h"
  4. typedef unsigned int u16;
  5. #define  v_verf 3.6  //基準電壓最大值
  6. #define  v_aver 2 //分壓比例
  7. #define  v_correction 1
  8. #define  i_correction 0.95
  9. void delay(unsigned int i)
  10. {
  11.         while(i--);
  12. }
  13. void v_datapros()
  14. {
  15.         u16 v_value;
  16.         u16 v;
  17.         
  18.     delay(50000);
  19.         v_value= Read_AD_Data(0xD4);
  20.         delay(50000);
  21.         
  22.     v=(float)v_value*v_verf/4095*1000*2; //4944
  23.         
  24.         OLED_ShowChar(8,2,v/1000+0x30,16);
  25.         OLED_ShowChar(16,2,'.',16);
  26.         OLED_ShowChar(24,2,v%1000/100+0x30,16);
  27.         OLED_ShowChar(32,2,v%100/10+0x30,16);
  28.         OLED_ShowChar(40,2,v%10+0x30,16);
  29.         

  30. }        

  31. void i_datapros()
  32. {
  33.         u16 i_value;
  34.         u16 i;
  35.         delay(50000);
  36.         i_value= Read_AD_Data(0x94);
  37.     delay(50000);
  38.         
  39. //        OLED_ShowChar(8,6,i_value/1000+0x30,16);
  40. //        OLED_ShowChar(16,6,i_value%1000/100+0x30,16);
  41. //        OLED_ShowChar(24,6,i_value%100/10+0x30,16);
  42. //        OLED_ShowChar(32,6,i_value%10+0x30,16);
  43.         
  44.         i=(float)i_value*v_verf/4095*1000*i_correction;     //ma
  45.         
  46.     OLED_ShowChar(8,6,i/1000+0x30,16);
  47.         OLED_ShowChar(16,6,i%1000/100+0x30,16);
  48.         OLED_ShowChar(24,6,i%100/10+0x30,16);
  49.         OLED_ShowChar(32,6,i%10+0x30,16);


  50.         

  51. }
  52. void main(void)
  53. {
  54.         OLED_Init(); //OLED初始化
  55.         OLED_Clear();
  56. //        OLED_DrawBMP(0,0,128,1,BMP1);
  57.     delay(50000);        
  58.         while(1)
  59.         {
  60.                 v_datapros();
  61.                 i_datapros();
  62.         }
  63. }
復制代碼


Keil代碼和立創格式的json文件下載:

代碼.7z (122.63 KB, 下載次數: 151)


評分

參與人數 2黑幣 +55 收起 理由
小當 + 5
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏22 分享淘帖 頂2 踩
回復

使用道具 舉報

沙發
ID:307493 發表于 2022-6-24 09:51 | 只看該作者
這個制作不錯
回復

使用道具 舉報

板凳
ID:149799 發表于 2022-6-24 19:07 | 只看該作者
詳細,做工精細,謝謝分享。
回復

使用道具 舉報

地板
ID:232366 發表于 2022-6-25 14:00 | 只看該作者
不知道測量范圍多大
回復

使用道具 舉報

5#
ID:491577 發表于 2022-6-28 11:35 | 只看該作者
89C52只適合學習,用來做產品還ADC只能呵呵,ADC不是初學者可以做好的, 首先是電源,ADC芯片、運放必須是線性穩壓電源,第二是運放,LM358與高精度無源,樓主如果在意價格把STC89C52RC和XPT2046換成STC8H,省下的錢足夠買一個好點的運放。
回復

使用道具 舉報

6#
ID:1028260 發表于 2022-7-1 16:17 | 只看該作者
lm358可換成op07,零漂幾乎沒有。
回復

使用道具 舉報

7#
ID:491577 發表于 2022-7-1 17:41 | 只看該作者
ccczzzyy 發表于 2022-7-1 16:17
lm358可換成op07,零漂幾乎沒有。

op07雖然零漂小但是需要正負電源,不合適
回復

使用道具 舉報

8#
ID:1028260 發表于 2022-7-1 18:34 | 只看該作者
hhh402 發表于 2022-7-1 17:41
op07雖然零漂小但是需要正負電源,不合適

op333可單電源,零漂幾乎沒有
回復

使用道具 舉報

9#
ID:582138 發表于 2022-7-5 16:15 | 只看該作者
現在的零漂移運算放大器太多了,可以試一下
回復

使用道具 舉報

10#
ID:620098 發表于 2022-7-21 14:53 | 只看該作者
樓主做完后測試效果如何,特別是線性度如何?
回復

使用道具 舉報

11#
ID:627942 發表于 2022-7-29 20:14 | 只看該作者
可以,留個標記.
回復

使用道具 舉報

12#
ID:893997 發表于 2022-8-10 10:56 | 只看該作者
hhh402 發表于 2022-6-28 11:35
89C52只適合學習,用來做產品還ADC只能呵呵,ADC不是初學者可以做好的, 首先是電源,ADC芯片、運放必須是 ...

這個ADC用的是XPT2046,沒有51
回復

使用道具 舉報

13#
ID:893997 發表于 2022-8-10 10:57 | 只看該作者
ccczzzyy 發表于 2022-7-1 16:17
lm358可換成op07,零漂幾乎沒有。

確實,只是手頭LM358比較多
回復

使用道具 舉報

14#
ID:893997 發表于 2022-8-10 10:57 | 只看該作者
SHANWAZI 發表于 2022-6-25 14:00
不知道測量范圍多大

可以自己更改取樣電阻
回復

使用道具 舉報

15#
ID:893997 發表于 2022-8-10 10:58 | 只看該作者
mengfc 發表于 2022-7-21 14:53
樓主做完后測試效果如何,特別是線性度如何?

可以符合100ma-2a正常讀數
回復

使用道具 舉報

16#
ID:1043853 發表于 2022-9-6 21:29 來自手機 | 只看該作者
很好,很實用
回復

使用道具 舉報

17#
ID:1045132 發表于 2022-9-21 15:32 | 只看該作者
431基準是不是不穩定
回復

使用道具 舉報

18#
ID:1083475 發表于 2023-6-12 08:52 | 只看該作者
提示: 作者被禁止或刪除 內容自動屏蔽
回復

使用道具 舉報

19#
ID:1083996 發表于 2023-6-16 08:43 | 只看該作者
hhh402 發表于 2022-6-28 11:35
89C52只適合學習,用來做產品還ADC只能呵呵,ADC不是初學者可以做好的, 首先是電源,ADC芯片、運放必須是 ...

這個可能就是一個創意提示方案,真的做產品肯定根據實際條件選元器件;
實際很多時候對于國內的同行來說,缺乏的只是一個創意靈感;
看國外很多的創意很值錢,后期他們買到手之后還要經過大量的實驗和工藝改進才能量產化,我們對一些最初的能從零開始先驅者,總是缺乏一些關愛和包容……
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本不卡在线观看 | 精品一区在线免费观看 | 日韩电影免费在线观看中文字幕 | 国产乱码高清区二区三区在线 | 日韩一区二区三区在线观看 | 成人av观看| 久久精品久久久久久 | www.日韩av.com| 日日摸夜夜添夜夜添特色大片 | 中文字幕不卡在线88 | 精品国产鲁一鲁一区二区张丽 | 亚洲欧美在线免费观看 | 伊人二区 | 中文字幕二区 | 亚洲精品国产综合区久久久久久久 | 欧美精品一区二区在线观看 | 久久亚洲国产 | 亚洲精品1 | 女同videos另类 | 亚洲图片一区二区三区 | 紧缚调教一区二区三区视频 | 日韩1区2区 | 欧美6一10sex性hd | 亚洲精品一区二区三区在线 | 久草网址 | 天堂网中文字幕在线观看 | 黄色网页在线 | 国产在线第一页 | 中文字幕一区二区三区四区五区 | 国产高清视频一区 | 91福利在线观看 | 亚洲电影一区 | 黄色日批视频 | 久久专区 | 亚欧洲精品在线视频免费观看 | 国产精品一区二区av | 福利片在线 | 欧美一级毛片久久99精品蜜桃 | 黄色片大全在线观看 | 干干干日日日 | 欧美视频成人 |