首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用Arduino做伺服按钮?

如何用Arduino做伺服按钮?
EN

Stack Overflow用户
提问于 2021-04-28 13:42:07
回答 1查看 315关注 0票数 0

我试着用Arduino复制玩具"uselsess box“,但版本不同。

我有一个按钮,一个led和一个伺服马达。

当我点击按钮,led灯亮起来,2秒后,我希望伺服电机旋转,并再次按下该按钮,以关闭led。

问题是,当我按下按钮时,led灯亮起来,同时伺服电机移动,这样当它点击按钮时,led就不会关闭。

下面是代码:

代码语言:javascript
复制
#include <Servo.h>

int servoPin = 3;

Servo Servo1;
const int button = 7;
const int led = 8;
int ledState = 0;

void setup() {
 Servo1.attach(servoPin);
 pinMode(led, OUTPUT);
 pinMode(button, INPUT);
}

void loop() {
 if (digitalRead(button) == HIGH) {
   if (ledState == 0) {
     ledState = 1;
     digitalWrite(led, HIGH);

     delay(2000);
     Servo1.write(0);
     delay(1000);
     Servo1.write(100);
     delay(1000);
   }
 }
   else {
     ledState = 0;
     digitalWrite(led, LOW);
     Servo1.write(0);
   }
 }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-28 13:55:04

你试过这个吗?

代码语言:javascript
复制
bool check = true;
void loop() {
 if (digitalRead(button) == HIGH && check) {
   check = false;
   if (ledState == 0) {
     ledState = 1;
     digitalWrite(led, HIGH);

     delay(2000);
     Servo1.write(0);
     delay(1000);
     Servo1.write(100);
     delay(1000);
   }
   else {
     ledState = 0;
     digitalWrite(led, LOW);
     Servo1.write(0);
   }
 }
if (digitalRead(button) == LOW) {
   check = true;
 }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67301424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档