电子说
步骤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
全部0条评论
快来发表一下你的评论吧 !