Android 在给定时间后打开arduino上连接的led
我已经创建了一个android应用程序,它连接到arduino。该项目非常简单:在应用程序上有一个打开和关闭按钮,分别打开和关闭连接到arduino的led。。。但我想更进一步。。。我希望用户能够给出led亮起之前必须经过的时间。。。例如,他在应用程序中拨20,20分钟后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
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是的,我更喜欢第二个选项…你有任何链接吗?