之前做的簡單設計,無線充電給超級電容充電,并進行檢測是否充滿,源代碼、和一些電路分享給大家看看,水平有限,希望大家多多指教。
程序流程圖:
0.png (41.66 KB, 下載次數: 75)
下載附件
2019-7-7 02:29 上傳
制作出來的實物圖如下:
S[GPOD@0}32RJ0SPTI(J%UA.png (654.33 KB, 下載次數: 76)
下載附件
接線圖
2019-7-6 16:21 上傳
0.png (263.78 KB, 下載次數: 73)
下載附件
2019-7-7 02:28 上傳
單片機源程序如下:
- /*接好線后記得供地,根據程序來決定采集通道是IN幾。開始時的數據是變化的當采集一點
- 電壓時就穩定顯示采集的電壓,采集電壓時記得改變基準電壓,每個板基準電壓都不同。
- AIN0~AIN10為模擬輸入端; 為片選端;DIN 為串行數據輸入端;
- DOUT為A/D轉換結果的三態串行輸出端;EOC為轉換結束端;CLK為I/O時鐘;REF+為正基準電壓端;REF-為負基準電壓端;VCC為電源;GND為地。
- */
- #include <reg52.h>
- #include "12864.h"
- #include "TLC2543.h"
- #define uint unsigned int
- #define uchar unsigned char
- unsigned long r;
- sbit cek1 = P0^0;
- /*主函數*/
- void main()
- {
- uint V0=0,I=0;
- /*調用 */
- LCD_init(); //液晶初始化
- LCD_display(); //顯示函數
- //cek1=0;
- while(1)
- {
- read2543(0x01); //選擇通道IN0測量電流
- I=(uint)(read2543(0x00)*50000/4095); //TLC2543采集電壓的公式 2的12次方減1=4095 49900是基準電壓
- shujuxs(I,1,3);
- read2543(0x02); //選擇通道IN1測量電壓
- V0=(uint)(read2543(0x01)*50000/4095);
- shujux(V0,2,3);
- if(I<500) //判斷電池電壓是否充滿電流滿足
- {
- cek1=1;
- delayms(60000); // 如果充滿就斷電
- }
- else
- {
- cek1=0; //未滿繼續充電
- }
- }
- }
復制代碼
0.png (7.81 KB, 下載次數: 74)
下載附件
2019-7-7 02:29 上傳
所有資料51hei提供下載:
無線充電檢測.zip
(464.06 KB, 下載次數: 128)
2019-7-6 16:22 上傳
點擊文件名下載附件
源代碼和相關電路 下載積分: 黑幣 -5
|