2018年5月5日 星期六

UNO學習18042.自製電子尺

UNO學習18042.自製電子尺

請參考及學習250超音波倒車雷達電子尺
及學習262螢幕轉接板IIC/I2C

準備以下硬體並安裝
Arduino UNO
超音波模組HC-SR04
IIC1602螢幕
7~12V電池或5v移動電源接方USB
雷射頭-非必要
接線

硬體連接如下↓
UNO的A4接螢幕轉接板SDA
UNO的A5接螢幕轉接板SCL
UNO的P2接超音波模塊Trig
UNO的P3接超音波模塊Echo


#include <Wire.h>
#include <LiquidCrystal_I2C.h> //務必先安裝資料庫

LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); //設定位址或0x27或0x20
unsigned long _ABVAR_1_SR = 0UL ;
int ardublockUltrasonicSensorCodeAutoGeneratedReturnCM(int trigPin, int echoPin)
{
  long duration;
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(20);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  duration = duration / 59;
  if ((duration < 2) || (duration > 400)) return false;
  return duration;
}

void setup()
{
  Serial.begin(9600); //通訊速率
  lcd.begin(16, 2); //初始化16字元2行
  lcd.backlight();
}

void loop()
{
  _ABVAR_1_SR = ardublockUltrasonicSensorCodeAutoGeneratedReturnCM( 2 , 3 ) ;
  Serial.println(_ABVAR_1_SR); //在電腦監控視窗顯示
  lcd.clear();
  lcd.print(_ABVAR_1_SR); //在IIC螢幕顯示
  delay( 1000 ); //每秒取一次數據顯示
}


注意該超音波模組HC-SR04最大量測距離為400公分,超過顯示0,
IIC1602螢幕若無法顯示則需再確認該模組的通訊位址,
測試OK後要裝成移動式,但麵包板太大,又想裝上紅雷射來定位,
此時發現SMD貼片板本的CH340機板,有提供2個5V和1個3.3V的接口,
因此移裝到該機板,如此就不需要麵包板了↓


測試OK要開始安裝,又發現超音波模塊的安裝孔太小,需再加大,
並把紅雷射頭裝在底下,各部分螺絲及支架等組裝完成↓
窮則變,變則通,世界不斷變化前進,唯一不變的只有變
www.ee543.com