ebisukeプログラミング初心者脱出黙示録

30歳を過ぎてから始めたプログラミングと競プロの記録。Pythonで取り組んでいます。Arduinoで電子工作も

初心者のArduinoプログラミング入門【シリアルモニタ編】

今回もArduinoでプログラミング学習をしていきます!

この記事ではアナログ入力とシリアルモニタの基本的な使い方を学習します。

可変抵抗を使用してアナログ入力端子に加わる電圧の変化をシリアルモニタで観察することが目標です。

目標

ブレッドボード、可変抵抗とボタンスイッチを使用して回路を作ります。

ボタンスイッチが押されているときに、可変抵抗により変化するアナログ入力端子の電圧をシリアルモニタでPCに表示させることを目標としました!

回路図

f:id:ebisuke33:20210901220640j:plain

アナログ入力端子A0を可変抵抗に、デジタル7番ピンをボタンスイッチに接続します。


f:id:ebisuke33:20210901220800j:plain

上図のような回路図になります。

アナログ入力端子の分解能

Arduino UNOのアナログ入力端子の分解能は10bitです。

したがって2^10 = 1024段階の数値(0~1023)でArduinoは認識することができます。

この値を用いてサーボモータの回転角度を指示することもできるので、機会があったら試してみたいと思います。


アナログ入力値はanalogRead関数で読み取ることができます。

次のスケッチでさっそく使ってみます。

スケッチ

// ピン7をボタンスイッチに割り付け
const int pinButton = 7;

void setup() {
  // シリアル通信の設定
  Serial.begin(9600);
  // ピン7をにPULLUPして入力に
  pinMode(pinButton, INPUT_PULLUP);
}

void loop() {
  // アナログ0番ピンの値をaに代入
  int a = analogRead(0);
  
  // ボタンが押されていたら
  if (digitalRead(pinButton) == LOW){
    // アナログ0番ピンの値を出力
    Serial.println(a);
  }
  delay(500);
}

ボタンスイッチはデジタル7番ピンに割り付けます。

シリアルモニタを有効にするため、setup()内でSerial.begin(9600)によりシリアル通信の準備を行います。

(9600)は通信速度で、シリアルモニタ画面の設定と同じにする必要があります。


loop()内ではアナログ0番ピンの値をanalogRead関数で読み取り、aに代入しました。

ボタンスイッチが押されているときにSerial.println関数でシリアルモニタにaを出力します。


これでシリアルモニタにaの値が表示されますので、その値を確認していきました。

動作確認

シリアルモニタはツールタブからシリアルモニタの項目をクリックすると表示できます。
右上にある虫眼鏡ボタンを押すことでも、同じ画面を開けます。

f:id:ebisuke33:20210901220946p:plain


ブレットボード中央左にあるボタンを押すと、シリアルモニタに値が表示されました。

f:id:ebisuke33:20210901221018j:plain


さらにブレットボード中央右にある可変抵抗のツマミを回すと、表示される値が変化することが確認できました。

f:id:ebisuke33:20210901221058p:plain

まとめ

可変抵抗に加わる電圧をアナログ入力端子で取り込むこと、そして、取り込んだ値をシリアルモニタでパソコンに表示することを学びました。

Arduinoデバッグ時に有効だと思いますので、これからも活用して使いこなせるようになりたいです。



この記事で使用しているArduinoは elegooというメーカの互換品です。

部品もついてきて安価なので学習用に購入しました。