正当Iphone成为街机的时候,不妨用Iphone和Arduino来做个好玩的东东,用它们来控制LED灯光。Iphone4s之前的机型都可以(只要是扁平30针接口),至于Iphone5接口不一样没有研究!
硬件准备:Iphone一台、32针Iphone扁平接口、Arduino板子、LED灯、导线若干
软件准备:IOS开发平台、Arduino开发平台
制作过程:
一、 Iphone的串口制作
因为Iphone的扁平30针接口中包含了串口,所以我们只需要对其进行引出!我在网上找到了接口定义的资料具体如下:
2013-2-19 09:14 上传
(23.06 KB)
图2
2013-2-19 09:14 上传
(80.03 KB)
图4 焊接1
2013-2-19 09:14 上传
(53.58 KB)
图6 焊接牢固
2013-2-19 09:14 上传
(100.33 KB)
图8
也可以使用分立的LED灯!
三、 编写Arduino程序
#define SerialSpeed 9600
#define BufferLength 16
#define LineEnd ‘#’
char inputBuffer[BufferLength];
void setup(){
pinMode(3, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
analogWrite(3, 255); //LED为三色共阳,初始输出最大, 则熄灭
analogWrite(5, 255); //LED为三色共阳,初始输出最大, 则熄灭
analogWrite(6, 255); //LED为三色共阳,初始输出最大, 则熄灭
Serial.begin(SerialSpeed);
}
void loop(){
int inputLength = 0;
do{
while(!Serial.available()); //wait for input
inputBuffer[inputLength] = Serial.read(); //read it in
}while(inputBuffer[inputLength] != LineEnd && ++inputLength < BufferLength);
inputBuffer[inputLength]=0; //add null terminator
HandleCommand(inputBuffer, inputLength);
}
// process a command string
void HandleCommand(char* input, int length)
{
// Serial.println(input);
if (length < 2) {
return;
}
int value = 0;
if (length > 2) {
value = atoi(&input[2]);
Serial.print(value);
}
int* command = (int*)input;
switch(*command) {
case ‘rd’:
analogWrite(3, value); //输出值越大则越暗,越小则越亮
break;
case ‘gd’:
analogWrite(5, value); //输出值越大则越暗,越小则越亮
break;
case ‘bd’:
analogWrite(6, value); //输出值越大则越暗,越小则越亮
break;
}
}
四、 编写IOS端程序
Xcode4.6+IOS6.1开发。看附件!
IOS程序界面:
2013-2-19 09:33 上传
(76.62 KB)
图10
六、 联调
接上Iphone串口,打开ios程序就可以控制LED了! 下图是以前录制的截屏比较简洁没有用限流电阻。大家可以用图8 连接Arduino与LED,限流电阻为200欧。
网盘下载http://pan.baidu.com/s/1dExdYV3
SerialControl.rar
图11
via – 极客工坊
相关资源:专业LED灯光动画制作软件(安装后直接用!)_setup安装包-Delphi工具…
来源:刘小晚
声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!