질문게시판 > 인체 감지 코드와 네오픽셀

인기검색어 > 아두이노 센서 ATMEGA128

최신글 질문게시판 동영상강좌 가입하기

▼ BASIC4MCU 후원업체 신제품 정보 ▼

▲ BASIC4MCU 후원업체 신제품 정보 ▲

BASIC4MCU > 질문게시판

인체 감지 코드와 네오픽셀

페이지 정보

작성자 손문일 작성일19-05-31 06:17 조회3,300회 댓글0건

본문

안녕하세요 마스터님

혼자서 또 해보다가 막히네요.

 

빨강색으로 표시된 코드가 문제인듯 합니다.

 

현재 인체 감지 코드 와 네오픽셀만 사용중입니다.

 

문제점

=인체 감지가 된 경우만 네오픽셀 구동됨. 감지가 안되면 구동 멈춤.

 

바라는 점

1.인체감지가 된 경우 

   =네오픽셀 코드가 끝까지 구동됨  

 

2. 네오픽셀 코드가 끝까지 구동된후에도 인체감지가 되면

  =다시 처음부터 구동

 

3.  네오픽셀 코드가 끝까지 구동된후에 인체감지가 안되면

  =파란색 코드 구동(네오픽셀 5번핀)

 

감사합니다.~~

 

 

#include <Adafruit_NeoPixel.h>

#define  PIN      11

Adafruit_NeoPixel strip=Adafruit_NeoPixel(87,PIN,NEO_GRB+NEO_KHZ800);  //네오픽셀 총 갯수를 정함

//

int sensor=7;     //인체 감지 센서

//

unsigned long t;

 

uint8_t  len=0,i,recv_cmd[8];

//

bool flag=0, out=0;

//

unsigned long t_neo=0, t1_neo=0;                                                                           

unsigned int  val=0, neo_cnt=0,neo1_cnt=0,fade=0,c0_cnt=0,c1_cnt=0,c2_cnt=0,c3_cnt=0,c4_cnt=0,c5_cnt=0;           

//

void setup(){

 

  pinMode(7,INPUT);  // echoPin을 입력이다.

  //

  strip.begin(); strip.show(); // Initialize all pixels to 'off'

  strip.setBrightness(255); // Set BRIGHTNESS to about 1/5 (max = 255)

  //

  Serial.begin(115200); while(!Serial);

  delay(100);

 

}

 

//

void loop(){

  t=millis();

  

  int val= digitalRead(sensor);                //인체 감지 센서

 

 

if(val==1)                                //인체 감지 센서

Serial.println("감지 O");

else  

Serial.println("감지 X");

          

if(val==1){                                 

if(flag==0){ flag=1;}

}

else{                 

flag=0;

}

 

a_loop(); 

//b_loop();

}

 

//////////////////////////////////////////////////////////////////////////////////////////

 

void a_loop(){

  if(flag){

    if(t-t_neo>50){ t_neo=t;                                               //Millis 함수 전체 속도 숫자 높일수록 느려짐 

      if(neo_cnt<=255){                                                    //0부터 255까지의 구간

//        if(++c0_cnt>=1){ c0_cnt=0;                                         //++c0_cnt>=1 의 숫자 1을 올릴수록 느려짐 (10을 할 경우 밀함수 숫자 무엇을 바꿔야 하나? 그리고 빛이 툭툭 끊기는 느낌)

          fade=neo_cnt;                                                    //fade 함수 (증가)

          for(int z=0;z<=24;z++)strip.setPixelColor(0,strip.Color(fade,0,0));    //fade/2는 255를 2로 나눈 수까지 fade시킨다 = 127.5까지 증가시킴

//        }

      }

      else if(neo_cnt<=510){                                               //255부터 510까지의 구간

        if(++c1_cnt>=1){ c1_cnt=0;

           fade=neo_cnt-255;                                               //fade=(256~510)-255  =  1~255

          for(int z=0;z<=24;z++)strip.setPixelColor(0,strip.Color(0,255,255));   //fade/2는 255를 2로 나눈 수까지 fade시킨다

          

        }

      }

      else if(neo_cnt<=765){                                               //510부터 765까지의 구간  // main에 motor 신호

        if(++c2_cnt>=1){ c2_cnt=0;

          fade=neo_cnt-510;                                               //fade=neo_cnt-510는 증가

          for(int z=0;z<=24;z++)strip.setPixelColor(0,strip.Color(0,fade,255));          //fade/2는 255를 2로 나눈 수까지 fade시킨다

        }

      }

      else if(neo_cnt<=1020){                                                               // if(neo_cnt<=767)

        if(++c3_cnt>=1){ c3_cnt=0;

          fade=neo_cnt-765;                                               //fade=neo_cnt-765는 감소

          strip.setPixelColor(0,strip.Color(fade,fade-255,fade-255));     //fade(감소),255-fade(증가),255-fade(증가)

        }

      }

       else if(neo_cnt<=1270){                                                               // if(neo_cnt<=767)

        if(++c4_cnt>=1){ c4_cnt=0;

          fade=1020-neo_cnt;                                               //fade=neo_cnt-765는 감소

          strip.setPixelColor(0,strip.Color(fade,255-fade,255-fade));     //fade(감소),255-fade(증가),255-fade(증가)

        }

      }

       else{                                                               // if(neo_cnt<=767)

        if(++c5_cnt>=1){ c5_cnt=0;

          fade=neo_cnt-1270;                                               //fade=neo_cnt-765는 감소

          strip.setPixelColor(2,strip.Color(fade,255-fade,255-fade));     //fade(감소),255-fade(증가),255-fade(증가)

        }

      }

      

      if(++neo_cnt>1720){ neo_cnt=0;                                           

       if(val==0){flag=0;

          fade=neo_cnt-1270;

          strip.setPixelColor(5,strip.Color(fade,0,0));

       }

      }

      strip.show();

    }

  }

}

 

  • BASIC4MCU 작성글 SNS에 공유하기
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기
  • 카카오톡으로 보내기

