2016-03-06 25 views
0

我創建了一個連接到arduino的android應用程序。該項目非常簡單:在應用程序中有一個打開和關閉按鈕,分別打開和關閉連接到arduino的led ...但我想更進一步...我希望用戶能夠給出必須經過的時間,直到LED亮起...例如,他在他的應用程序中撥打20,然後在20分鐘後開啓LED ...我想過使用已經存在的鬧鐘應用程序及其應用程序代碼,但我的知識不足以處理它們...你能否建議我一個更簡單的方法來完成我的想法...是否有人知道現有的類似項目?開啓指定時間後led連接arduino

任何建議表示讚賞!

+0

爲什麼不發送一個「計時器」 - 命令到你的Arduino,並讓計時器做這部分? – Fruchtzwerg

+0

@Fruchtzwerg你可以請更具體一點嗎?定時器在JAVA中的功能?任何鏈接將是真正有幫助的! – Alice1nw0

+0

Arduino收到命令'20分鐘後導致'。那會在C那麼。當你在C編程Arduino時,我想。但是您也可以在應用程序發送正常的'led on'命令之前20分鐘讓您的應用程序等待。那麼它會在Java是。 – greenapps

回答

0

您可以使用Handler延遲一段時間後執行代碼。

public void turnOnLED(int timeDelay){ 

    new Handler().postDelayed(new Runnable() { 
    @Override 
    public void run() { 
     // Do something after timeDelay ms 
    } 
    },timeDelay); 

} 

代碼中的run()方法會後純滯後在毫秒

0

,如果你發送一個命令與您的應用程序也可以開始你的Arduino的定時器來執行。一個簡單的方法可以做到這一點:

#define MAX_UNSIGNED_LONG 4294967295 
unsigned long StartTime = MAX_UNSIGNED_LONG; 
unsigned long DelayTime = 10000; //Your delay in ms 

loop 
{ 
    //Receive Commando from app ... your code here: 
    //To start your "timer": StartTime = millis() 
    //Stop it with: StartTime = MAX_UNSIGNED_LONG; 

    //Check if your time is elapsed here: 
    unsigned long ActualTime = millis(); 
    if (ActualTime > StartTime && ActualTime - StartTime >= DelayTime) 
    { 
    //Tur on your Light here 
    } 
}