如何通过串口C++读取交换机?
How to read switches via serial port C++?
我有一个arduino nano。我想连接 MX Cherry 开关并通过串行端口检测按下。我应该在 arduino 上使用什么引脚以及应该将什么代码上传到盘子上?
我知道我必须为开关供电,所以必须有 5v 引脚和输入引脚。但我是电子学新手,所以我没弄明白。
//that's just basic code for sending a number every second via 13 pin
int i=0;
void setup() {
Serial.begin(57600);
pinMode(13, OUTPUT);
}
void loop() {
i = i + 1;
Serial.println(i);
delay(1000);
}
基本上,我需要一种方法,如果按下按钮则发送“1”,否则发送“0”。
也许我误解了你的问题。为什么不只读取按钮并在按下时发送“1”,否则发送“0”?
void loop(){
int buttonState = digitalRead(buttonPin);
// Assumes active low button
if (buttonState == LOW){
Serial.print('1');
}
else {
Serial.print('0');
}
delay(500);
}
当然,您可能想为其添加某种计时,这样它就不会每秒发送数千个 0 和 1。我添加了延迟,但这可能不是您拥有的应用程序的最佳答案(并选择不共享)。我还假设您的按钮已连接 active-LOW 和 pull-up,因为您也没有共享它。
我有一个arduino nano。我想连接 MX Cherry 开关并通过串行端口检测按下。我应该在 arduino 上使用什么引脚以及应该将什么代码上传到盘子上?
我知道我必须为开关供电,所以必须有 5v 引脚和输入引脚。但我是电子学新手,所以我没弄明白。
//that's just basic code for sending a number every second via 13 pin
int i=0;
void setup() {
Serial.begin(57600);
pinMode(13, OUTPUT);
}
void loop() {
i = i + 1;
Serial.println(i);
delay(1000);
}
基本上,我需要一种方法,如果按下按钮则发送“1”,否则发送“0”。
也许我误解了你的问题。为什么不只读取按钮并在按下时发送“1”,否则发送“0”?
void loop(){
int buttonState = digitalRead(buttonPin);
// Assumes active low button
if (buttonState == LOW){
Serial.print('1');
}
else {
Serial.print('0');
}
delay(500);
}
当然,您可能想为其添加某种计时,这样它就不会每秒发送数千个 0 和 1。我添加了延迟,但这可能不是您拥有的应用程序的最佳答案(并选择不共享)。我还假设您的按钮已连接 active-LOW 和 pull-up,因为您也没有共享它。