极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 48880|回复: 14

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

[复制链接]
发表于 2013-2-19 09:44:31 | 显示全部楼层 |阅读模式
本帖最后由 conjee 于 2013-2-19 09:42 编辑

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

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

制作过程:
一、        Iphone的串口制作
因为Iphone的扁平30针接口中包含了串口,所以我们只需要对其进行引出!我在网上找到了接口定义的资料具体如下:   
                                
                                                                                图1
            图1 为iphone接口排列方式为:1,2,3,4,5,6,7…..29,30
            数据线接口内部焊接点排列为:(图2、3)
                               2  4  6  8  10  12  14   16   18……30
                             1  3  5  7  9  11  13   15   17…..29

                               
                                                                          图2

                                 
                                                                          图3
                               
  
                        接口引脚数据定义:(只列出与串口相关)
                         1 :  GND  接地
                         12:  TX    串行数据发送, 输出电压在3.3v
                         13:  RX    串行数据接收, 输入电压在3.3v,Arduino串口输出电压为5v,可以用电阻进行分压输入,以保证Iphone安全。
                         18:  3.3V   电源(可以不焊)
                         21:附件识别接口(可以不焊)
                    接口焊接图:
                         
                                    图4 焊接1

                        
                                    图5 焊接2

                        
                                    图6 焊接牢固

                        
                                    图7 接口散件到完成图

二、        组建Arduino与LED电路
                        
                                    图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程序界面:

                        图 9

五、        Arduino接上串口


                         图10

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

                        图11

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 1 +5 收起 理由
幻生幻灭 + 5 很给力!

查看全部评分

回复

使用道具 举报

发表于 2013-2-19 11:22:48 来自手机 | 显示全部楼层
iphone串口能不能接收到arduino发回来的信息?来自: Android客户端
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-2-19 13:23:06 | 显示全部楼层
smfox10 发表于 2013-2-19 11:22
iphone串口能不能接收到arduino发回来的信息?

可以的,iphone串口接收时注意使用分压电阻,将arduino的5V输出转成3.3V左右的输入!
如图:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2013-2-19 14:30:43 | 显示全部楼层
好牛X啊~~~~~~~不过貌似必须要越狱后的IP才能装那个自开发的程序吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-2-19 14:55:33 | 显示全部楼层
darkorigin 发表于 2013-2-19 14:30
好牛X啊~~~~~~~不过貌似必须要越狱后的IP才能装那个自开发的程序吧

恩对的,要越狱
ios6.1前一阵就可以越狱了,那个时候我写了一下:Xcode4.6+IOS6.1开发免证书真机调试
http://blog.sina.com.cn/s/blog_af07c85c0101fu2r.html
回复 支持 反对

使用道具 举报

发表于 2013-2-19 16:05:46 | 显示全部楼层
没越狱。。。
回复 支持 反对

使用道具 举报

发表于 2013-2-19 22:17:22 | 显示全部楼层
这个厉害,Mark~
回复 支持 反对

使用道具 举报

发表于 2013-2-26 17:23:00 | 显示全部楼层
悲催,我也没越狱,目前只有一个IP5,TOUCH4给老婆霸占了,关键是怕越狱后不稳定了。
TOUCH是长期摸不到了。
打算构建一个XCODE环境玩玩看,哈哈, 不过当年的C基础不知道还剩下多少了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-2-26 17:50:35 | 显示全部楼层
darkorigin 发表于 2013-2-26 17:23
悲催,我也没越狱,目前只有一个IP5,TOUCH4给老婆霸占了,关键是怕越狱后不稳定了。
TOUCH是长期摸不到了 ...

TOUCH4可以呵,欢迎交流!
回复 支持 反对

使用道具 举报

发表于 2013-4-11 10:20:09 | 显示全部楼层
楼主强呀,试下先,
回复 支持 反对

使用道具 举报

发表于 2013-4-11 19:38:23 | 显示全部楼层
有没有安卓系统的程序
调试用
回复 支持 反对

使用道具 举报

发表于 2013-5-17 14:33:17 | 显示全部楼层
LZ 很强悍啊,不过一般的安卓手机也可以实现吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-30 14:22:35 | 显示全部楼层
新生代电子科技F 发表于 2013-4-11 19:38
有没有安卓系统的程序
调试用

安卓的手机接口没有串口的吧, usb通信的没有写过哦。 要么先让  usb转 串口, 应该有这样的设备。  
回复 支持 反对

使用道具 举报

发表于 2015-9-18 12:50:37 | 显示全部楼层
这个太棒了!楼主真会琢磨!
回复 支持 反对

使用道具 举报

发表于 2015-11-11 10:25:42 | 显示全部楼层
这个厉害,Mark~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-26 09:31 , Processed in 0.054118 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表