衡阳派盒市场营销有限公司

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>電子資料>制作陌生人事物幫助我板

制作陌生人事物幫助我板

2022-12-12 | zip | 0.01 MB | 次下載 | 免費

資料介紹

描述

萬圣節快樂!今天我們本著萬圣節的精神,將學習一個教程來制作一個陌生人事物“幫助我”板。

您需要的零件:

  • 9V電池
  • 夏普

Elegoo Uno R3 完整入門套件非常適合此用途,因為它包含 4 種不同的 LED 顏色。幸運的是,我周圍還有一些其他顏色的 LED,這樣我就可以為項目添加更多變化。

原理圖

?
poYBAGOSyUSAQNeEAAAvb1iLv5s048.png
?

為了使用更少的 I/O 引腳,我們將使用 5×5 矩陣。這將覆蓋字母 AY。對于 Z 它將有自己的引腳。通過查看上面的示意圖,您可以看到,為了打開一個 LED,該行將變為高電平,而源將被設置為低電平。例如。要打開 A,PIN 2 將設置為高電平,而 Pin 8 將設置為低電平。這只會打開 A。將一個 ROW 設置為高電平而將其他 ROWS 設置為 LOW 以及將一列設置為低電平而將其他列設置為 HIGH 的每種組合一次只會點亮一個 LED。這使用 10 個引腳 + 1 來完成所有 26 個字母。與必須為每個 LED 配備一個 I/O 相比,這使用的 I/O 引腳要少得多。

接下來要決定的是源電阻(R1-R6)。由于有不同的 LED,因此會有不同的電壓降。LED 兩端的電壓范圍為 1.5V 至 3.5V。因為這應該看起來很嚇人,所以我們并不真正關心某些 LED 可能看起來更亮而其他 LED 可能看起來更暗。我們唯一關心的是確保我們不超過 Arduino 引腳可以提供的最大電流 20mA。我最終為這個項目挑選了 250 歐姆的電阻器這為我們提供了 (5V-1.5V)/250 Ohm 至 (5V-3.5V)/250Ohms 或 14mA – 6mA 的范圍。這沒關系,因為我們不會超過 I/O 引腳的最大 20mA 要求。

步驟1

現在我們有了要使用的電路,第一步是拿起硬紙板或硬紙板并布置字母表。確保事先在一張紙上試一試,這樣你才能得到正確的字母間距和大小

?
pYYBAGOSyUqAHcvWAAAepD0bI8s657.jpg
?

第2步

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

?
poYBAGOSyU2AZxiJAAAiWgq3ptQ427.jpg
?

步驟 3

鉆完所有孔后,就可以插入所有 LED 了。我選擇嘗試讓 LED 隨機。將它們全部插入相同的極性方向,這樣更容易接線。我在左側插入了每個帶有長引線的 LED。在查看原理圖時,這使得 LED 接線變得非常容易。

?
poYBAGOSyVGAc3dNAAAlPYOYZ-Q447.jpg
?

第4步

現在是時候開始焊接了。您需要將電路板翻轉到背面。確保執行此操作時 LED 不會掉落。當我將它翻轉到背面時,我通過將另一塊芯片板放在 LED 的頂部來做到這一點。

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

步驟 5

現在繼續添加你的 Arduino,9V 電池并將所有東西連接到適當的引腳。還可以使用電工膠帶確保沒有短路。我把我的放在 LED 的引線和 Arduino 的背面。然后我使用電工膠帶將 9V 電池和 Arduino 固定到電路板背面。

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

第 6 步 – 編碼

現在我們將開始編碼。您可以通過使用 digitalWrite() 進行設置來測試您的電路和布線,并將所有行設置為低,除了一列,然后將所有列設置為高,除了一列,并確保相應的 LED 為組合打開。

我們將不使用 digitalWrite(),而是直接進入 ATMEGA 微型庫,通過將PORTD 和 PORTB設置為我們想要打開和關閉的數字 I/O來打開和關閉引腳。這將使編程更容易。PORTD 控制數字 I/O 引腳 0-7,而 PORTB 控制引腳 8-13。例如:如果您想打開引腳 7 并關閉所有其他引腳,只需設置 PORTD = 10000000。

首先,我們將創建一個結構來定義每個字母的端口配置。

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 的結構。接下來,我們將布置表格,根據我們連接的 5×5 矩陣將每個字母定義為一個端口。這將是 letter[] 數組。

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
};

現在已經使用我們上面創建的結構為每個字母建立了引用 PIN 輸出的表。

接下來我們將轉到代碼的設置部分。每個引腳都需要設置為輸出

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);
}

現在已經設置了代碼并創建了表,我們將設置一些函數。該程序的主要功能是 runHelpme() 函數。這將使董事會拼寫 HELP ME。這是我們試圖表明“顛倒”中的某個人可能正在嘗試聯系我們的嘗試。

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);
  }

這使用了我們創建的結構,并將減去我們想要的字母減去 'a' ,這是表中的第一個字母。這將通過給我們我們創建的表的想要的“字母”編號來實現。設置字母后,我們延遲一秒鐘,然后打開下一個字母。

