BASIC4MCU | 질문게시판 | 답변 : 아두이노
페이지 정보
작성자 master 작성일2018-06-05 16:44 조회7,292회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=1456
본문
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2018-06-05 오후 4:47:35// by Ok-Hyun Park//#include <SoftwareSerial.h>SoftwareSerial BTSerial(4,5); // 소프트웨어 시리얼(TX,RX)//#include <Wire.h>#include <Adafruit_MLX90614.h>Adafruit_MLX90614 mlx=Adafruit_MLX90614();//double Amb,Obj,AmbSum,ObjSum;//void setup(){BTSerial.begin(9600);Serial.begin(9600);Serial.println("Adafruit MLX90614 test");mlx.begin();}//void loop(){AmbSum=0; ObjSum=0;for(int i=0; i<10; i++){AmbSum+=mlx.readAmbientTempC();ObjSum+=mlx.readObjectTempC();Serial.print(i+1); Serial.print("\tAmbient="); Serial.print(Amb);Serial.print("*C\tObject="); Serial.print(Obj); Serial.println("*C");}Amb=AmbSum/10;Obj=ObjSum/10;Serial.print("Ambient Avr.="); Serial.print(Amb);Serial.print("*C\tObject Avr.="); Serial.print(Obj); Serial.println("*C");Serial.println();delay(2000);if(Obj<28)analogWrite(4,HIGH);else analogWrite(4,LOW);}------비접촉 적외선 센서#include <SoftwareSerial.h>#include <TinyGPS.h>/*This sample code demonstrates the normal use of a TinyGPS object.It requires the use of SoftwareSerial,and assumes that you have a4800-baud serial GPS device hooked up on pins 3(rx)and 4(tx).*/TinyGPS gps;SoftwareSerial nss(3,4);static void gpsdump(TinyGPS&gps);static bool feedgps();static void print_float(float val,float invalid,int len,int prec);static void print_int(unsigned long val,unsigned long invalid,int len);static void print_date(TinyGPS&gps);static void print_str(const char*str,int len);void setup(){Serial.begin(115200);nss.begin(9600);Serial.print("Testing TinyGPS library v."); Serial.println(TinyGPS:: library_version());Serial.println("by Mikal Hart");Serial.println();Serial.print("Sizeof(gpsobject)="); Serial.println(sizeof(TinyGPS));Serial.println();Serial.println("Sats HDOP Latitude Longitude Fix Date Time Date Alt Course Speed Card Distance Course Card Chars Sentences Checksum");Serial.println("(deg)(deg)Age Age(m)---from GPS--------to London----RX RX Fail");Serial.println("--------------------------------------------------------------------------------------------------------------------------------------");}//void loop(){bool newdata=false;unsigned long start=millis();// Every second we print an updatewhile(millis()-start<1000){if(feedgps())newdata=true;}gpsdump(gps);//while(BTSerial.available()){ byte data=BTSerial.read(); Serial.write(data); }while(Serial.available()){ byte data=Serial.read(); BTSerial.write(data); }}//static void gpsdump(TinyGPS&gps){float flat,flon;unsigned long age,date,time,chars=0;unsigned short sentences=0,failed=0;static const float LONDON_LAT=51.508131,LONDON_LON=-0.128002;print_int(gps.satellites(),TinyGPS:: GPS_INVALID_SATELLITES,5);print_int(gps.hdop(),TinyGPS:: GPS_INVALID_HDOP,5);gps.f_get_position(&flat,&flon,&age);print_float(flat,TinyGPS:: GPS_INVALID_F_ANGLE,9,5);print_float(flon,TinyGPS:: GPS_INVALID_F_ANGLE,10,5);print_int(age,TinyGPS:: GPS_INVALID_AGE,5);print_date(gps);print_float(gps.f_altitude(),TinyGPS:: GPS_INVALID_F_ALTITUDE,8,2);print_float(gps.f_course(),TinyGPS:: GPS_INVALID_F_ANGLE,7,2);print_float(gps.f_speed_kmph(),TinyGPS:: GPS_INVALID_F_SPEED,6,2);print_str(gps.f_course()==TinyGPS:: GPS_INVALID_F_ANGLE?"***": TinyGPS:: cardinal(gps.f_course()),6);print_int(flat==TinyGPS:: GPS_INVALID_F_ANGLE?0UL:(unsigned long)TinyGPS:: distance_between(flat,flon,LONDON_LAT,LONDON_LON)/ 1000,0xFFFFFFFF,9);print_float(flat==TinyGPS:: GPS_INVALID_F_ANGLE?0.0: TinyGPS:: course_to(flat,flon,51.508131,-0.128002),TinyGPS:: GPS_INVALID_F_ANGLE,7,2);print_str(flat==TinyGPS:: GPS_INVALID_F_ANGLE?"***": TinyGPS:: cardinal(TinyGPS:: course_to(flat,flon,LONDON_LAT,LONDON_LON)),6);gps.stats(&chars,&sentences,&failed);print_int(chars,0xFFFFFFFF,6);print_int(sentences,0xFFFFFFFF,10);print_int(failed,0xFFFFFFFF,9);Serial.println();}//static void print_int(unsigned long val,unsigned long invalid,int len){char sz[32];if(val==invalid)strcpy(sz,"*******");elsesprintf(sz,"%ld",val);sz[len]=0;for(int i=strlen(sz); i<len;++i)sz[i]=' ';if(len>0)sz[len-1]=' ';Serial.print(sz);feedgps();}//static void print_float(float val,float invalid,int len,int prec){char sz[32];if(val==invalid){strcpy(sz,"*******");sz[len]=0;if(len>0)sz[len-1]=' ';for(int i=7; i<len;++i)sz[i]=' ';Serial.print(sz);}else{Serial.print(val,prec);int vi=abs((int)val);int flen=prec+(val<0.0?2: 1);flen+=vi>=1000?4: vi>=100?3: vi>=10?2: 1;for(int i=flen; i<len;++i)Serial.print(" ");}feedgps();}//static void print_date(TinyGPS&gps){int year;byte month,day,hour,minute,second,hundredths;unsigned long age;gps.crack_datetime(&year,&month,&day,&hour,&minute,&second,&hundredths,&age);if(age==TinyGPS:: GPS_INVALID_AGE)Serial.print("**************");else{char sz[32];sprintf(sz,"%02d/%02d/%02d%02d:%02d:%02d ",month,day,year,hour,minute,second);Serial.print(sz);}print_int(age,TinyGPS:: GPS_INVALID_AGE,5);feedgps();}//static void print_str(const char*str,int len){int slen=strlen(str);for(int i=0; i<len;++i)Serial.print(i<slen?str[i]: ' ');feedgps();}//static bool feedgps(){while(nss.available()){if(gps.encode(nss.read()))return true;}return false;}
댓글 0
조회수 7,292등록된 댓글이 없습니다.