我去年写了一个代码,当时运行良好。然而,这次加载相同的代码时,我得到了相反的输出。也就是说,当数字引脚设置为高电平时,它返回低电平,反之亦然。
digitalWrite(led, HIGH) //PROBLEM: Should turn ON the LED but insted it turns OFF
我尝试过 BLINK 示例,在这种情况下,输出似乎也是相反的。
这是代码:
// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;
// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(5000); // wait for a second
}
根据代码,我的 LED 应打开 1 秒,然后关闭 5 秒,然后再次打开。然而,我得到的输出完全相反,即 LED 亮起 5 秒,熄灭 1 秒。 我需要帮助如何解决这个问题。
我的主要代码是基于 arduino 与 android 的接口(interface)。我一直致力于通过蓝牙解决 android-arduino 连接的问题,我去年确实完成了这个任务,但现在遇到了这个问题。 我已经在三个不同的arduino uno板上尝试过这个,尝试使用不同的传感器,但高低似乎颠倒了。
最佳答案
将电压表或示波器放在输出引脚上。 0 伏时为低电平,5 伏时为高电平吗?如果是这样,则软件和芯片工作正常,并且您的 LED 已接线,因此另一侧将有电压,这意味着芯片的 0 V 将打开它。这是驱动 LED 的常见方法,因为某些芯片吸收的电流比源出的电流多。
关于android - Arduino数字引脚高低输出似乎颠倒了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21490795/