查看: 205|回复: 2

[原创] 【赚周年币】Fireduino A4.触摸按键控制LED及显示状态

[复制链接]

31

主题

13

好友

1811

积分

进士

Rank: 5Rank: 5

  • TA的每日心情
    开心
    13 小时前
  • 签到天数: 185 天

    连续签到: 47 天

    [LV.7]常住居民III

    爱板会员勋章 活跃会员勋章

    发表于 2016-12-25 13:00:31 |显示全部楼层
    本帖最后由 limale 于 2017-1-17 20:18 编辑

    上一篇帖子http://www.eeboard.com/bbs/thread-59205-1-1.html已经有了屏幕可以显示了,中午刚好有点儿空我们做个小实验:用一个触摸按键来控制板载的绿色LED,当按下按键的时候端口输出低电平LED点亮,手放开端口输出高电平LED熄灭。
    触摸传感器模块介绍:
    传感器触摸传感器当用手触摸时,S输出一个高电平,手放开就是低电平,再次触摸S输出一个高电平,手放开就是低电平。
    供电范围:3-5V电流:5MA
    接口:G(GND)、V(vcc)、S(信号)
    触摸按键实物:

    QQ截图20161225124241.jpg

    我们对相应的端口定义如下所示:
    QQ截图20161225125411.jpg

    主要的代码:
    1. #include <Arduino.h>
    2. #include "oled.h"
    3. #include "oledfont.h"

    4. #define TOUCH       9
    5. //板载led
    6. #define LED_GREEN   13
    7. #define LED_BLUE    3

    8. void Sys_Init(void)
    9. {
    10.   Serial.begin(115200);
    11.   pinMode(OLED_GND, OUTPUT);
    12.   pinMode(OLED_VCC, OUTPUT);
    13.   pinMode(OLED_CLK, OUTPUT);
    14.   pinMode(OLED_DIN, OUTPUT);
    15.   pinMode(OLED_RES, OUTPUT);
    16.   pinMode(OLED_DC, OUTPUT);
    17.   pinMode(OLED_CS, OUTPUT);
    18.   digitalWrite(OLED_GND,LOW);
    19.   digitalWrite(OLED_VCC,HIGH);
    20.   
    21.   pinMode(TOUCH,INPUT);
    22.   pinMode(LED_GREEN, OUTPUT);
    23.   digitalWrite(LED_GREEN,HIGH);

    24. }

    25. void Main(void)
    26. {
    27.   char str1[] = {"eeboard"};
    28.   char str2[] = {"www.eeboard.com"};
    29.   char str3[] = {"Fireduino"};
    30.   char str4[] = {"LED_STA: "};
    31.   
    32.   char LED_ON[] = {"ON "};
    33.   char LED_OFF[] = {"OFF"};
    34.   uint8_t i = 4;
    35.   OLED_Init();
    36.   OLED_Clear();
    37.   
    38.   OLED_ShowCHinese(i, 0, 0);
    39.   OLED_ShowCHinese(i+16, 0, 1);
    40.   OLED_ShowString(i+32, 0, str1, 16);
    41.   OLED_ShowCHinese(i+88,0, 2);
    42.   OLED_ShowCHinese(i+104,0, 3);
    43.   OLED_ShowString(4,2,str2,16);
    44.   OLED_ShowString(28,4,str3,16);
    45.   while(1)
    46.   {
    47.     Serial.println("Hello eeboard!!!");
    48.     if(1 == digitalRead(TOUCH))
    49.     {
    50.       digitalWrite(LED_GREEN,LOW);
    51.       OLED_ShowString(0, 6, str4, 16);
    52.       OLED_ShowString(64, 6, LED_ON, 16);
    53.       }
    54.     else
    55.     {
    56.       digitalWrite(LED_GREEN,HIGH);
    57.       OLED_ShowString(0, 6, str4, 16);
    58.       OLED_ShowString(64, 6, LED_OFF, 16);
    59.       }
    60.       
    61.     }  
    62. }
    复制代码
    当手指没有接触按键的时候可以看到LED是熄灭状态同时屏幕状态指示是OFF。
    QQ截图20161225124423.jpg

    当手指触摸按键,可以看到LED变亮同时状态指示为ON,松开手指又回到初始状态。
    QQ截图20161225124443.jpg

    程序源码: touch.zip (6.75 KB, 下载次数: 1)
    已有 1 人评分 收起 理由
    loveeeboard + 30

    总评分:  + 30   查看全部评分

    回复

    使用道具 举报

    28

    主题

    0

    好友

    2050

    积分

    进士

    Rank: 5Rank: 5

  • TA的每日心情
    奋斗
    3 天前
  • 签到天数: 653 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2016-12-25 13:46:46 |显示全部楼层
    谢谢分享         
    回复

    使用道具 举报

    31

    主题

    13

    好友

    1811

    积分

    进士

    Rank: 5Rank: 5

  • TA的每日心情
    开心
    13 小时前
  • 签到天数: 185 天

    连续签到: 47 天

    [LV.7]常住居民III

    爱板会员勋章 活跃会员勋章

    发表于 2016-12-25 19:53:16 |显示全部楼层
    9robot 发表于 2016-12-25 13:46
    谢谢分享

    共同学习。
    回复

    使用道具 举报

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

    关闭

    站长推荐上一条 /4 下一条

    手机版|爱板网 |网站地图  

    GMT+8, 2017-6-25 13:18 , Processed in 0.168273 second(s), 13 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部