Robofun 機器人論壇
標題:
ascii to bin LED output
[打印本頁]
作者:
jackygwaaa
時間:
2016-5-11 18:17
標題:
ascii to bin LED output
前輩好!例如電腦終端機輸入A (ASCII表查到Hexadecimal是41) 轉成Binary是0100 0001然後 LED燈8顆分別同步顯示結果會變成
滅亮滅滅 滅滅滅亮 這樣!希望可以請教各位前輩!
作者:
超新手
時間:
2016-5-11 19:44
if(data&1) digitalwrite(0,High);
else digitalwrite(0,low);
if(data&2) digitalwrite(1,High);
else digitalwrite(1,low);
.....
if(data&0x80) digitalwrite(7,High);
else digitalwrite(7,low);
作者:
jackygwaaa
時間:
2016-5-11 22:56
回復
2#
超新手
請問前輩!data跟0x80是指甚麼?
作者:
超新手
時間:
2016-5-12 08:08
data 是個變數, 存放你收到的資料
例如從電腦終端機收到的 'A'
你把收到的值, 根據每個 BIT 去判斷要讓 LED 亮或滅
作者:
jackygwaaa
時間:
2016-5-12 10:44
在請問一下data變數需要變成byte存入嗎?就像這樣byte data = Serial.read();
還有if(data&1)那個1是代表甚麼?
作者:
jackygwaaa
時間:
2016-5-12 10:54
前輩以下是我的程式 可是顯示出來的燈號有問題...輸入A因該要滅亮滅滅 滅滅滅亮
可是我的顯示滅亮滅亮滅亮滅亮!
int i;
int led[]={2,3,4,5,6,7,8,9};
int status[]={0,0,0,0,0,0,0,0};
void setup()
{
Serial.begin(9600);
for(i=0;i<8;i++)
pinMode(led[i],OUTPUT);
for(i=0;i<8;i++)
digitalWrite(led[i],LOW);
}
void loop()
{
if(Serial.available()>0)
{
byte data = Serial.read();
if(data&1)
digitalWrite(2,HIGH);
else
digitalWrite(2,LOW);
if(data&2)
digitalWrite(3,HIGH);
else
digitalWrite(3,LOW);
if(data&3)
digitalWrite(4,HIGH);
else
digitalWrite(4,LOW);
if(data&4)
digitalWrite(5,HIGH);
else
digitalWrite(5,LOW);
if(data&5)
digitalWrite(6,HIGH);
else
digitalWrite(6,LOW);
if(data&6)
digitalWrite(7,HIGH);
else
digitalWrite(7,LOW);
if(data&7)
digitalWrite(8,HIGH);
else
digitalWrite(8,LOW);
if(data&0x80)
digitalWrite(9,HIGH);
else
digitalWrite(9,LOW);
}
}
作者:
jackygwaaa
時間:
2016-5-12 12:11
謝謝前輩我寫出來了
int i;
int led[]={2,3,4,5,6,7,8,9};
int status[]={0,0,0,0,0,0,0,0};
void setup()
{
Serial.begin(9600);
for(i=0;i<8;i++)
pinMode(led[i],OUTPUT);
for(i=0;i<8;i++)
digitalWrite(led[i],HIGH);
}
void loop()
{
if(Serial.available()>0)
{
unsigned char data = Serial.read();
if(data&0x01)
digitalWrite(2,LOW);
else
digitalWrite(2,HIGH);
if(data&0x02)
digitalWrite(3,LOW);
else
digitalWrite(3,HIGH);
if(data&0x04)
digitalWrite(4,LOW);
else
digitalWrite(4,HIGH);
if(data&0x08)
digitalWrite(5,LOW);
else
digitalWrite(5,HIGH);
if(data&0x10)
digitalWrite(6,LOW);
else
digitalWrite(6,HIGH);
if(data&0x20)
digitalWrite(7,LOW);
else
digitalWrite(7,HIGH);
if(data&0x40)
digitalWrite(8,LOW);
else
digitalWrite(8,HIGH);
if(data&0x80)
digitalWrite(9,LOW);
else
digitalWrite(9,HIGH);
}
}
歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/)
Powered by Discuz! X3.2