BASIC4MCU | 질문게시판 | 아두이노 적외선온도센서 스피커모듈
페이지 정보
작성자 죠르디 작성일2022-05-09 19:38 조회1,397회 댓글4건본문
안녕하세요 아두이노에 대해 질문드립니다. 제가 적외선 온도 센서에서 일정 이상의 온도가 측정되면 소리가 나는 코드를 작성하고 싶습니다. 정확한 값을 위해 온도의 평균을 내어서 작동시키고 싶어서 평균 값 사용했습니다.
적외선 온도 센서는 GY-906과 스피커+앰프 모듈 사용중입니다. 스피커 출력은 13번이고 40도 이상이면 짧은 부저 소리가 났으면 합니다. 코딩에 대해 잘 몰라서 질문드립니다. 도와주시면 정말 감사하겠습니다. if문을 쓰면 될거라고 생각했는데 마음처럼 생각처럼 안되더라구요ㅜ#include <Wire.h>#include <Adafruit_MLX90614.h>Adafruit_MLX90614 mlx = Adafruit_MLX90614();float temp;int index = 0;void setup() {Serial.begin(9600);Serial.println("Adafruit MLX90614 test");mlx.begin();}void loop() { //데이터 누적..temp += mlx.readObjectTempC();index++; //0 1 2 3 4 (5)if(index >= 10){ //결과출력temp = temp/10;Serial.println(temp);temp = 0;index =0;}delay(75);}
댓글 4
조회수 1,397master님의 댓글
master 작성일
#include <Wire.h>
#include <Adafruit_MLX90614.h>
Adafruit_MLX90614 mlx = Adafruit_MLX90614();
float sum=0,avr;
int index=0;
bool flag=0;
//
void setup(){
pinMode(13,OUTPUT);
Serial.begin(9600);
Serial.println("Adafruit MLX90614 test");
mlx.begin();
}
//
void loop() { //데이터 누적..
sum+=mlx.readObjectTempC();
if(++index>=10){ //결과출력
avr=sum/10; Serial.println(avr);
sum=0; index=0;
if(avr>40){
if(flag==0){ flag=1;
digitalWrite(13,1); delay(500); digitalWrite(13,0);
}
}
else{ flag=0; }
}
delay(75);
}
부저는 멜로디용 말고
내부에 발진회로가 내장된 타입을 구입하세요
전원만 연결하면 소리가 나는 부저입니다.(active buzzer)
죠르디님의 댓글
죠르디
답변 감사합니다. 근데 스피커 모듈로는 아예 구현 불가능하나요? 지금 구매하기 곤란해서요..ㅜㅜ
master님의 댓글
master
멜로디 예제 공부해서 출력하세요
죠르디님의 댓글
죠르디
덕분에 해결했습니다. 도움 주셔서 감사합니다!