旋轉led,記得第一次接觸的時候是在半年前的一個視頻,當時什么都不知道,為何這樣顯示呢?就是想不通,后來買了一個套件,做出來了,也是想不通,其實那個套件不用編程序,有一個可以直接生成.HEX文件,所以對于 這種懶于編程序的人來說,是一個不錯的選擇,可是后來,在度娘不斷的開導與幫助下,我終于能自己編一個小程序了,度娘給予了我極大的幫助,她教會了我許多,在此感謝一下我偉大的度娘,先說一下本次歷時很久,頗具傳奇的旋轉led吧。
硬件部分:
(1)底座供電,采用通用的無線供電技術,別小瞧這個東西,雖然電路很簡單,可是不是很好調啊,這個破東西浪費了我數日不吃不喝的精力,平時看網上他們調的都很好,供電也很穩定,為啥我這個就問題重重呢?真是特娘的無語,電壓值先從0.8v升到1.3v,這個升壓是我調了一下三極管的基極電壓值,然后又從1.3v升至1.8,這是我換了一個三極管,可是這個電壓還不能是單片機工作起來,怎么辦,此時我的腦袋里閃現了華仔的那個半波與全波問題了,我換了一個整流橋,結果升至3.3v了,雖然這個電路產生的電流呈現三角波,按照常理,我這個用個半波就夠了,但是我這個真的不可以,雖然此時的電壓是3.3v但是及其的不穩定,也就是說單片機總是重啟,不能連續的工作,就在此時,我把供電的電壓改變成了12v,原來是5v供電,這個結果很明顯,單片機工作了,記得那天的這個時候已經熄燈了,可是晚上我左思右想,想了許久,終于想出來了,把電容改變一下(記得第二天我和別人吹,我的腦袋就是一個多功能的示波器),結果成功了,現在5v供電電壓值一般在3.8v以上,這時我終于可以組裝測試了。
(2)最小系統,這個很簡單,但是由于我對于我的每一件作品要求比較高,所以我這個東西焊的時間也比較長,還有一個就是由于無線供電的問題,上面的最小系統的某些東西選型一定要注意,尤其是發光二級管的選擇,當然如果無線供電調的很好就不用考慮這些了,還有一點就是千萬不能用那種三色七彩閃爍的那種,只要用一個就會出問題,但是我現在還沒有找到原因,可能是我那個東西得位置放置的不合理吧,等以后慢慢研究...
軟件部分:
如果只想顯示幾個字那很簡單,要是想弄其他的,有點難度,所以對于初級版的來說,我這個就簡單的讓它顯示點自吧,
平面字程序:
void main(void)
{
uint i=0,j=0 ;
P1=0XFF;
P2=0XFF;
P3=0XFF;
//主程序中只檢測對管
while(1)
{
if(KEY==0) //紅外接收管 判斷起始位
{
j++;
if(j>320) //根據顯示的字數定義改數值320/16=20個字 顯示完20個字后 重新開始
{
j=0 ;
}
for(i=j;i<96+j;i++) //每轉一圈 前進一列 這里定義一圈中同時顯示96/16=6個字,
{
P1=love[i*2]; //字幕數據低位送顯示
P2=love[i*2+1]; //字幕數據高位送顯示
DelayUs(210);//延時讓LED亮起來 每列延時的時間
P1=0XFF;
P2=0XFF;
}
}
}
}
這里還有個小插曲,就是字剛開始的大小問題,其實解決這個問題很簡單,有些人用軟件解決,但是我比較喜歡用硬件,因為省事,在電機的一段串幾個二極管就好了。
下面是我本次旋轉了的的圖片和視頻