Arduino bitRead()使用LED输出二进制数

时间:2016-04-07 17:16:01

标签: bluetooth arduino arduino-uno

我现在正试图让我的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是我从手机获得的变量。 谢谢你的帮助。

1 个答案:

答案 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); 
    }
  }