BASIC4MCU | 질문게시판 | (소스포함 수정본) 아두이노 PIR 인체감지센서랑 릴레이 ,네오픽셀을 같이 사용하려는데..
페이지 정보
작성자 아못알 작성일2020-12-04 15:53 조회4,910회 댓글1건본문
저희가 프로젝트가 있어서 준비 중인데 의도는 인체감지센서로 접근을 하면 릴레이가 켜지면서 네오픽셀 불이 들어오고 릴레이가 꺼지면 네오픽셀도 같이 꺼지는 생각을 하고있는데 도저히 릴레이와 네오픽셀이 연동이 안되는거같아 질문 드렸습니다.. 소스가 잘못된건지 , 연결부분에서 잘못된건지 너무 어려워서 아두이노 고수님들 부탁드립니다.. (우노R3보드, 브레드보드 , 네오픽셀, PIR 센서, 1채널 릴레이 하나씩 사용하고 있습니다.) 소스랑, 실물 제작 사진같은걸 좀 보여주시면 감사하겠습니다.. (회로도같은건 이해하기 어렵네요..)
+ 이 소스는 PIR 이랑 네오픽셀만 빵판에 연결 하였을 때 입니다 여기에 릴레이를 합치면 작동이 안됩니다...
#include <Adafruit_NeoPixel.h> // 네오픽셀 라이브러리를 불러옴
int PIR =3;
int n_led = 4; // 네오픽셀 수는 4개
int neo_pin = 6; // 네오픽셀은 6번핀에 연결
Adafruit_NeoPixel strip = Adafruit_NeoPixel(n_led, neo_pin, NEO_GRB + NEO_KHZ800); // 네오픽셀 객체 불러옴
void setup()
{
pinMode(PIR,INPUT); // 스위치를 입력으로 설정
strip.begin(); // 네오픽셀 시작
Serial.begin(9600);
}
void loop()
{
if (digitalRead(PIR) == HIGH) {
strip.setPixelColor(0, 150, 150, 150); // 0번째 LED를 빨간색으로 설정
strip.setPixelColor(1, 150, 150, 150); // 1번째 LED를 초록색으로 설정
strip.setPixelColor(2, 150, 150, 150); // 2번째 LED를 파란색으로 설정
strip.setPixelColor(3, 150, 150, 150); // 3번째 LED를 흰색으로 설정
strip.show(); // 설정한 네오픽셀을 모두 점등
delay(1000);
Serial.println("SENSOR ON");
}
else {
strip.setPixelColor(0, 0, 0, 0); // 0번째 LED를 빨간색으로 설정
strip.setPixelColor(1, 0, 0, 0); // 1번째 LED를 초록색으로 설정
strip.setPixelColor(2, 0, 0, 0); // 2번째 LED를 파란색으로 설정
strip.setPixelColor(3, 0, 0, 0); // 3번째 LED를 흰색으로 설정
strip.show(); // 설정한 네오픽셀을 모두 소등
delay(9000);
}
Serial.println("SENSOR OFF");
delay(1000);
}
릴레이 까지 연결하는 방법이 너무 어렵습니다..
댓글 1
조회수 4,910master님의 댓글
master 작성일
https://studyingandsuccess.tistory.com/18
이 글에서는 릴레이가 6번에 연결되어 있는데요, 10번에 연결하세요(남는핀 아무 곳에 연결해도 됨)
#include <Adafruit_NeoPixel.h> // 네오픽셀 라이브러리를 불러옴
//
int neo_pin=6; // 네오픽셀은 6번핀에 연결
int n_led=4; // 네오픽셀 수는 4개
Adafruit_NeoPixel strip = Adafruit_NeoPixel(n_led,neo_pin,NEO_GRB + NEO_KHZ800); // 네오픽셀 객체 불러옴
int PIR=3;
int relay=10;
//
void setup(){
pinMode(PIR,INPUT);
pinMode(relay,OUTPUT);
strip.begin();
Serial.begin(9600);
}
//
void loop(){
if(digitalRead(PIR)){
digitalWrite(relay,1);
Serial.println("SENSOR ON");
for(int i=0;i<4;i++)strip.setPixelColor(i,150,150,150);
strip.show();
}
else{
digitalWrite(relay,0);
Serial.println("SENSOR OFF");
for(int i=0;i<4;i++)strip.setPixelColor(i,0,0,0);
strip.show();
}
delay(1000);
}