Robofun 機器人論壇
標題:
想請問計時動作問題
[打印本頁]
作者:
mickey
時間:
2016-8-28 23:08
標題:
想請問計時動作問題
想請問各位大大
我有用一組光遮開關去控制
A LED 會根據光遮動作...B LED 希望是觸發點亮後10秒就熄滅
目前我是這樣寫..但是B LED 觸發Ttimer 一次後..就不會復原(歸零)
請問要怎麼寫才可以呢? 謝謝
#include "Timer.h"
Timer t;
int photocellPin = 2; //定義變量photocellsh=2,為電壓讀取端口。
int ledPin = 12;
int pin = 11;
int val = 0; //定義val變量的起始值
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(pin, OUTPUT);
t.pulse(pin, 1000, LOW);
}
void loop() {
val = analogRead(photocellPin); //從傳感器讀取值
if(val<=512){ //512=2.5V
digitalWrite(ledPin, HIGH); //當val小於512(2.5V)的時候,led亮。
digitalWrite(pin, LOW);
}
else{
t.update();
digitalWrite(ledPin, LOW);
}
}
作者:
超新手
時間:
2016-8-29 09:00
本帖最後由 超新手 於 2016-8-29 09:03 編輯
因為你根本沒觸發過..
你要把 t.pulse( 寫在 if 中, 才是觸發
然後 t.update(); 寫在迴圈中, 它才能執行
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(pin, OUTPUT);
}
void loop() {
val = analogRead(photocellPin);
if(val<=512){
digitalWrite(ledPin, HIGH);
t.pulse(pin, 1000, LOW);
}
else{
digitalWrite(ledPin, LOW);
}
t.update();
}
結果應該還是不太對.但.....至少比較像
還有....你的設定值是 1 秒, 不是 10 秒
作者:
mickey
時間:
2016-8-29 19:35
謝謝大大
大大提供的寫法..但是在編譯時就不會過了說
我的寫法是在第一次觸發時可以達到要求
LED 點亮後1秒就會熄滅
但是光遮被擋住後, B LED 就不會處發點亮,會一直處於熄滅
看來是timer 一直在執行中,所以無法reset
這就是我最大問題,要讓timer reset 要如何觸發
請問有哪位大大可以幫忙解決
謝謝囉
作者:
mickey
時間:
2016-9-8 19:18
請問有哪位大大可以幫忙解決
謝謝囉
歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/)
Powered by Discuz! X3.2