|
用單片機和LED燈珠DIY條碼閃燈-單燈閃條碼-在鏡頭前會產(chǎn)生條形碼的LED閃燈-全球首發(fā)!
LED頻閃燈照射手機攝像頭會出現(xiàn)條紋,利用此原理現(xiàn)象,通過單片機控制LED的高速亮滅再照射攝像頭以出現(xiàn)條形碼,從此可被條碼掃描軟件識別出,可設置輸出頻率對不同幀數(shù)的攝像頭進行識別。
只需一片STC系列單片機任意型號和1顆高亮LED即可制作完成,你值得嘗試!
掃不出的需要調(diào)制掃描角度、延遲時間、晶振頻率、攝像頭、LED和掃碼軟件,最后更換成大功率LED燈板或燈珠再加入電機驅(qū)動模塊或MOS管等IO口控制大功率負載高速通斷開關模塊即可。
源碼免費公開使用,用Keil編譯后燒寫到C51單片機內(nèi)即可:
- #include <stc15f104e.h> //定義頭文件stc15f104e.h
- #include<intrins.h> //定義頭文件intrins.h
- sbit led = P3 ^ 3; //LED對應I/O口,可直接修改
- unsigned char k=0; //條形碼位數(shù)據(jù)延遲持續(xù)時間
- bit l=0;//延遲時間增加或減少
- unsigned char code n[20]={ //條形碼數(shù)據(jù),從低到高位輸出,通過轉(zhuǎn)換軟件生成
- 0xA4,0xAD,0x95,0xB5,0xA6,0x5A,0x59,0x2B,0x5B,0x4B,0xB3,0x6A,0x2D,0xAD,0xA6,0x56,
- 0x56,0xD3,0xD2,0x16
- };
- bit r(unsigned char a){ //讀條形碼數(shù)據(jù),參數(shù)取值0~255,最多256位條形碼數(shù)據(jù)(共32字節(jié))
- unsigned char b=a>>3;//獲得這個位是在第幾字節(jié)里的
- unsigned char c=a&7; //獲得這個位是該字節(jié)的第幾位
- return (1<<c&n[b])>>c; //通過移位計算并且返回位數(shù)據(jù)
- }
- void s(bit s){ //設置LED亮滅狀態(tài)并且包含延遲
- unsigned char i=0; //延遲時間計數(shù)變量
- for(i=0;i<k;i++);//延遲時間計數(shù)
- led=s; //將亮滅數(shù)據(jù)賦值給LED
- }
- void main(){ //主函數(shù)
- unsigned char j=0; //條形碼數(shù)據(jù)采樣位置計數(shù)變量
- while(1){ //進入死循環(huán)
- if(l==0){ //加長時間
- k++; //延遲時間加1
- } else { //減少時間
- k--; //延遲時間減1
- }
- for(j=0;j<=160;j++){ //點亮LED一些時間
- s(0); //LED點亮
- }
- for(j=0;j<=160;j++){ //循環(huán)計數(shù),條形碼多少位這里改多少
- s(r(j)); //輸出條形碼位數(shù)據(jù)給LED
- }
- if(k==0x00||k==0xFF){ //延遲時間加滿或者減零
- l=~l; //延遲時間增減取反
- }
- }
- }
復制代碼
|
評分
-
查看全部評分
|