댓글 : 0

조회수 : 3,300

등록된 댓글이 없습니다.

게시물 검색

BASIC4MCU > 질문게시판 목록

제목 날짜
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은… 스태프  19-01-15
공지 사이트 이용 안내 댓글[25] master  17-10-29
질문 라즈베리파이4 신형 선택문제 댓글[1] maximum  22-06-26
질문 음전압 ADC 댓글[2] 412904  22-06-26
질문 아두이노 센서값 출력 질문입니다! 댓글[1] 아궁2  22-06-24
질문 ATmega128, ATmega28 RS232통신 첨부파일Moon4201  22-06-24
답변 답변 : ATmega128, ATmega28 RS232… 댓글[1] master  22-06-25
질문 서보모터, 온습도센서 코드 질문 댓글[2] 첨부파일kshdlfaldfh  22-06-22
답변 답변 : 서보모터, 온습도센서 코드 질문 댓글[15] master  22-06-22
질문 steppermulti5 질문 응애  22-06-21
답변 답변 : steppermulti5 질문 댓글[1] master  22-06-22
질문 atmega128 avr usart 질문 snoflak  22-06-21
답변 답변 : atmega128 avr usart 질문 댓글[5] master  22-06-21
질문 사용자 정의 함수 변환 하는 방법 댓글[2] 첨부파일da0800  22-06-21
질문 atmega128 댓글[1] 양의노래  22-06-20
질문 아두이노 동시동작 재질문 댓글[9] 첨부파일죠르디  22-06-20
질문 초음파센서로 dc모터 제어하기 댓글[1] 첨부파일난쟁2  22-06-20
질문 아두이노 동시동작 댓글[7] 죠르디  22-06-19
질문 ATMEGA128 UART,FND 연동 질문 JMOD  22-06-19
답변 답변 : ATMEGA128 UART,FND 연동 질문 댓글[1] master  22-06-20
질문 atmeg128 질문이요 댓글[1] 첨부파일공대생er  22-06-18
질문 atmega128 초음파 센서로 신호등 시간초 늘리기 서동씨  22-06-18
답변 답변 : atmega128 초음파 센서로 신호등 시간초… 댓글[1] master  22-06-18
질문 atmega128 댓글[2] 망경이  22-06-18
질문 앱인벤터 이용해서 수동 자동 할라고하는데 ..잘안됩니다… 댓글[1] 따랑해영  22-06-18
답변 질문 : 앱인벤터 이용해서 수동 자동 할라고하는데 ..… 댓글[1] 첨부파일따랑해영  22-06-19
답변 질문 : 앱인벤터 이용해서 수동 자동 할라고하는데 .… 첨부파일따랑해영  22-06-19
질문 서보모터와 초음파센서 댓글[1] 브링미히어  22-06-17
질문 LCD 도와주세요 ㅜㅠㅠㅠ 댓글[2] 첨부파일dentist22  22-06-17
질문 안녕하세요 atmega128 질문드리고 싶습니다. (자… 댓글[3] dlcldl  22-06-17
게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전