前回は超音波測距モジュールを使用して距離を測定してみました。
今回はライブラリを使用して温度補正できるようにしてみましょう。使用する回路は前回と同様です。
目次
ライブラリのインストール
arduino->Sketch->Include library-> Manage libraries.と進んでください。
検索窓に『UltrasonicSensor』と入れて検索します。
そして、インストールしてください。
コード
/**********************************************************************
Filename : Ultrasonic Ranging
Description : Use the ultrasonic module to measure the distance.
Auther : www.freenove.com
Modification: 2022/10/25
**********************************************************************/
#include <UltrasonicSensor.h>
UltrasonicSensor ultrasonic(13, 14);
void setup() {
Serial.begin(115200);
int temperature = 22;
ultrasonic.setTemperature(temperature);
}
void loop() {
int distance = ultrasonic.distanceInCentimeters();
Serial.printf("Distance: %dcm\n",distance);
delay(300);
}
なんともシンプルなコードですね。これがライブラリの威力です。ありがたや~。
さて、これだけだとあまりにも芸が無いので、前回ちょっと触れたサーミスタを使用して、現在の温度を取得し反映させてみましょう。
以前の記事の回路図・配線図・コードを参考に、どうしたら現在の温度を取得して反映させられるか考えてみましょう。
Project 13.1 サーミスタ/Thermometer
前回はフォトレジスターを使って周辺の明るさに応じてLEDの光量をコントロールしてみました。 https://kaneshige.org/?p=406 今回はサーミスタを使用して温度を測定して...
カスタマイズ例
#include <UltrasonicSensor.h>
#define PIN_ANALOG_IN 1
UltrasonicSensor ultrasonic(13, 14);
void setup() {
Serial.begin(115200);
}
void loop() {
ultrasonic.setTemperature(temp());
int distance = ultrasonic.distanceInCentimeters();
Serial.printf("Distance: %dcm\n",distance);
delay(300);
}
int temp() {
int adcValue = analogRead(PIN_ANALOG_IN); //read ADC pin
double voltage = (float)adcValue / 4095.0 * 3.3; // calculate voltage
double Rt = 10 * voltage / (3.3 - voltage); //calculate resistance value of thermistor
double tempK = 1 / (1 / (273.15 + 25) + log(Rt / 10) / 3950.0); //calculate temperature (Kelvin)
double tempC = tempK - 273.15; //calculate temperature (Celsius)
//Serial.printf("ADC value : %d,\tVoltage : %.2fV, \tTemperature : %.2fC\n", adcValue, voltage, tempC);
//delay(1000);
return (int)tempC;
}
こんな感じだと温度を取得してより正確に距離を測れるのではないでしょうか?
あくまでも一例なので、皆さんのオリジナルなコードを作成頂いて大丈夫です!
次回はマトリックスキーパッドについて学びましょう!
Project 22.1 マトリックスキーパッド/Matrix Keypad
前回は超音波測距モジュールを温度補正して距離を測定してみました。 https://kaneshige.org/?p=626 今回はマトリックスキーパッドを使用してみましょう。 【4x4マト...
コメント