BASIC4MCU | 질문게시판 | 답변 : 아두이노 메가를 이용하여 lidar 거리 측정기 코딩 질문입니다. delay를 millis() 함수로 바꾸고 싶은데 …
페이지 정보
작성자 master 작성일2020-03-16 23:36 조회6,615회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=11767
본문
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2020-03-16 오후 11:38:59// by Ok-Hyun Park////Lidar용#include <stdint.h>#include <Wire.h>#include <LIDARLite_v3HP.h>//LCD용#include <Wire.h>#include <LiquidCrystal_I2C.h>//#include <SPI.h>#include <SD.h>//RTC용#include "RTClib.h"LIDARLite_v3HP myLidarLite;#define FAST_I2CLiquidCrystal_I2C lcd(0x27,20,4);RTC_DS3231 rtc;char daysOfTheWeek[7][12]={ "Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};//int chipSelect=53;File myLidarData;//uint16_t distance;//unsigned long t,t1,t2,t3;//void setup(){Serial.begin(115200);//Wire.begin();#ifdef FAST_I2C#if ARDUINO>=157Wire.setClock(400000UL);#elseTWBR=((F_CPU/400000UL)-16)/2;#endif#endif//myLidarLite.configure(0);//lcd.init(); lcd.backlight();//pinMode(53,OUTPUT);SD.begin(chipSelect);//t=t1=t2=t3=millis();}//void loop(){if(Serial.available()>0){uint8_t c=(uint8_t)Serial.read();}//----------------------------------------t=millis();//----------------------------------------if(t-t1>=50){ t1=t; // 50msmyLidarLite.takeRange();*distance=myLidarLite.readDistance();}//----------------------------------------if(t-t2>=100){ t2=t; // 100mslcd.clear();lcd.setCursor( 0,2); lcd.print("Distance=");lcd.setCursor(15,3); lcd.print("cm");lcd.setCursor(10,3); lcd.print(distance);lcd.setCursor( 1,0); lcd.print("Date: "); lcd.print(now.year(),DEC); lcd.print('/'); lcd.print(now.month(),DEC); lcd.print('/'); lcd.print(now.day(),DEC);lcd.setCursor( 5,1); lcd.print(now.hour(),DEC); lcd.print(': '); lcd.print(now.minute(),DEC); lcd.print(': '); lcd.print(now.second(),DEC);}//----------------------------------------if(t-t3>=1000){ t3=t; // 1000msDateTime now=rtc.now();Serial.print("Distance="); Serial.print(distance); Serial.println("cm");//myLidarData=SD.open("LDData.txt",FILE_WRITE);if(myLidarData){myLidarData.print("Date: ");myLidarData.print(now.year(),DEC); myLidarData.print("/");myLidarData.print(now.month(),DEC); myLidarData.print("/");myLidarData.print(now.day(),DEC); myLidarData.print(".");myLidarData.print(daysOfTheWeek[now.dayOfTheWeek()]); myLidarData.print(".");myLidarData.print(now.hour(),DEC); myLidarData.print(": ");myLidarData.print(now.minute(),DEC); myLidarData.print(": ");myLidarData.print(now.second(),DEC); myLidarData.print(".");myLidarData.print("Distance: "); myLidarData.println(distance);myLidarData.close();}}}//void dumpCorrelationRecord(){ myLidarLite.correlationRecordToSerial(256); }//
댓글 0
조회수 6,615등록된 댓글이 없습니다.