BASIC4MCU | 질문게시판 | 답변 : 초음파센서에 아무것도 잡히지 않을 시 그래프를 비워놓는 방법 질문드립니다.
페이지 정보
작성자 master 작성일2024-04-14 13:36 조회1,193회 댓글0건본문
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
const int trig_pin=3,echo_pin=4;
//
byte b00[8]={00,00,00,00,00,00,00,00};
byte b16[8]={16,16,16,16,16,16,16,16};
byte b24[8]={24,24,24,24,24,24,24,24};
byte b28[8]={28,28,28,28,28,28,28,28};
byte b30[8]={30,30,30,30,30,30,30,30};
byte b31[8]={31,31,31,31,31,31,31,31};
float duration=0;
int i=0,j=0,start_flag=1,distance=0;
//
void ss_mode_setup(){
lcd.init(); lcd.backlight();
lcd.createChar(0,b00); lcd.createChar(1,b16); lcd.createChar(2,b24);
lcd.createChar(3,b28); lcd.createChar(4,b30); lcd.createChar(5,b31);
}
//
void setup(){
pinMode(trig_pin,OUTPUT); pinMode(echo_pin,INPUT);
Serial.begin(9600);
ss_mode_setup();
}
//
void loop(){
if(start_flag==1)ss_mode();
}
void ss_mode(){
digitalWrite(trig_pin,1); delayMicroseconds(10); digitalWrite(trig_pin,0);
duration=pulseIn(echo_pin,1);
distance=duration / 29 / 2;
lcd.setCursor(0,1); lcd.print("U: ");
i=distance/5; j=distance%5;
Serial.print(distance); Serial.print(" "); Serial.print(i); Serial.print(" "); Serial.print(j);
if(distance<70){
lcd.setCursor(2,1); for(int k=0; k<i; k++)lcd.write(5); lcd.write(j);
}
}
댓글 0
조회수 1,193등록된 댓글이 없습니다.