概要
arduinoでシリアルやってみた。
デジタルオシロスコープで波形、撮ったので、真似してみた。
送信のみ、実装。
シリアルの波形
tera termで「U」を送った。0x55。
9600ボー、パリティなし、ストップ1
写真
unoのD13に、RXをつなぐ。
結果
tera termで、受け取った。
サンプルコード
start bit を送り、lsbからmsbへ、8個送って、stop bit送るを500msで繰り返す。
void setup()
{
pinMode(13, OUTPUT);
digitalWrite(13, HIGH);
}
void loop()
{
byte data = 'U';
byte mask = 0x01;
int i;
delay(500);
digitalWrite(13, LOW);
delayMicroseconds(100);
for (i = 0; i < 8; i++)
{
if (data & mask)
{
digitalWrite(13, HIGH);
}
else
{
digitalWrite(13, LOW);
}
delayMicroseconds(100);
mask <<= 1;
}
digitalWrite(13, LOW);
delayMicroseconds(100);
digitalWrite(13, HIGH);
}
以上。