本帖最後由 超新手 於 2016-5-18 18:29 編輯
幫他簡化一下, 可能你就看的比較懂
除非有其他程式, 否則 dataD 和 dataB 根本沒作用
可以刪掉, 如下
void loop()
{
if(Serial.available()>0)
{
unsigned char data = Serial.read();
PORTD = data<<2;
PORTB = data>>6;
delay(2000);
PORTD = PORTD&0x03;
PORTB = PORTB&0xFC;
}
}
重點在於
arduino(應該說 uno, 各機種略有不同)的接腳 2 ~ 9
分別是
PD2~PD7, PB0 和 PB1
所以收到 data 後, 必須左移兩位寫入 PORTD
右移六位寫入 PORTB(應該是點亮對應的 LED)
等兩秒後, 再把PD2~PD7, PB0 和 PB1寫入 0 (應該是關掉所有 LED)
其實這並不是 Arduino 的程式風格,
也無法移植到其他版本的 arduino
只不過...為什麼你不直接去問你朋友? |