我现在正试图让我的Arduino Uno输出从我的手机通过蓝牙发送的二进制数字。手机将向Arduino发送一个整数。希望Arduino将整数转换为二进制并打开相应的LED。 4个LED用于表示二进制数。但是,当我输入一个数字时,LED只会闪烁一次或所有LED都会亮起。这是我的代码:
int li1;
const byte numPins = 4;
int pins[] = {10,11,12,13};
void setup () {
Serial.begin(19200);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);
pinMode(13,OUTPUT);
}
void loop() {
while(!Serial.available());
li1 = Serial.read();
for (byte i=0; i<numPins; i++) {
byte temp = bitRead(li1, i);
digitalWrite(pins[i],temp);
}
}
li1是我从手机获得的变量。 谢谢你的帮助。
答案 0 :(得分:0)
可能不是答案,但没有足够的声誉来发表评论。
尝试在写入字节后设置睡眠,以防它快速移动。
int li1;
const byte numPins = 4;
int pins[] = {10,11,12,13};
void setup () {
Serial.begin(19200);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);
pinMode(13,OUTPUT);
}
void loop() {
while(!Serial.available());
li1 = Serial.read();
for (byte i=0; i<numPins; i++) {
byte temp = bitRead(li1, i);
digitalWrite(pins[i],temp);
delay(4000);
}
}