Arduino + TFT液晶 + 超音波センサ

バージョン情報
Arduino Uno , Arduino IDE 1.0.5 , windows 8.1

前回の続き。

今回は超音波センサで測定した距離をTFTカラー液晶に表示してみた。

材料

Arduino Uno
HC-SR04 超音波距離センサーモジュール For Arduino
1.8″ TFT カラー LCD ディスプレイ

回路

TFT+HC_SR04

ソースコード

Arduinoライブライから “TFT.h” “SPI.h”をありがたく使用させて貰う。

#include <TFT.h>
#include <SPI.h>

// pin definition for the Uno
#define cs   10
#define dc   9
#define rst  8  

// create an instance of the library
TFT TFTscreen = TFT(cs, dc, rst);

// char array to print to the screen
char sensorPrintout[7];

const int TrigPin = 2;
const int EchoPin = 3;
float cm;
int mm;
String str_buf = "string";

void setup() {

  pinMode(TrigPin, OUTPUT);
  pinMode(EchoPin, INPUT);
  
  // Put this line at the beginning of every sketch that uses the GLCD:
  TFTscreen.begin();
  TFTscreen.background(0, 0, 0);
  
  // write the static text to the screen
  // set the font color to white
  TFTscreen.stroke(255,255,255);
  TFTscreen.setTextSize(2);
  // write the text to the top left corner of the screen
  TFTscreen.text("Distance :\n ",0,0);

  // ste the font size very large for the loop
  TFTscreen.setTextSize(3);
}

void loop() {

  digitalWrite(TrigPin, LOW); //Low high and low level take a short time to TrigPin pulse
  delayMicroseconds(2);
  digitalWrite(TrigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(TrigPin, LOW);

  cm = pulseIn(EchoPin, HIGH) / 58.0; //Echo time conversion into cm
  mm = int(cm * 10.0);

  if (mm < 20 || mm > 4000){
    str_buf = "----";
  }else{
    str_buf = String(mm) + " mm";
    int len_str = str_buf.length();
    for (int iii=7; iii>len_str;iii--){
      str_buf = ' ' + str_buf;
    }
  } 

  // convert the reading to a char array
  str_buf.toCharArray(sensorPrintout, 8);

  // set the font color
  TFTscreen.stroke(255,255,255);
  // print the sensor value
  TFTscreen.text(sensorPrintout, 0, 20);
  // wait for a moment
  delay(250);
  // erase the text you just wrote
  TFTscreen.stroke(0,0,0);
  TFTscreen.text(sensorPrintout, 0, 20);
}

動作確認

IMG_201410152449

良好良好!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です