●プログラム作成時によく使う命令

■一定時間の停止
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);


▲トップページ > マイコンなど