|
為了學(xué)習(xí)單片機(jī),不知不覺來論壇好幾個(gè)月。一直都是伸手黨。今天特將自己的資料分享給大家。順便展示一下DIY成果。霍爾測速,按鍵清零,usb充電。因?yàn)殡妷焊哌_(dá)65v。所以采用HRD05003,修改了電壓為13V。LM2596s降壓5v充電充電,采用二級降壓手機(jī)充電更安全
只要修改一下distance=distance+0.0010100;后面的數(shù)字就可以校準(zhǔn)速度和里程。這個(gè)是我的車輪12寸周長101厘米
不過也有很多不足之處,斷電不能保存里程。速度顯示不完美,一個(gè)脈沖3.56KM/H。如果要想精度更高必須修改刷新時(shí)間。歡迎單片機(jī)大神來指正。
IMG_20180116_093923.jpg (590.12 KB, 下載次數(shù): 83)
下載附件
2018-1-16 09:49 上傳
降壓模塊,日本拆機(jī)。某寶7塊左右,默認(rèn)電壓5v?梢酝ㄟ^修改電阻修改電壓,現(xiàn)在已經(jīng)被我改為13v電壓。
官方標(biāo)稱耐壓高達(dá)50v。因?yàn)椴捎玫氖峭秸,所以效率高達(dá)3a左右。完爆國產(chǎn)。還有很多不錯(cuò)的模塊,現(xiàn)在都漲價(jià)了。
IMG_20180116_093934.jpg (521.08 KB, 下載次數(shù): 103)
下載附件
2018-1-16 09:45 上傳
IMG_20180116_090642.jpg (529.43 KB, 下載次數(shù): 90)
下載附件
上面一排顯示速度,下面顯示總里程
2018-1-16 09:22 上傳
IMG_20180116_090711.jpg (667.17 KB, 下載次數(shù): 74)
下載附件
強(qiáng)磁固定在車輪上,霍爾檢查脈沖
2018-1-16 09:23 上傳
單片機(jī)源程序如下:
- #########################################################################
- #include"lcd.h"
- #include <intrins.h>
-
- #define uchar unsigned char
- #define uint unsigned int
- sbit K1 = P3^0;
- uchar Time=0;
- uchar count=0;
- float speed=0;
- float distance=0;
- void IntConfiguration()
- {
- //設(shè)置INT0
- IT0=1;//跳變沿出發(fā)方式(下降沿)
- EX0=1;//打開INT0的中斷允許。
-
- EA=1;//打開總中斷
- }
- void TimerConfiguration()
- {
- TMOD = 0x01; //選擇工作方式1
- TH0 = 0x3C; //設(shè)置初始值,定時(shí)50MS
- TL0 = 0xB0;
- EA = 1; //打開總中斷
- ET0 = 1;TR0 = 1; //打開定時(shí)器0中斷//啟動(dòng)定時(shí)器0
- }
- main()
- {
- // uchar i;
- IntConfiguration();
- TimerConfiguration();
- LcdInit();
- LCDWrite_String(0, 0, 16, "Sudu: Km/h");
- LCDWrite_String(0, 1, 16, "Licheng: Km");
- while(1)
- {
- if(K1==0)
- {
- distance=0;
- }
- LcdWriteCom(0x80+6);
- LcdWriteData('0'+(int)speed/100%10);
- LcdWriteData('0'+(int)speed/10%10);
- LcdWriteData('0'+(int)speed%10);
- LcdWriteData('.');
- LcdWriteData('0'+(int)(speed*10)%10);
- LcdWriteData('0'+(int)(speed*100)%10);
- LcdWriteCom(0xc0+9);
- LcdWriteData('0'+(int)distance/10%10);
- LcdWriteData('0'+(int)distance%10);
- LcdWriteData('.');
- LcdWriteData('0'+(int)(distance*10)%10);
- LcdWriteData('0'+(int)(distance*100)%10);
-
- }
- }
- void Int0() interrupt 0 //外部中斷0的中斷函數(shù)
- {
- count++;
- distance=distance+0.0010100;
- }
- void Timer0() interrupt 1
- {
- TH0 = 0x3C; //設(shè)置初始值
- TL0 = 0xB0;
- Time++;
- if(Time>=20) //每1s計(jì)算一次
- {
- speed=count*4.9455*0.72; //KM/H
- count=0;
- Time=0;
- }
- }
復(fù)制代碼
0.jpg (14.93 KB, 下載次數(shù): 95)
下載附件
2018-1-16 16:37 上傳
所有資料51hei提供下載:
電動(dòng)車?yán)锍瘫?zip
(39.98 KB, 下載次數(shù): 72)
2018-1-16 09:34 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評分
-
查看全部評分
|