資料介紹
描述
萬(wàn)圣節(jié)快樂(lè)!今天我們本著萬(wàn)圣節(jié)的精神,將學(xué)習(xí)一個(gè)教程來(lái)制作一個(gè)陌生人事物“幫助我”板。
您需要的零件:
- 發(fā)光二極管
- 硬紙板或刨花板
- 9V電池
- 夏普
Elegoo Uno R3 完整入門(mén)套件非常適合此用途,因?yàn)樗?4 種不同的 LED 顏色。幸運(yùn)的是,我周圍還有一些其他顏色的 LED,這樣我就可以為項(xiàng)目添加更多變化。
原理圖
為了使用更少的 I/O 引腳,我們將使用 5×5 矩陣。這將覆蓋字母 AY。對(duì)于 Z 它將有自己的引腳。通過(guò)查看上面的示意圖,您可以看到,為了打開(kāi)一個(gè) LED,該行將變?yōu)楦唠娖剑磳⒈辉O(shè)置為低電平。例如。要打開(kāi) A,PIN 2 將設(shè)置為高電平,而 Pin 8 將設(shè)置為低電平。這只會(huì)打開(kāi) A。將一個(gè) ROW 設(shè)置為高電平而將其他 ROWS 設(shè)置為 LOW 以及將一列設(shè)置為低電平而將其他列設(shè)置為 HIGH 的每種組合一次只會(huì)點(diǎn)亮一個(gè) LED。這使用 10 個(gè)引腳 + 1 來(lái)完成所有 26 個(gè)字母。與必須為每個(gè) LED 配備一個(gè) I/O 相比,這使用的 I/O 引腳要少得多。
接下來(lái)要決定的是源電阻(R1-R6)。由于有不同的 LED,因此會(huì)有不同的電壓降。LED 兩端的電壓范圍為 1.5V 至 3.5V。因?yàn)檫@應(yīng)該看起來(lái)很嚇人,所以我們并不真正關(guān)心某些 LED 可能看起來(lái)更亮而其他 LED 可能看起來(lái)更暗。我們唯一關(guān)心的是確保我們不超過(guò) Arduino 引腳可以提供的最大電流 20mA。我最終為這個(gè)項(xiàng)目挑選了 250 歐姆的電阻器。這為我們提供了 (5V-1.5V)/250 Ohm 至 (5V-3.5V)/250Ohms 或 14mA – 6mA 的范圍。這沒(méi)關(guān)系,因?yàn)槲覀儾粫?huì)超過(guò) I/O 引腳的最大 20mA 要求。
步驟1
現(xiàn)在我們有了要使用的電路,第一步是拿起硬紙板或硬紙板并布置字母表。確保事先在一張紙上試一試,這樣你才能得到正確的字母間距和大小
第2步
接下來(lái)我們將在字母下方鉆孔。盡量讓這些間隔開(kāi),以便 LED 引線可以輕松插入孔中。
步驟 3
鉆完所有孔后,就可以插入所有 LED 了。我選擇嘗試讓 LED 隨機(jī)。將它們?nèi)坎迦胂嗤臉O性方向,這樣更容易接線。我在左側(cè)插入了每個(gè)帶有長(zhǎng)引線的 LED。在查看原理圖時(shí),這使得 LED 接線變得非常容易。
第4步
現(xiàn)在是時(shí)候開(kāi)始焊接了。您需要將電路板翻轉(zhuǎn)到背面。確保執(zhí)行此操作時(shí) LED 不會(huì)掉落。當(dāng)我將它翻轉(zhuǎn)到背面時(shí),我通過(guò)將另一塊芯片板放在 LED 的頂部來(lái)做到這一點(diǎn)。
步驟 5
現(xiàn)在繼續(xù)添加你的 Arduino,9V 電池并將所有東西連接到適當(dāng)?shù)囊_。還可以使用電工膠帶確保沒(méi)有短路。我把我的放在 LED 的引線和 Arduino 的背面。然后我使用電工膠帶將 9V 電池和 Arduino 固定到電路板背面。
第 6 步 – 編碼
現(xiàn)在我們將開(kāi)始編碼。您可以通過(guò)使用 digitalWrite() 進(jìn)行設(shè)置來(lái)測(cè)試您的電路和布線,并將所有行設(shè)置為低,除了一列,然后將所有列設(shè)置為高,除了一列,并確保相應(yīng)的 LED 為組合打開(kāi)。
我們將不使用 digitalWrite(),而是直接進(jìn)入 ATMEGA 微型庫(kù),通過(guò)將PORTD 和 PORTB設(shè)置為我們想要打開(kāi)和關(guān)閉的數(shù)字 I/O來(lái)打開(kāi)和關(guān)閉引腳。這將使編程更容易。PORTD 控制數(shù)字 I/O 引腳 0-7,而 PORTB 控制引腳 8-13。例如:如果您想打開(kāi)引腳 7 并關(guān)閉所有其他引腳,只需設(shè)置 PORTD = 10000000。
首先,我們將創(chuàng)建一個(gè)結(jié)構(gòu)來(lái)定義每個(gè)字母的端口配置。
typedef struct // Create a structure to convert Binary of the PORTs for the corresponding Letter
{
byte portd;
byte portb;
}letter_data_t;
我們將命名為 letter_data_t 的結(jié)構(gòu)。接下來(lái),我們將布置表格,根據(jù)我們連接的 5×5 矩陣將每個(gè)字母定義為一個(gè)端口。這將是 letter[] 數(shù)組。
const letter_data_t letter[] =
{
{B00000100,B11111110}, //A
{B00000100,B11111101}, //B
{B00000100,B11111011}, //C
{B00000100,B11110111}, //D
{B00000100,B11101111}, //E
{B00001000,B11111110}, //F
{B00001000,B11111101}, //G
{B00001000,B11111011}, //H
{B00001000,B11110111}, //I
{B00001000,B11101111}, //J
{B00010000,B11111110}, //K
{B00010000,B11111101}, //L
{B00010000,B11111011}, //M
{B00010000,B11110111}, //N
{B00010000,B11101111}, //O
{B00100000,B11111110}, //P
{B00100000,B11111101}, //Q
{B00100000,B11111011}, //R
{B00100000,B11110111}, //S
{B00100000,B11101111}, //T
{B01000000,B11111110}, //U
{B01000000,B11111101}, //V
{B01000000,B11111011}, //W
{B01000000,B11110111}, //X
{B01000000,B11101111}, //Y
{B10000000,B11111111}, //Z
{B00000000,B00000000} //26 = 0ff
};
現(xiàn)在已經(jīng)使用我們上面創(chuàng)建的結(jié)構(gòu)為每個(gè)字母建立了引用 PIN 輸出的表。
接下來(lái)我們將轉(zhuǎn)到代碼的設(shè)置部分。每個(gè)引腳都需要設(shè)置為輸出
void setup() {
// Setup each pin used as an output
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);
}
現(xiàn)在已經(jīng)設(shè)置了代碼并創(chuàng)建了表,我們將設(shè)置一些函數(shù)。該程序的主要功能是 runHelpme() 函數(shù)。這將使董事會(huì)拼寫(xiě) HELP ME。這是我們?cè)噲D表明“顛倒”中的某個(gè)人可能正在嘗試聯(lián)系我們的嘗試。
void runHelpme()
{
PORTD = letter['h'-'a'].portd;
PORTB = letter['h'-'a'].portb;
delay(1000);
PORTD = letter['e'-'a'].portd;
PORTB = letter['e'-'a'].portb;
delay(1000);
PORTD = letter['l'-'a'].portd;
PORTB = letter['l'-'a'].portb;
delay(1000);
PORTD = letter['p'-'a'].portd;
PORTB = letter['p'-'a'].portb;
delay(1000);
PORTD = letter[26].portd;
PORTB = letter[26].portb;
delay(1000);
PORTD = letter['m'-'a'].portd;
PORTB = letter['m'-'a'].portb;
delay(1000);
PORTD = letter['e'-'a'].portd;
PORTB = letter['e'-'a'].portb;
delay(1000);
PORTD = letter[26].portd; //Turn off the LEDs
PORTB = letter[26].portb; //Turn off the LEDs
delay(1000);
}
這使用了我們創(chuàng)建的結(jié)構(gòu),并將減去我們想要的字母減去 'a' ,這是表中的第一個(gè)字母。這將通過(guò)給我們我們創(chuàng)建的表的想要的“字母”編號(hào)來(lái)實(shí)現(xiàn)。設(shè)置字母后,我們延遲一秒鐘,然后打開(kāi)下一個(gè)字母。
下一個(gè)我們要寫(xiě)的函數(shù)是一些花哨的函數(shù),讓棋盤(pán)看起來(lái)有點(diǎn)怪異。第一個(gè) flair 函數(shù)將是一個(gè) runRandom() 函數(shù),它將隨機(jī)選擇字母并將它們打開(kāi)隨機(jī)次數(shù)。
void runRandom()
{
for(int i = 0; i<=15; i++)
{
int x = random(0,25);
PORTD = letter[x].portd;
PORTB = letter[x].portb;
delay(random(40,200));
delay(random(40,200));
delay(random(40,200));
}
}
這將運(yùn)行 15 個(gè)隨機(jī)字母。我們將 x 設(shè)置為 0-25 之間的隨機(jī)數(shù),它選擇 26 個(gè)字母之一,然后等待 40 毫秒到 200 毫秒之間的三個(gè)隨機(jī)時(shí)間。
我們要編寫(xiě)的最后一個(gè)函數(shù)是 flickerRandom() 函數(shù)。這將閃爍一個(gè)隨機(jī)函數(shù)。我認(rèn)為這無(wú)疑增加了一個(gè)很好的感覺(jué),即董事會(huì)正在發(fā)生一些奇怪的事情。
void flickerRandom()
{
int x = random(0,25);
for(int i = 0; i<=5; i++)
{
PORTD = letter[x].portd;
PORTB = letter[x].portb;
delay(random(40,500));
PORTD = letter[26].portd;
PORTB = letter[26].portb;
delay(random(40,500));
}
}
這將在 40 毫秒至 500 毫秒的閃爍時(shí)間之間的任何位置閃爍 5 個(gè)隨機(jī)字母。
現(xiàn)在所有的函數(shù)都寫(xiě)好了,是時(shí)候把所有的主循環(huán)代碼放在一起了。
void loop() {
flickerRandom();
delay(2000);
runHelpme();
delay(2000);
flickerRandom();
flickerRandom();
runRandom();
}
這將首先啟動(dòng)閃爍例程,延遲 2 秒,顯示我們的“幫助我”例程,等待 2 秒,再次連續(xù)閃爍 2 次,然后運(yùn)行隨機(jī)例程。這一切都表明陌生人的事情板肯定有一些奇怪的事情正在發(fā)生,如果你觀察得足夠近,有人可以看到它在說(shuō)“幫助我”。很明顯,來(lái)自 UPSIDE DOWN 的人正試圖聯(lián)系我們!
您可以在此處獲得完整的 BreakoutBros Stranger Things 代碼。
請(qǐng)確保您訂閱以查看有關(guān)項(xiàng)目、教程和評(píng)論的更多更新!
- 陌生人閃爍消息開(kāi)源硬件
- pathoy教程-陌生的metaclass總結(jié)
- 單片機(jī)數(shù)據(jù)采集系統(tǒng)PCB板制作
- 對(duì)比兩種制作電路板的方法,哪個(gè)更好?資料下載
- Genesis2000線路制作教程 genesis2000軟件自學(xué) 0次下載
- 電路板的制作過(guò)程和使用的材料資料總結(jié) 0次下載
- 印制電路板的制作教程詳細(xì)資料概述 0次下載
- 如何設(shè)計(jì)java web人事管理系統(tǒng)的資料說(shuō)明 13次下載
- 2017年江西省大學(xué)生電子設(shè)計(jì)制作現(xiàn)場(chǎng)(28屆)賽題 22次下載
- pcb四層板制作 0次下載
- 多層板與雙層板的制作 0次下載
- 電路板的設(shè)計(jì)與制作總結(jié) 21次下載
- 揭開(kāi)來(lái)電顯示修改面紗 575次下載
- 軍事物流系統(tǒng)架構(gòu)及其調(diào)度決策
- pcb板圖制作軟件 0次下載
- 基于歐智通V200Z-R開(kāi)發(fā)板的智能門(mén)鈴設(shè)計(jì) 2235次閱讀
- 印制電路板的制作及檢驗(yàn) 9227次閱讀
- PCB板加工制作的考慮因素 2156次閱讀
- 手機(jī)電路板的制作步驟 2w次閱讀
- 感光電路板的使用方法和制作步驟解析 2407次閱讀
- 電路板制作原理與結(jié)構(gòu)!自制電路板最常用的五種方法比較 2.5w次閱讀
- led線路板制作流程 4233次閱讀
- 熱轉(zhuǎn)印電路板的制作方法 5975次閱讀
- 電路板的制作案例分享 5160次閱讀
- Protel99制作PCB板時(shí)各層各代表什么含義? 8754次閱讀
- 動(dòng)態(tài)紋理合成新方法,由“靜”至“動(dòng)” 4218次閱讀
- 太陽(yáng)能板的制作方法(三種太陽(yáng)能板制作方法) 18.9w次閱讀
- 人臉識(shí)別技術(shù)原理分析 1.7w次閱讀
- 雙層PCB板制作過(guò)程與雙層PCB板制作工藝(干貨分享) 1w次閱讀
- 愛(ài)車又無(wú)法啟動(dòng)?解密蓄電池那些事!怎么選擇蓄電池?怎么延長(zhǎng)蓄電池的生命周期? 2023次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開(kāi)發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多