iphone arduino 控制LED灯光-制作过程

正当Iphone成为街机的时候,不妨用Iphone和Arduino来做个好玩的东东,用它们来控制LED灯光。Iphone4s之前的机型都可以(只要是扁平30针接口),至于Iphone5接口不一样没有研究!



硬件准备:Iphone一台、32针Iphone扁平接口、Arduino板子、LED灯、导线若干

软件准备:IOS开发平台、Arduino开发平台



制作过程:

一、 Iphone的串口制作

因为Iphone的扁平30针接口中包含了串口,所以我们只需要对其进行引出!我在网上找到了接口定义的资料具体如下:

1.jpg

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


2.jpg

2013-2-19 09:14 上传
(23.06 KB)



图2


3.jpg

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:附件识别接口(可以不焊)

接口焊接图:

4.jpg

2013-2-19 09:14 上传
(80.03 KB)



图4 焊接1


5.jpg

2013-2-19 09:14 上传
(55.76 KB)



图5 焊接2


6.jpg

2013-2-19 09:14 上传
(53.58 KB)



图6 焊接牢固


7.jpg

2013-2-19 09:14 上传
(59.69 KB)



图7 接口散件到完成图



二、 组建Arduino与LED电路

8.jpg

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程序界面:

10.jpg

2013-2-19 09:14 上传
(22.85 KB)



图 9



五、 Arduino接上串口

11.jpg

2013-2-19 09:33 上传
(76.62 KB)





图10



六、 联调

接上Iphone串口,打开ios程序就可以控制LED了! 下图是以前录制的截屏比较简洁没有用限流电阻。大家可以用图8 连接Arduino与LED,限流电阻为200欧。

12.jpg

网盘下载http://pan.baidu.com/s/1dExdYV3
SerialControl.rar



图11

via - 极客工坊

标签: Arduino教程