如何构建和使用FunShield

步骤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
}


电机的过热保护原理
如何编写Arduino开源电子平台程序?
新能源汽车的问题只是充电难、电池不耐用这么简单?
10月新能源汽车销量同比增长33.5%,今年累销728万辆
宝骏310W怎么样?宝骏310W的配置参数和报价及图片
如何构建和使用FunShield
DIY一个GPS儿童追踪器
合泰推出BS83xxxA系列Flash触控MCU
英特尔先进封装:彻底改变芯片封装技术
CD4011制作的简易电子蜡烛电路
普渡大学与格芯合作,加强研发和半导体教育
关于配电箱安装的注意事项
火龙果(Red Pitaya)安装指南
光纤传感器有什么特点?有哪些应用?
卷轴屏或将引领未来手机的发展方向
S10 10M Prodigy逻辑系统有什么特别之处?
度势克艰丨把握“后疫情时期”的照明产业机遇
为什么Nor Flash可以实现XIP,而Nand flash就不行呢?
土壤墒情监测系统测量的原理及效果的介绍
同步串行总线接口的原理、接口方式和使用方法