iphone arduino 控制LED灯光-制作过程
正当Iphone成为街机的时候,不妨用Iphone和Arduino来做个好玩的东东,用它们来控制LED灯光。Iphone4s之前的机型都可以(只要是扁平30针接口),至于Iphone5接口不一样没有研究!
硬件准备:Iphone一台、32针Iphone扁平接口、Arduino板子、LED灯、导线若干
软件准备:IOS开发平台、Arduino开发平台
制作过程:
一、 Iphone的串口制作
因为Iphone的扁平30针接口中包含了串口,所以我们只需要对其进行引出!我在网上找到了接口定义的资料具体如下:
2013-2-19 09:13 上传
(13.34 KB)
图1
图1 为iphone接口排列方式为:1,2,3,4,5,6,7…..29,30
数据线接口内部焊接点排列为:(图2、3)
2468101214 16 18……30
135791113 15 17…..29
2013-2-19 09:14 上传
(23.06 KB)
图2
2013-2-19 09:14 上传
(32.31 KB)
图3
接口引脚数据定义:(只列出与串口相关)
1 :GND接地
12:TX 串行数据发送, 输出电压在3.3v
13:RX 串行数据接收, 输入电压在3.3v,Arduino串口输出电压为5v,可以用电阻进行分压输入,以保证Iphone安全。
18:3.3V 电源(可以不焊)
21:附件识别接口(可以不焊)
接口焊接图:
2013-2-19 09:14 上传
(80.03 KB)
图4 焊接1
2013-2-19 09:14 上传
(55.76 KB)
图5 焊接2
2013-2-19 09:14 上传
(53.58 KB)
图6 焊接牢固
2013-2-19 09:14 上传
(59.69 KB)
图7 接口散件到完成图
二、 组建Arduino与LED电路
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:14 上传
(22.85 KB)
图 9
五、 Arduino接上串口
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 - 极客工坊