電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>制作陌生人事物幫助我板

制作陌生人事物幫助我板

2022-12-12 | zip | 0.01 MB | 次下載 | 免費(fèi)

資料介紹

描述

萬(wàn)圣節(jié)快樂(lè)!今天我們本著萬(wàn)圣節(jié)的精神,將學(xué)習(xí)一個(gè)教程來(lái)制作一個(gè)陌生人事物“幫助我”板。

您需要的零件:

  • 9V電池
  • 夏普

Elegoo Uno R3 完整入門(mén)套件非常適合此用途,因?yàn)樗?4 種不同的 LED 顏色。幸運(yùn)的是,我周圍還有一些其他顏色的 LED,這樣我就可以為項(xiàng)目添加更多變化。

原理圖

?
poYBAGOSyUSAQNeEAAAvb1iLv5s048.png
?

為了使用更少的 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)在我們有了要使用的電路,第一步是拿起硬紙板或硬紙板并布置字母表。確保事先在一張紙上試一試,這樣你才能得到正確的字母間距和大小

?
pYYBAGOSyUqAHcvWAAAepD0bI8s657.jpg
?

第2步

接下來(lái)我們將在字母下方鉆孔。盡量讓這些間隔開(kāi),以便 LED 引線可以輕松插入孔中。

?
poYBAGOSyU2AZxiJAAAiWgq3ptQ427.jpg
?

步驟 3

鉆完所有孔后,就可以插入所有 LED 了。我選擇嘗試讓 LED 隨機(jī)。將它們?nèi)坎迦胂嗤臉O性方向,這樣更容易接線。我在左側(cè)插入了每個(gè)帶有長(zhǎng)引線的 LED。在查看原理圖時(shí),這使得 LED 接線變得非常容易。

?
poYBAGOSyVGAc3dNAAAlPYOYZ-Q447.jpg
?

第4步

現(xiàn)在是時(shí)候開(kāi)始焊接了。您需要將電路板翻轉(zhuǎn)到背面。確保執(zhí)行此操作時(shí) LED 不會(huì)掉落。當(dāng)我將它翻轉(zhuǎn)到背面時(shí),我通過(guò)將另一塊芯片板放在 LED 的頂部來(lái)做到這一點(diǎn)。

?
?
?
?
pYYBAGOSyVSAd-ufAAAptx2nu-M889.jpg
?
1 / 2
?

步驟 5

現(xiàn)在繼續(xù)添加你的 Arduino,9V 電池并將所有東西連接到適當(dāng)?shù)囊_。還可以使用電工膠帶確保沒(méi)有短路。我把我的放在 LED 的引線和 Arduino 的背面。然后我使用電工膠帶將 9V 電池和 Arduino 固定到電路板背面。

?
?
?
?
pYYBAGOSyViAV95xAAA6pIPG6N4971.jpg
?
1 / 2
?

第 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)論的更多更新!


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評(píng)估板參考手冊(cè)
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開(kāi)發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊(cè)
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)