시리얼에서 정보를 읽고 값 바이너리를 6 개의 LED에 쓰는 프로그램을 만들었습니다. 나는 그것이 가장 쉽고 빠른 방법이라고 느끼지 않는다. 그리고 그것은 내가 정말로 찾고있는 것이다. 내 코드는 다음과 같습니다.시리얼에서 바이트 읽기
boolean enable = false;
void setup()
{
for (int i = 2; i < 8; i++)
{
pinMode(i, OUTPUT);
}
}
void loop()
{
if (Serial.available() > 0)
{
enable = true;
}
if (enable)
{
while (Serial.available() > 0)
{
byte b = Serial.parseInt();
b = constrain(b, 0, 63);
byte val = b;
for (int i = 7; i >= 2; i--)
{
if (pow(2, (i-2)) <= val)
{
digitalWrite(i, HIGH);
val -= pow(2, (i-2));
}
else
{
digitalWrite(i, LOW);
}
}
}
enable = false;
}
delay(100);
}
유효한 코드 예제가 좋을 것입니다. PORTD를 사용해 보았지만 작동하지 않습니다.
은'='비트가 쓸모없는 혼란이 (당신이 더 많은 것을 가진 할 계획 된 경우를 제외 가능 그것). 간단하게'while (Serial.available()> 0)'을 수행하고 그 안에있는 LED 상태를 관리하십시오. –
나는 while 루프와 부울 "enable"을 모두 사용하는 것보다 나은 해결책을 찾았습니다. 어쨌든 고맙습니다. –