基于單片機(jī)的旋轉(zhuǎn)led(初級(jí)版)
硬件部分:
(1)底座供電,采用通用的無(wú)線供電技術(shù),別小瞧這個(gè)東西,雖然電路很簡(jiǎn)單,可是不是很好調(diào)啊,這個(gè)破東西浪費(fèi)了我數(shù)日不吃不喝的精力,平時(shí)看網(wǎng)上他們調(diào)的都很好,供電也很穩(wěn)定,為啥我這個(gè)就問(wèn)題重重呢?真是特娘的無(wú)語(yǔ),電壓值先從0.8v升到1.3v,這個(gè)升壓是我調(diào)了一下三極管的基極電壓值,然后又從1.3v升至1.8,這是我換了一個(gè)三極管,可是這個(gè)電壓還不能是單片機(jī)工作起來(lái),怎么辦,此時(shí)我的腦袋里閃現(xiàn)了華仔的那個(gè)半波與全波問(wèn)題了,我換了一個(gè)整流橋,結(jié)果升至3.3v了,雖然這個(gè)電路產(chǎn)生的電流呈現(xiàn)三角波,按照常理,我這個(gè)用個(gè)半波就夠了,但是我這個(gè)真的不可以,雖然此時(shí)的電壓是3.3v但是及其的不穩(wěn)定,也就是說(shuō)單片機(jī)總是重啟,不能連續(xù)的工作,就在此時(shí),我把供電的電壓改變成了12v,原來(lái)是5v供電,這個(gè)結(jié)果很明顯,單片機(jī)工作了,記得那天的這個(gè)時(shí)候已經(jīng)熄燈了,可是晚上我左思右想,想了許久,終于想出來(lái)了,把電容改變一下(記得第二天我和別人吹,我的腦袋就是一個(gè)多功能的示波器),結(jié)果成功了,現(xiàn)在5v供電電壓值一般在3.8v以上,這時(shí)我終于可以組裝測(cè)試了。
(2)最小系統(tǒng),這個(gè)很簡(jiǎn)單,但是由于我對(duì)于我的每一件作品要求比較高,所以我這個(gè)東西焊的時(shí)間也比較長(zhǎng),還有一個(gè)就是由于無(wú)線供電的問(wèn)題,上面的最小系統(tǒng)的某些東西選型一定要注意,尤其是發(fā)光二級(jí)管的選擇,當(dāng)然如果無(wú)線供電調(diào)的很好就不用考慮這些了,還有一點(diǎn)就是千萬(wàn)不能用那種三色七彩閃爍的那種,只要用一個(gè)就會(huì)出問(wèn)題,但是我現(xiàn)在還沒(méi)有找到原因,可能是我那個(gè)東西得位置放置的不合理吧,等以后慢慢研究...
軟件部分:
如果只想顯示幾個(gè)字那很簡(jiǎn)單,要是想弄其他的,有點(diǎn)難度,所以對(duì)于初級(jí)版的來(lái)說(shuō),我這個(gè)就簡(jiǎn)單的讓它顯示點(diǎn)自吧,
平面字程序:
void main(void)
{
uint i=0,j=0 ;
P1=0XFF;
P2=0XFF;
P3=0XFF;
//主程序中只檢測(cè)對(duì)管
while(1)
{
if(KEY==0) //紅外接收管 判斷起始位
{
j++;
if(j>320) //根據(jù)顯示的字?jǐn)?shù)定義改數(shù)值320/16=20個(gè)字 顯示完20個(gè)字后 重新開(kāi)始
{
j=0 ;
}
for(i=j;i<96+j;i++) //每轉(zhuǎn)一圈 前進(jìn)一列 這里定義一圈中同時(shí)顯示96/16=6個(gè)字,
{
P1=love[i*2]; //字幕數(shù)據(jù)低位送顯示
P2=love[i*2+1]; //字幕數(shù)據(jù)高位送顯示
DelayUs(210);//延時(shí)讓LED亮起來(lái) 每列延時(shí)的時(shí)間
P1=0XFF;
P2=0XFF;
}
}
}
}
這里還有個(gè)小插曲,就是字剛開(kāi)始的大小問(wèn)題,其實(shí)解決這個(gè)問(wèn)題很簡(jiǎn)單,有些人用軟件解決,但是我比較喜歡用硬件,因?yàn)槭∈?,在電機(jī)的一段串幾個(gè)二極管就好了。
評(píng)論