BASIC4MCU | 질문게시판 | MLX90614온도센서와 능동부저
페이지 정보
작성자 ghost45 작성일2020-11-13 18:10 조회7,336회 댓글4건본문
MLX90614를 사용해서 특정 온도가 넘어갔을 때 능동부저가 울리게끔 하려고 하는데 코딩을 하는 방법이 있을까요? 아직 초보자라서 이것저것 찾아보고 있는데 어려운 것 같아요
댓글 4
조회수 7,336master님의 댓글
master 작성일
MLX90614 예제를 구해서 먼저 동작시키고
정상적으로 동작을 하는 것이 확인되고나면 부저 울리는 것은 LED 키는 정도라서 어렵지 않습니다.
ghost45님의 댓글
ghost45 작성일
#include <Wire.h>
#include <Adafruit_MLX90614.h>
#include "U8glib.h"
Adafruit_MLX90614 mlx = Adafruit_MLX90614();
U8GLIB_SSD1306_128X32 u8g(U8G_I2C_OPT_NONE); // I2C / TWI //0.91인치 128x32 OLED
void setup() {
mlx.begin();
}
void loop() {
u8g.firstPage();
do {
u8g.setFont(u8g_font_fub17);
u8g.setPrintPos(15, 25);
u8g.print(mlx.readObjectTempC());
u8g.print(" \xb0""C"); //온도기호삽입
// delay(500);
}
while( u8g.nextPage() );
}
부저 넣는건 어렵지않은데 온도센서를 이용해서 특정온도 이상일 때 부저를 울리게 하는 코딩이 힘들어요 LM35사용했을 때는 if랑 else써서 했는데 MLX는 코딩이 다른건지 알고 싶어요
master님의 댓글
master 작성일
Adafruit_MLX90614.h 헤더파일에서
readObjectTempC() 함수를 찾으면
double readObjectTempC(void); 반환형이 double 입니다.
u8g.print(mlx.readObjectTempC());
이렇게 온도를 바로 출력하지말고 변수에 넣은 후에 출력하도록 아래처럼 수정해보세요
double temp=mlx.readObjectTempC();
u8g.print(temp);
if()문으로 온도를 체크하는 것은 간단해지죠
if(temp>30){ } // 30도 이상이면
ghost45님의 댓글
ghost45
좋은 답변 감사합니다.