下一個我們要寫的函數是一些花哨的函數,讓棋盤看起來有點怪異。第一個 flair 函數將是一個 runRandom() 函數,它將隨機選擇字母并將它們打開隨機次數。

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));
  }
}

這將運行 15 個隨機字母。我們將 x 設置為 0-25 之間的隨機數,它選擇 26 個字母之一,然后等待 40 毫秒到 200 毫秒之間的三個隨機時間。

我們要編寫的最后一個函數是 flickerRandom() 函數。這將閃爍一個隨機函數。我認為這無疑增加了一個很好的感覺,即董事會正在發生一些奇怪的事情。

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 毫秒的閃爍時間之間的任何位置閃爍 5 個隨機字母。

現在所有的函數都寫好了,是時候把所有的主循環代碼放在一起了。

void loop() {
  flickerRandom();
  delay(2000);
  runHelpme();
  delay(2000);
  flickerRandom();
  flickerRandom();
  runRandom();
}

這將首先啟動閃爍例程,延遲 2 秒,顯示我們的“幫助我”例程,等待 2 秒,再次連續閃爍 2 次,然后運行隨機例程。這一切都表明陌生人的事情板肯定有一些奇怪的事情正在發生,如果你觀察得足夠近,有人可以看到它在說“幫助我”。很明顯,來自 UPSIDE DOWN 的人正試圖聯系我們!

?

您可以在此處獲得完整的 BreakoutBros Stranger Things 代碼

請確保您訂閱以查看有關項目、教程和評論的更多更新!


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

評論

查看更多

下載排行

本周

  1. 1A7159和A7139射頻芯片的資料免費下載
  2. 0.20 MB   |  55次下載  |  5 積分
  3. 2PIC12F629/675 數據手冊免費下載
  4. 2.38 MB   |  36次下載  |  5 積分
  5. 3PIC16F716 數據手冊免費下載
  6. 2.35 MB   |  18次下載  |  5 積分
  7. 4dsPIC33EDV64MC205電機控制開發板用戶指南
  8. 5.78MB   |  8次下載  |  免費
  9. 5STC15系列常用寄存器匯總免費下載
  10. 1.60 MB   |  7次下載  |  5 積分
  11. 6模擬電路仿真實現
  12. 2.94MB   |  4次下載  |  免費
  13. 7PCB圖繪制實例操作
  14. 2.92MB   |  2次下載  |  免費
  15. 8零死角玩轉STM32F103—指南者
  16. 26.78 MB   |  1次下載  |  1 積分

本月

  1. 1ADI高性能電源管理解決方案
  2. 2.43 MB   |  452次下載  |  免費
  3. 2免費開源CC3D飛控資料(電路圖&PCB源文件、BOM、
  4. 5.67 MB   |  141次下載  |  1 積分
  5. 3基于STM32單片機智能手環心率計步器體溫顯示設計
  6. 0.10 MB   |  137次下載  |  免費
  7. 4A7159和A7139射頻芯片的資料免費下載
  8. 0.20 MB   |  55次下載  |  5 積分
  9. 5PIC12F629/675 數據手冊免費下載
  10. 2.38 MB   |  36次下載  |  5 積分
  11. 6如何正確測試電源的紋波
  12. 0.36 MB   |  19次下載  |  免費
  13. 7PIC16F716 數據手冊免費下載
  14. 2.35 MB   |  18次下載  |  5 積分
  15. 8Q/SQR E8-4-2024乘用車電子電器零部件及子系統EMC試驗方法及要求
  16. 1.97 MB   |  8次下載  |  10 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935121次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
  4. 1.48MB  |  420062次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233088次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191367次下載  |  10 積分
  9. 5十天學會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183335次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81581次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73810次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65988次下載  |  10 積分
利来百家乐官网的玩法技巧和规则 | 澳门百家乐官网网40125| 福布斯百家乐的玩法技巧和规则| 百家乐官网投注综合分析法| 木星百家乐的玩法技巧和规则| 百家乐官网庄6点| 百家乐官网怎么打啊| 综合百家乐博彩论坛| 百家乐官网游戏作弊| 和记娱乐城| 网上百家乐试玩网址| 长城百家乐游戏| 百家乐官网路子分| 百家乐官网平台注册送彩金| tt娱乐城开户| 大发888怎么刷钱| 网上百家乐的技巧| 百家乐官网下注技巧| 新澳门百家乐官网软件下载| 大发888 dafa888 gzsums| 长沙百家乐的玩法技巧和规则| 网上百家乐注册彩金| 百家乐发牌铲| 真人百家乐官网博弈| 澳门百家乐官网游戏说明书| 百家乐官网攻略投注法| 申城棋牌官网| 棋牌游戏代理| 乐都县| 百家乐官网视频游戏网站| 百家乐官网规则博彩正网| 大发888亚付宝充值| 德州扑克外挂| 阳谷县| 现场百家乐官网玩法| 华人百家乐官网博彩论| 做生意容易成功的八字| 缅甸百家乐网上投注| 去澳门百家乐的玩法技巧和规则| 百家乐最好的投注方法| 百家乐牌九|