超音波センサで距離測定

このページをAIに渡す

いつものAIに相談

Gemini・その他のAI

このページの情報を添えて、仕組みや使い方、つくりたいものを相談できます。

Geminiを開く

質問文をコピーして、Geminiの入力欄に貼り付けてください。

質問文を確認

目次

概要

Seeed Studio の Grove シリーズのセンサを利用した例。超音波センサで測定した距離をLCDに表示させます。超音波センサは、通常、デジタルピンに入力するが、LCDのスイッチ1とGrove&5VのDin1が同じピンを使用しているため、UARTピンに接続しUARTピンをデジタルピンとして使用します。

overview1

overview2

使用するリーフ

TypeNameQ’ty
AZ62Connector Cover1
AI04LCD1
AX04Spacer1
AX06Grove&5V1
AP01AVR MCU1
AZ01USB1
AV01CR20321
Grove – Ultrasonic Distance Sensor1
CR2032 coin cell battery1
M2*18mm screw2

リーフの組み立て

下図のようにリーフを組み立てましょう。

assemble1

ソースコード

  • 書き込みには、LCDライブラリ、超音波制御 ライブラリ( Ultrasonic.h )が必要です。予め、ライブラリをインクルードしておいてください。詳しくは、こちら。
  • Arduino IDEで下記のプログラムを書きましょう。
//=====================================================================
//  Leafony Platform sample sketch
//     Platform     : Grove + Ultrasonic
//     Processor    : ATmega328P (3.3V /8MHz)
//     Application  : Ultrasonic Ranger demo
//
//     Leaf configuration
//       (1) AI04 LCD
//       (2) AP01 AVR MCU
//       (3) AX01 Grove&5V + Grove - Ultrasonic Ranger (UART pinに接続)
//           ※  Ultrasonic RangerはGrove&5VのUARTに接続する
//       (4) AZ01 USB
//
//		(c) 2021 LEAFONY SYSTEMS Co., Ltd
//		Released under the MIT license
//		https://opensource.org/licenses/MIT
//
//      Rev.00 2021/04/01 First release
//=====================================================================
//Grove - Ultrasonic Rangerを使用したデモ
//LCDに超音波センサーから取得した対象物からの距離を表示
//=====================================================================
//use libraries
//ST7032 - Arduino LiquidCrystal compatible library
//https://github.com/tomozh/arduino_ST7032
//Grove_Ultrasonic_Ranger
//https://github.com/Seeed-Studio/Grove_Ultrasonic_Ranger/
//=====================================================================


#include <Wire.h>
#include <ST7032.h>

// LCD
ST7032 lcd;
char strMessage[8];

#include "Ultrasonic.h"
Ultrasonic ultrasonic(A1);


void setup() {
  Serial.begin(115200);

  //LCD Initialize
  lcd.begin(8, 2);
  lcd.setContrast(30);
  lcd.clear();
  lcd.print(" Hello!");
  lcd.setCursor(0, 1);
  delay(1000);
  lcd.begin(8, 2);
  lcd.setContrast(30);
  lcd.clear();
  lcd.print("12345678");
  lcd.setCursor(0, 1);
  lcd.print("87654321");
  delay(500);
  lcd.clear();
  lcd.blink();
  int i;
  for (i=0 ; i<8 ;i++)
  {
     lcd.setCursor(i, 0);
      delay(100);
  }
  for (i=0 ; i<8 ;i++)
  {
     lcd.setCursor(i, 1);
      delay(100);
  }
  lcd.noBlink();

}



void loop() {
  long RangeInCentimeters;
    
      lcd.clear();
      lcd.print("Distance");
      RangeInCentimeters = ultrasonic.MeasureInCentimeters();
      sprintf(strMessage,"%5d cm",RangeInCentimeters);    
      lcd.setCursor(0, 1);
      lcd.print(strMessage);

  delay(250);
}


Grove-Ultrasonic_LCD.ino

リーフ写真
技術資料・サンプル・Q&Aから探せます