查看: 31811|回复: 41

Arduino教程——五向倾斜模块的使用

[复制链接]
  • TA的每日心情
    郁闷
    2018-12-6 22:21
  • 签到天数: 48 天

    [LV.5]常住居民I

    发表于 2012-11-17 20:48 | 显示全部楼层 |阅读模式
    五向倾斜模块,内部由一个金属球和4个触点组成,可以检测倾斜方向。相较于陀螺仪,它的成本更低,更简单易用,可以检测4个倾斜方向和水平位置,共五种状态,可以满足很多互动场合的要求.
    tilt.jpg


    使用方法:
    很简单,依次把四个脚连接到arduino的任意四个IO口即可
    t.jpg

    例程:
    使用以下例程,打开串口监视器,就可以看到结果啦{:soso__14380647936255941966_3:}

    kittenblock中小学创客名师推荐的图形化编程软件

    
    //Author:OPEN JUMPER-奈何col
    //2012-11-17
    String Tilt(int T1,int T2,int T3,int T4) {
       pinMode(T3,OUTPUT);
       pinMode(T1,INPUT_PULLUP);
       pinMode(T2,INPUT);
       digitalWrite(T3,LOW);
       int F31=digitalRead(T1);
       if (F31==LOW) return "d";
       /*-------------------------*/  
       pinMode(T1,OUTPUT);
       pinMode(T2,INPUT_PULLUP);
       pinMode(T4,INPUT);
       digitalWrite(T1,LOW);
       int F12=digitalRead(T2);
       if (F12==LOW) return "a";
       /*-------------------------*/
       pinMode(T2,OUTPUT);
       pinMode(T4,INPUT_PULLUP);
       pinMode(T3,INPUT);
       digitalWrite(T2,LOW);
       int F24=digitalRead(T4);
       if (F24==LOW) return "b"; 
       /*-------------------------*/
       pinMode(T4,OUTPUT);
       pinMode(T3,INPUT_PULLUP);
       pinMode(T1,INPUT);
       digitalWrite(T4,LOW);
       int F43=digitalRead(T3);
       if (F43==LOW) return "c"; 
       /*-------------------------*/
       return "0";
     }
     
     void setup() {                
       Serial.begin(9600);
     }
     void loop() {                
       String S=Tilt(2,3,4,5);//模块1\2\3\4脚分别连接到arduino的D2\D3\D4\D5数字IO上
       Serial.println(S);
       delay(100);
     }
    如果以上内容对你有帮助,你可以通过打赏支持作者

    该用户从未签到

    发表于 2012-11-18 19:36 | 显示全部楼层
    这货不错~{:soso_e179:}

    该用户从未签到

    发表于 2012-11-19 00:46 | 显示全部楼层
    同意楼上,不过,灵敏度怎样?
  • TA的每日心情
    郁闷
    2018-12-6 22:21
  • 签到天数: 48 天

    [LV.5]常住居民I

     楼主| 发表于 2012-11-19 08:03 | 显示全部楼层
    乡间河太急 发表于 2012-11-19 00:46
    同意楼上,不过,灵敏度怎样?

    这个内部就是四个触点,一个钢珠,倾角达到45度,就可以检测到了
    如果以上内容对你有帮助,你可以通过打赏支持作者
  • TA的每日心情
    无聊
    2017-1-24 10:00
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    发表于 2012-11-21 17:10 | 显示全部楼层
    DUE。。。。。。OJ已经开始用小小二做教程了。。。。。。高富帅呀。。。。。。。坐等OJ的DUE出来~~~先看看吧~~~DUE不着急入手呢(直接说没有攒够钱呢好么。。。。。。)。。。。这周末先把2560寄回去~~奈何。。。。先告诉我寄到哪呀%>_<%。。。。。。。。。

    该用户从未签到

    发表于 2012-11-21 19:14 | 显示全部楼层
    弱弱的问一句 这个串口监视器怎么打开呢
  • TA的每日心情
    郁闷
    2018-12-6 22:21
  • 签到天数: 48 天

    [LV.5]常住居民I

     楼主| 发表于 2012-11-21 23:12 | 显示全部楼层
     _.禪軒 发表于 2012-11-21 19:14
    弱弱的问一句 这个串口监视器怎么打开呢

    IDE自带的,在界面的右上角
    如果以上内容对你有帮助,你可以通过打赏支持作者

    该用户从未签到

    发表于 2012-11-23 21:18 | 显示全部楼层
    不明白为什么T3可以定义为DO,接着又可以被定义为DI??
  • TA的每日心情
    郁闷
    2018-12-6 22:21
  • 签到天数: 48 天

    [LV.5]常住居民I

     楼主| 发表于 2012-11-24 01:36 | 显示全部楼层
    hihendry 发表于 2012-11-23 21:18
    不明白为什么T3可以定义为DO,接着又可以被定义为DI??

    3组触点为一组,轮流切换IO状态,来检测哪边导通
    如果以上内容对你有帮助,你可以通过打赏支持作者

    该用户从未签到

    发表于 2012-11-24 10:21 | 显示全部楼层
    本帖最后由 hihendry 于 2012-11-24 10:24 编辑
    奈何col 发表于 2012-11-24 01:36
    3组触点为一组,轮流切换IO状态,来检测哪边导通

    我明白了,Tilt是个函数,在一个情况下,其它的三个情况就变成无用的操作了,楼主大大是这样吗?
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    KittenBot杯第六届开源硬件开发大赛启动啦
    KittenBot杯第六届开源硬
    大赛简介: 第六届开源硬件开发大赛由Arduino中文社区发起 由KittenBot冠名赞助
    游戏机和开发板脑洞一下;这个本来就是开源的。
    游戏机和开发板脑洞一下;
    这个开发板和标准UNO是1;1的;通用。做在一起是因为可以不用游戏机时可以切换回来做开
    新人求助,关于舵机和限位开关。
    新人求助,关于舵机和限位
    新人求助社区各位哥哥姐姐,具体需要用航模遥控器的3段开关控制Arduino nano控制一个3
    基于MWC开源飞控DIY关键总结分享:
    基于MWC开源飞控DIY关键总
    很早就已经很想写这么一个帖,但总是由于各种原因没能落实,但最后还是找了时
    有关函数返回值的问题
    有关函数返回值的问题
    求助大神们,这个程序中有return返回值,但为什么有这个“ warning: return-statement
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表