BASIC4MCU | 질문게시판 | 아두이노 심박센서 및 LCD로 BPM나타내기 질문있습니다.
페이지 정보
작성자 공백 작성일2022-12-12 15:49 조회5,862회 댓글2건본문
PULSESENSOR 헤더파일과 LCD헤더파일을 추가한 뒤 회로설치 후 LCD와 심박센서의 전원은 들어오지만 시리얼 모니터에 심박센서의 결과값 및 LCD에 BPM표시가 되지 않습니다.
코드는 아래와 같이 작성했습니다. 많은 도움 부탁드립니다. 감사합니다.
#define USE_ARDUINO_INTERRUPTS true
#include <PulseSensorPlayground.h>
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
const int PulseWire = 0;
const int LED13 = 13;
int Threshold = 550;
LiquidCrystal_I2C lcd(0x27, 16, 2);
PulseSensorPlayground pulseSensor;
void setup() {
Serial.begin(9600);
pulseSensor.analogInput(PulseWire);
pulseSensor.blinkOnPulse(LED13);
pulseSensor.setThreshold(Threshold);
if (pulseSensor.begin()) {
Serial.println("We created a pulseSensor Object !");
}
lcd.init();
lcd.backlight();
void loop() {
lcd.init();
int myBPM = pulseSensor.getBeatsPerMinute();
if (pulseSensor.sawStartOfBeat()) {
Serial.println("♥ A HeartBeat Happened ! ");
Serial.print("BPM: ");
Serial.println(myBPM);
lcd.setCursor(0,0);
lcd.print("BPM: ");
lcd.print(myBPM);
}
delay(20);
}
댓글 2
조회수 5,862master님의 댓글
master 작성일셋업함수 마지막의 괄호는 왜 없을까요?
master님의 댓글
master 작성일
#define USE_ARDUINO_INTERRUPTS true
#include <PulseSensorPlayground.h>
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
//
const int PulseWire=0;
const int LED13=13;
//
int Threshold=550;
LiquidCrystal_I2C lcd(0x27,16,2);
PulseSensorPlayground pulseSensor;
//
void setup(){
Serial.begin(9600);
pulseSensor.analogInput(PulseWire);
pulseSensor.blinkOnPulse(LED13);
pulseSensor.setThreshold(Threshold);
if (pulseSensor.begin()){ Serial.println("We created a pulseSensor Object !"); }
lcd.init(); lcd.backlight();
}
//
void loop(){
int myBPM=pulseSensor.getBeatsPerMinute();
if (pulseSensor.sawStartOfBeat()){
Serial.println("♥ A HeartBeat Happened ! ");
Serial.print("BPM: "); Serial.println(myBPM);
lcd.setCursor(0,0); lcd.print("BPM: "); lcd.print(myBPM); lcd.print(" ");
}
delay(20);
}
너무 짧은 주기로 LCD를 출력하면 LCD가 따라가지 못합니다.
제대로 표시가 안될 경우에는
마지막 20ms 딜레이를 키우든지, millis() 함수를 사용해서 LCD를 1초 주기로 동작시키든지 하세요