arduino - 如何使用 arduino 串行监视器打开和关闭 LED
问题描述
我正在尝试打开和关闭 3 个 LED。所以基本上输入 1 到串行监视器和 LED 之一会打开,我已经完成了这部分但是当我再次按下 1 时 LED 会关闭。第二部分是我遇到的问题,我需要创建某种切换。
这是我的代码
const int greenPin = 2;
const int yellowPin = 3;
const int redPin = 4;
void setup()
{
pinMode(greenPin, OUTPUT);
pinMode(yellowPin, OUTPUT);
pinMode(redPin, OUTPUT);
Serial.begin(9600);
while (!Serial);
Serial.println("Input 1 to Turn LED on and 2 to off");
}
void loop() {
if (Serial.available())
{
int state = Serial.parseInt();
if (state == 1)
{
digitalWrite(greenPin, HIGH);
digitalWrite(yellowPin, LOW);
digitalWrite(redPin, LOW);
Serial.println("Command completed LED turned ON");
}
if (state == 2)
{
digitalWrite(greenPin, LOW);
digitalWrite(yellowPin, HIGH);
digitalWrite(redPin, LOW);
Serial.println("Command completed LED turned OFF");
}
if (state == 3)
{
digitalWrite(greenPin, LOW);
digitalWrite(yellowPin, LOW);
digitalWrite(redPin, HIGH);
Serial.println("Command completed LED turned OFF");
}
}
}
解决方案
digitalWrite(ledPin, !digitalRead(ledPin));
这样,您总是会反转当前的引脚状态。
推荐阅读
- javascript - 如何使用 Google Maps JavaScript Api 针对不同位置的查询结果添加不同的标签?
- c++ - C++ Visual Studio 中的 Ascii 字符代码与实际字符符号不匹配?
- haskell - 遍历模板 Haskell AST
- python - 在python中将大数除以10会得到错误的结果
- javascript - 是否有标准来签署和验证 node.js 代码?
- javascript - 我的 php/html 文件中的提交按钮有问题
- jsonpath - Wiremock 中的嵌套表达式
- javascript - 如何在javascript中将一个类的属性复制到另一个类,包括方法
- ruby-on-rails - 从视图中使用 ransack 对多列进行排序
- kotlin - Kotlin 中的可空变量