【发布时间】:2021-04-10 09:49:01
【问题描述】:
我在 arduino 编码方面并不专业,我对草图有疑问。我需要用按钮控制继电器的代码。我有 3 个按钮、3 个 LED 和 2 个继电器。按下 1 个按钮时选择第一个 LED,如果按下两次则选择第二个 LED。当按下第二个按钮一次然后选择第一个继电器,如果两次按下然后选择第二个继电器,最后启动按钮启动所有这些命令,然后点亮第三个 LED。请帮忙!这是我的代码:
int button1=2;
int button2=3;
int button3=4;
int relay1=8;
int relay2=9;
int led=5;
int led2=6;
int led3=7;
int button1State=0;
int button2State=0;
int button3State=0;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(button1, INPUT_PULLUP);
pinMode(button2,INPUT_PULLUP);
pinMode(button3,INPUT_PULLUP):
pinMode(relay1, OUTPUT);
digitalWrite(relay1, HIGH);
pinMode(relay2,OUTPUT);
digitalWrite(relay2, HIGH);
pinMode(led,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
button1State = digitalRead(button1);//when once click turn led
if(button1State==HIGH){
digitalWrite(led,HIGH);
delay(wait);
if(button1State==HIGH){ //when clicked twice then turn on led 2, but i dont know how to do it
digitalWrite(led2,HIGH);
delay(wait)
}
}
if (button2State== HIGH){
digitalWrite(relay1,HIGH);
delay(wait);
if(button2State==HIGH){ //when clicked twice turn on second relay but i dont know how to do this
digitalWrite(relay2,HIGH);
delay(wait);
}
if(button2State==HIGH){
digitalWrite(relay1&&relay2,HIGH);
delay(wait);
}
}
//and click start i dont kknow how to do this :((
//when select led then circuits run for 10 sec,if led 2 select then circuit runs for 20 sec
}
【问题讨论】:
-
对此进行编程并不难,但要求尚不清楚,因此我将从它开始,组织资源和操作并描述程序的流程。您应该画一个流程图,它应该可以帮助您解释需求,并使编程变得容易得多。
-
您应该回答的几个问题: 1) button3 是您所说的“开始按钮”吗? 2)“所有这些命令”是否意味着打开所有 LED 和继电器?如果是,那么在超时(等待)之后会持续多长时间以及会发生什么? 3)等待延迟后会发生什么?您要关闭 LED 和继电器吗? 4)如果再次按下按钮(超过两次)会发生什么?
-
这是我从您的问题中了解到的:1) 按下按钮 1:打开 led1,等待 10 秒。 2)再次按下按钮1:打开led2,等待10秒。 3) 按下按钮 2:打开继电器 1,等待 10 秒。 4) 再次按下按钮 2:打开继电器 2,等待 10 秒。 5) button3 按下:执行以上所有操作(你写“所有这些命令”的地方)并打开 led3。
-
这就像一个计时器。您设置秒和分钟,并在运行结束时启动计时器。在我的项目中,您设置了该电路将运行多长时间。一开始你设置Led1或Led 2,当你选择led 1然后电路运行10秒,如果你选择led 2然后电路运行20秒,第二你设置继电器哪个继电器会工作?第一秒还是两者兼而有之?最后,当您按下开始按钮时,所有这些选择都会运行。 10 秒或 20 秒
-
int 我的代码我不知道如何为一次两次或三次按下的按钮编写代码,当按下一次 led1 打开时,按下两次 led 2 打开时,这种方法也适用于继电器。我需要你的帮助。我的这个项目的代码有什么问题。请帮忙
标签: arduino arduino-uno arduino-ide