查看: 1174|回复: 5

[过期] 定時器控制如何寫呢?

[复制链接]
  • TA的每日心情
    开心
    2020-4-26 11:42
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2019-10-20 01:13 | 显示全部楼层 |阅读模式
    請教一下

    我想要設計二個功能同時存在,程式如何寫呢?
    1.按下按鍵時,啟動PIN12(送出HIGH) 15分鐘,
      (除了用delay還可用其他的嗎)
    在15分鐘內再按下同一個按鍵,又重新開始計時15分鐘.
    (例如第7分鐘,按下按鍵 又送出15分鐘high)

    2.我想寫定時器的功能
    例如每小時啟動18分鐘,
    42分鐘pin11送出low
    18分鐘pin11送出high,
    一直持續不中斷.

    請高手們解惑,謝謝!
  • TA的每日心情
    无聊
    2020-5-8 13:13
  • 签到天数: 146 天

    [LV.7]常住居民III

    发表于 2019-10-20 13:47 | 显示全部楼层
    用MsTimer2试试
  • TA的每日心情
    开心
    2020-7-5 05:15
  • 签到天数: 609 天

    [LV.9]以坛为家II

    发表于 2019-10-20 17:27 | 显示全部楼层
    unsigned long p1;
    unsigned long p2;
    unsigned long cu;
    int k=1;
    void tube_impulse() {
      unsigned long cu = millis();
      digitalWrite(12, HIGH);
      p1=cu;
    }
    void setup() {
    attachInterrupt(0, tube_impulse, FALLING);  
    pinMode(12, OUTPUT);
    pinMode(11, OUTPUT);
    digitalWrite(12, LOW);
    digitalWrite(11, HIGH);
    p1=cu;
    p2=cu;
    }

    void loop() {
      
      unsigned long cu = millis();
    if(cu-p1>15000) digitalWrite(12, LOW);//15秒

    if(k>0){
      if(cu-p2>42000){          //42秒      
        digitalWrite(11, LOW);
      p2=cu;
      k=k*(-1);
      }
    }
    else{
      if(cu-p2>18000) {         //18秒
        digitalWrite(11, HIGH);
        p2=cu;
        k=k*(-1);
      }
      }
    }
    为了能快速看效果,程序中时间参数为15秒,42秒,18秒.你可按要求自行修改.
  • TA的每日心情
    开心
    2020-4-26 11:42
  • 签到天数: 7 天

    [LV.3]偶尔看看II

     楼主| 发表于 2019-10-22 23:43 | 显示全部楼层
    感謝2位前輩解惑,明個兒來試試看。。。謝謝
  • TA的每日心情
    开心
    2020-4-26 11:42
  • 签到天数: 7 天

    [LV.3]偶尔看看II

     楼主| 发表于 2020-4-3 14:42 | 显示全部楼层
    lwq1947 发表于 2019-10-20 17:27
    unsigned long p1;
    unsigned long p2;
    unsigned long cu;

    LWQ前輩你好,
    我試了程式 但15S的中斷觸發沒有反應,
    請問是那兒有問題呢?
    我PIN10接開關,按下PIN10=LOW之後PIN12為HIGH持續15秒,
    該如何更改呢?感謝賜教!
  • TA的每日心情
    开心
    2020-7-5 05:15
  • 签到天数: 609 天

    [LV.9]以坛为家II

    发表于 2020-4-3 20:21 | 显示全部楼层
    anthonypai 发表于 2020-4-3 14:42
    LWQ前輩你好,
    我試了程式 但15S的中斷觸發沒有反應,
    請問是那兒有問題呢?

    程序没问题.PIN10接D2(需接上拉电阻),按下PIN10为低电平时可触发中断啟動PIN12(送出HIGH) 15秒.
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    5分钟带你快速了解新一代开发板:M5STACK
    5分钟带你快速了解新一代
    一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
    创客火首发无人机编队套装,开启不一样的人工智能教育
    创客火首发无人机编队套装
    2017年国务院发布《新一代人工智能发展规划》,提出要广泛开展人工智能科普活动,在中
    用 PyQt GUI 界面下的旋钮控制舵机角度
    用 PyQt GUI 界面下的旋钮
    新人报道, 我想用 PyQt 下的 Dial 旋钮模块来控制舵机的角度。如果一切正常,这个 G
    blinker连接树莓派失败
    blinker连接树莓派失败
    错误原因如下图,想问一下大家这个该怎么解决?
    Python3接入Blinker失败
    Python3接入Blinker失败
    运行示例程序,只把auth换成真实的auth,就出现报错。 大佬们看一下这个是啥情况
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表