步驟1:收集零件
首先,請檢查您是否具備以下所有條件:
從SparkFun發明家的工具包(或您最喜歡的供應商):
(1)Photocell,SparkFun SEN-09088, $ 1.50
(1)SN74HC595N移位寄存器16-DIP,SparkFun COM-00733,$ 1.50
(1)IC傳感器溫度,SparkFun SEN-10988,$ 1.50
(1)壓電揚聲器,SparkFun COM-07950,$ 1.95
(1)TRIMMER 10K OHM 0.2W PC PIN,SparkFun COM-09806,$ 0.95
(1)迷你按鈕,SparkFun COM-00097、0.35美元
(2)瞬時按鈕開關-12mm方形,SparkFun COM-09190、1.00美元
(1)普通陰極RGB LED 5或10mm,SparkFun COM-11120,$ 0.95
(8)彩色5mm LED,COM-12062,$ 2.95
(12)330歐姆1/6W電阻,SparkFun COM-11507,$ 0.95/ea
(4)10K 1/6W電阻,SparkFun COM-08374,1.00美元
(1)二極管SparkFun COM-08588,0.15美元
(1)NPN晶體管,COM-12852,0.50美元
其他項目:
(1)PCB板,http://oshpark.com/shared_projects/lPWpxju2,三個副本$ 22.10
(1)40針分離頭,SparkFun PRT-00116,$ 1.50
(2)CONN HEADER FEMALE 2POS。 1“ TIN,Digikey S7000-ND,$ 0.68
(1)CONN女性4POS .100” R/A金,Digikey S5479-ND,$ 0.74
(1)CONN HEADER 4POS .100 R/A 30AU,Digikey 609-3312-ND,$ 0.39
請記住,如果您只是想在Tindie.com上購買套件,我已經做了所有的辛苦工作。/p》
第2步:輕拍,開始動手
我們將假設您有一些套件-建筑經驗。如果您需要焊接方面的幫助,請訪問www.sparkfun.com/tutorials/213進行刷涂。
組裝順序主要取決于偏好。如果您沒有幫手或虎鉗,通常我會從最低的高度到最高的高度,這樣當木板在桌子上翻轉時,零件就會留在原處。
電阻:
strong》
讓我們從電阻器入手,因為它們是最豐富,最低的座墊,而且最容易焊接。它們具有更高的耐熱性,將使您有機會熟練掌握技術。它們也沒有極性,因此您可以以任何一種方式放置它們。
但是,如果您希望LED保持正確的亮度,則必須獲得正確的值。通常,我將330歐姆用于紅色和黃色,將180歐姆用于綠色和藍色。如有疑問,請檢查數據表中的正向電壓,然后在http://led.linear1.org/1led.wiz上計算5伏的正確電阻。其他組件的電阻值,例如I2C總線的10K歐姆,已在PCB上標出。
二極管和光電管:
現在,您已準備就緒,時間到了嘗試一些帶有極性的東西。在電路板中央上方的330歐姆電阻上方添加二極管,觀察PCB上的白線和二極管上的黑帶。這是電機晶體管的“反沖”二極管,因此,如果電機向后旋轉,電機將無法工作(它將繞過電機,可能會過熱。
光電管位于右下角
第3步:I2C標頭和移位寄存器
右側的strong》 I2C接頭連接器是可選的,可讓您將兩塊板連接在一起,或連接到Wii Nunchuk或Adafruit I2C LCD之類的另一個I2C設備。
移位寄存器允許我們僅使用Arduino的I/O引腳中的三個來控制八個LED。 是一種16針IC,必須以正確的方向插入才能正常工作,注意一端的凹口,這表明芯片的哪一側具有插腳,使該凹口與PCB上的輪廓匹配。在每個對角線的銷釘上,然后檢查座位。 仔細檢查方向,因為在焊接兩個以上的引腳后,將很難切換。相信我,我必須做多個以上的操作。
第4步:溫度傳感器和晶體管
溫度傳感器和晶體管一樣,除了標記不同。通過使用強光和放大鏡在臉上的標記來識別它們。您正在從諸如“ TMP36”之類的溫度IC和“ 2Nxxxx”之類的晶體管中查找。
溫度傳感器位于左上角,其平坦的一面朝向電路板的中心。這是一個模擬設備,其產生的電壓與溫度成正比。
NPN晶體管位于電路板的右上角,平面可能會也可能不指向電路板的中心,取決于您的制造。檢查數據手冊和上面的示意圖,以了解基極,集電極和發射極引腳的位置。晶體管是一個電子開關,可讓我們使用Arduino數字引腳可提供的小電流來控制需要200毫安的電機。另一方面,LED僅需要10毫安,因此可以直接通過數字引腳供電。
步驟5:按鈕和揚聲器
接下來是按鈕。有兩個輸入按鈕,可以使用12mm按鈕或較小的觸覺按鈕,以及重置設置按鈕。這些確實需要按一定的方向安裝,PCB孔要對齊以解決這一問題(不要彎曲插針以使其插入)。
接下來是揚聲器。有兩組孔。 SparkFun銷售的揚聲器的引線更靠近,并且具有極性。兩組孔相距90度,相距更遠,適合Adafruit銷售的沒有極性的PS1202揚聲器。
第6步:放光吧!或LED。
LED 的時間。您應該已經決定了顏色和電阻值,所以現在您只需要在正確的位置獲得正確的LED即可。 LED具有極性,較長的腳為正極。焊接每個LED的一只腳,然后檢查另一側的位置(如果只加熱一個焊點,則更容易復位!)
RGB 指示燈在左上角。 RGB有兩種類型:公共陰極,其中較長的引腳具有電源電壓,并且每種顏色都接地;以及公共陽極,其中較長的引腳具有電源電壓。地面。在這兩種情況下,更長的引線都會通過方形焊盤穿過孔。該板可用于通用陰極,該板由SparkFun套件提供,但如果您是從Adafruit獲得的,則可以很容易地對其進行修改。在電路板的下側,切割CC焊盤,然后用焊料橋接CA焊盤。用萬用表檢查兩者的連續性。注意:我已經留出足夠的空間使用10mm RGB LED代替標準的5mm。
第7步:測量電位-修剪電位器
電位器或“修剪鍋”位于左下角。電位計的引腳布置有幾種類型,SparkFun套件隨附一種可與面包板友好的裝置,一行中有3條0.1英寸間隔的引線。我還添加了偏置孔,用于安裝更常見且便宜的修整罐。
第8步:前往或進入-I/O頭
沒有足夠的空間來容納所有SparkFun套件組件,因此我添加了一些接頭,以幫助我們與外界連接。左側的2針母接頭將電動機連接到晶體管控制的數字輸出。右側的2針母接頭連接到模擬引腳和接地,以連接撓性傳感器等組件。使用一塊公接頭將其固定到位并在焊接時對齊。
用于連接到伺服,在電機接頭旁邊添加3針公接頭。
步驟9:最終熱加工-Arduino接頭
您需要焊接的最后一點是連接ct兩個8針和2個6針公頭,用于將屏蔽板連接到Arduino。我發現最簡單的方法是先將接頭連接器放在Arduino中,然后將屏蔽層覆蓋在引腳上,然后再將其焊接到位。
步驟10:啟動Sparkin
您應該已經注意到,現在所有的引腳分配都標記在了板的底部,并且可以以常規Arduino方式使用。在很多情況下,它們實際上與SparkFun Inventors Kit的演示草圖中使用的匹配。最多只需更改針腳號即可使用它們。
SparkFun Inventors套件指南:http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Kit 。..
SparkFun Inventors套件示例草圖:http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Kit 。..
將“ SIK指南代碼”文件夾放置在Arduino IDE“示例”目錄中:
PC:將“ SIK指南代碼”文件夾拖到C: program files Arduino-x examples
MAC:將“ SIK指南代碼”文件夾拖到Arduino-x/內容/資源/Java/示例
Linux:請參見http://www.arduino.cc/playground/Learning/Linux
啟動Arduino IDE;這些示例應該在文件/示例/SIK指南代碼
中可見
這是FunShield引腳分配:
A0 TRIM
A1 LIGHT
A2 TEMP
A3 ANALOG
A4 I2C-SDA
A5 I2C-SCL
D2移位寄存器數據
D4移位寄存器鎖存
D12移位寄存器時鐘
D6 RGB-BLUE
D9 RGB-紅色
D10 RGB-GREEN
D3馬達
D5伺服器
D7右按鈕
D8左按鈕
D11揚聲器
步驟11:FunShield庫
我為FunShield編寫了一個庫,以幫助您完成設置和管腳分配的工作。該庫包含演示草圖,幫助您入門。
步驟:
從以下位置下載zip文件:https://github.com/MakersBox/FunShield/archive/mas。 。.
解壓縮文件夾。
將“ FunShield-master FunShield libraries FunShield”文件夾移至素描本的“ library”文件夾。
重新啟動Arduino IDE。
示例草圖現在應顯示在以下位置:
[文件]-》 [示例]-》 [FunShield]
步驟12:ArduBlock
ArduBlock是與Arduino IDE集成的圖形化編程環境。這是一個用Java編寫的開源項目。
如果您尚未從以下位置下載zip文件:https://github.com/MakersBox/FunShield/archive/master.zip
將工具 文件夾移動到您的 sketchbook 文件夾中。
將 ArduBlockExamples 文件夾移至您的 sketchbook 文件夾。
重新啟動Arduino IDE。
從[工具]-》 [ArduBlock]啟動ArduBlock。
如果“ ArduBlock”選項不可見,請返回并檢查是否將其放在正確的位置。
實際的目錄結構應最終看起來像:。./sketchbook/tools/ArduBlockTool/tool/ardublock-FunShield.jar
如果仍然遇到問題,請在http://blog.ardublock.com/engetting-started-ardublockzhardublock/
打開中查看更詳細的說明。一個示例項目(您必須導航到 。./sketchbook/ArduBlockExamples 文件夾。
步驟13:組件集成示例
您已經完成了!我想剩下的就是為您朝正確的方向輕輕推。讓我們看一下名為“ FS_01_LED.ino”的示例草圖“:
首先,我們需要表明我們要使用FunShield庫,并實例化一個名為” fs“的FunShield對象:
// sets up and initialize FunShield
#include
#include // Require for I2C communication
FunShield fs; // Instanciate FunShield instance
幾個簡單的變量為我們提供幫助:
// variable declarations
int led = 0; // Can be any led from 0 to 7
int delayTime = 1000; // Delay time in milliseconds
由于FunShield庫可以處理所有設置,因此setup()函數可以為空。我通常會添加一些代碼,以查看通過consol進行的操作e:
void setup() {
Serial.begin(9600); // Setup serial communications for troubleshooting
Serial.println(“FS_01_LED.ino”);
}
現在進入主循環:
void loop(){
LED(led, HIGH); // turn LED on
delay(delayTime);
LED(led, LOW); // turn LED off
delay(delayTime);
}
您應該使用FunShield將其識別為基本的Arduino“眨眼”草圖。 LED()函數代替了 digitalWrite()。
讓我們進入一個 for循環,以便我們可以打開和關閉所有LED。
void loop(){
for(led=0; led《8; led++){
LED(led, HIGH); // turn LED on
delay(delayTime);
LED(led, LOW); // turn LED off
}
}
您可能想降低 delayTime 值,因此遍歷LED不需要花費整整8秒鐘的時間。
現在,當到達終點時,如何使LED反轉?可能是另一個 for循環?
void loop(){
for(led=0; led《8; led++){
LED(led, HIGH); // turn LED on
delay(delayTime);
LED(led, LOW); // turn LED off
}
for(led=6; led》0; led--){
LED(led, HIGH); // turn LED on
delay(delayTime);
LED(led, LOW); // turn LED off
}
}
注意我重新開始使用led#6,因為第一個for循環已經點亮了led#7。我也將第二個循環停在led#1處,因為另一個for循環也可以處理它。
如果我們想在燈光改變方向時添加一個可聽見的線索怎么辦?在這里,圖書館的美麗派上了用場。無需查找引腳號。只需調用 speaker()函數
void loop(){
for(led=0; led《8; led++){
LED(led, HIGH); // turn LED on
delay(delayTime);
LED(led, LOW); // turn LED off
}
speaker(440, 10); // short beep
for(led=6; led》0; led--){
LED(led, HIGH); // turn LED on
delay(delayTime);
LED(led, LOW); // turn LED off
}
speaker(880, 10); // short beep
}
最后一個技巧即可。我們如何根據微調電位器的值來改變LED的速度?小菜一碟!只需將 delayTime 變量更改為 trim()函數:
void loop(){
for(led=0; led《8; led++){
LED(led, HIGH); // turn LED on
delay(trim()); // read potentiometer to determine delay time.
LED(led, LOW); // turn LED off
}
speaker(440, 10); // short beep
for(led=6; led》0; led--){
LED(led, HIGH); // turn LED on
delay(trim());
LED(led, LOW); // turn LED off
}
speaker(880, 10); // short beep
}
責任編輯:wv
-
led
+關注
關注
242文章
23308瀏覽量
661595 -
移位寄存器
+關注
關注
3文章
258瀏覽量
22297 -
壓電揚聲器
+關注
關注
0文章
8瀏覽量
10235
發布評論請先 登錄
相關推薦
評論