Android 在给定时间后打开arduino上连接的led

Android 在给定时间后打开arduino上连接的led,android,android-studio,time,timer,arduino,Android,Android Studio,Time,Timer,Arduino,我已经创建了一个android应用程序,它连接到arduino。该项目非常简单:在应用程序上有一个打开和关闭按钮,分别打开和关闭连接到arduino的led。。。但我想更进一步。。。我希望用户能够给出led亮起之前必须经过的时间。。。例如,他在应用程序中拨20,20分钟后led亮起。。。我曾想过使用现有的报警应用程序及其代码,但我的知识不足以处理它们……你能给我一个更简单的方法来实现我的想法吗……有人知道已经存在的类似项目吗 任何建议都将不胜感激 您可以使用在延迟后执行代码 public voi

我已经创建了一个android应用程序,它连接到arduino。该项目非常简单:在应用程序上有一个打开和关闭按钮,分别打开和关闭连接到arduino的led。。。但我想更进一步。。。我希望用户能够给出led亮起之前必须经过的时间。。。例如,他在应用程序中拨20,20分钟后led亮起。。。我曾想过使用现有的报警应用程序及其代码,但我的知识不足以处理它们……你能给我一个更简单的方法来实现我的想法吗……有人知道已经存在的类似项目吗

任何建议都将不胜感激

您可以使用在延迟后执行代码

public void turnOnLED(int timeDelay){

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

}

run()方法中的代码将在timeDelay(以毫秒为单位)后执行。如果应用程序发送命令,也可以在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
  }
}

你为什么不给你的Arduino发送一个“定时器”命令,让定时器来完成这个部分呢?@Fruchtzwerg你能说得更具体一点吗?定时器是JAVA中的一个函数吗?任何链接都会非常有用!!Arduino收到命令“20分钟后led亮起”。那就用C了。我想当你用C语言编程Arduino时。但你也可以让你的应用程序等待20分钟,然后再发送正常的“led开启”命令。那么它将是java的是。@greenapps是的,我更喜欢第二个选项…你有任何链接吗?