查看: 2686|回复: 2

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

[复制链接]
  • TA的每日心情
    开心
    2024-3-3 21:23
  • 签到天数: 2449 天

    连续签到: 1 天

    [LV.Master]伴坛终老

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

    上一篇帖子https://www.cirmall.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 +30 收起 理由
    loveeeboard + 30

    查看全部评分

    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-6-27 14:09
  • 签到天数: 943 天

    连续签到: 1 天

    [LV.10]以坛为家III

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

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-3 21:23
  • 签到天数: 2449 天

    连续签到: 1 天

    [LV.Master]伴坛终老

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

    共同学习。
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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



    手机版|小黑屋|与非网

    GMT+8, 2024-4-27 07:31 , Processed in 0.165802 second(s), 26 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.