●プログラム作成時によく使う命令
■一定時間の停止
delay(500);
■デジタルアナログ入出力
▼ポートの設定
pinMode(LED_BUILTIN, OUTPUT);
pinMode(2, OUTPUT);
pinMode(2, INPUT);
pinMode(2, INPUT_PULLUP);
▼ポートへの出力
digitalWrite(LED_BUILTIN,HIGH);
digitalWrite(LED_BUILTIN,LOW);
digitalWrite(2,HIGH);
digitalWrite(2,LOW);
▼ポートからのデジタル入力
digitalRead(2);
▼ポートからのアナログ入力
アナログ入力はポートの設定などは一切無くいきなり読み出す
analogRead( A0 );
もし、出力に設定している場合には読み出す前に入力に切り替える。
pinMode(A0, INPUT);
Serial.println(analogRead( A0 ), DEC);
pinMode(A0, OUTPUT);
■シリアル通信
▼通信の設定
Serial.begin(9600);
▼送信
testが出力される
Serial.println("test");
100が出力される
Serial.println(100);
2進数で出力される
Serial.println(c,BIN);
16進数で出力される
Serial.println(c,HEX);
10進数で出力される
Serial.println(c,DEC);
aが出力される
Serial.write(0x41);
2進数で0埋めで出力
void serial_write_bin(unsigned int data) {
for (int i = 0; i < 8; i++) {
if ((data << i) & B10000000) {
Serial.write('1');
} else {
Serial.write('0');
}
}
Serial.write('\n');
}
▼受信
バッファに受信データが無い場合には -1 を返します。
Serial.read();
受信バッファに到着している文字数を知る
Serial.available();
受信バッファに到着したら読む
char*c = buf;
while (Serial.available()) {
*c++ = Serial.read();
}
■ビットフィールド
union Field
{
struct Bit
{
unsigned char b1 : 1;
unsigned char b2 : 1;
unsigned char b3 : 1;
unsigned char b4 : 1;
unsigned char b5 : 1;
unsigned char b6 : 1;
unsigned char b7 : 1;
unsigned char b8 : 1;
} bit;
unsigned char ch;
};
▼ 1ビット目を出力
Field f;
f.ch = 0xFF;
digitalWrite(A0, f.bit.b1);
▲トップページ
>
マイコンなど