BASIC4MCU | 질문게시판 | 답변 : 인체 감지 코드와 네오픽셀
페이지 정보
작성자 master 작성일2019-05-31 07:38 조회3,282회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=9078
본문
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2019-05-31 오전 7:45:32// by Ok-Hyun Park//#include <Adafruit_NeoPixel.h>#define PIN 11Adafruit_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 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");//a_loop();//b_loop();}//----------------------------------------------------------void a_loop(){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~255for(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(val==1){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;}else{ // val==0fade=neo_cnt-1270;strip.setPixelColor(5,strip.Color(fade,0,0));if(neo_cnt>1720)neo_cnt=1270;}}strip.show();}}
댓글 0
조회수 3,282등록된 댓글이 없습니다.