질문게시판 > led 스트립 질문

TODAY375 TOTAL182,575
사이트 이용안내
Login▼/회원가입
포럼 동영상강좌 회원가입


BASIC4MCU | 질문게시판 | led 스트립 질문

페이지 정보

작성자 뭘보노옹 작성일2018-04-16 17:53 조회290회 댓글1건

본문

	

// 초음파#1
int trigPin1 = 2;
int echoPin1 = 3;
// 초음파#2
int trigPin2 = 4;
int echoPin2 = 5;
//led
int r = 12;
int g = 13;

// 초음파 최대-최소거리 설정
int maximumRange = 10;  
int minimumRange = 0;   
// 피에조센서
int Sound = A1;

// 변수선언
const int system_time = 50;                      // 전체 시스템 시간
const int ultrasonic_time = 10;                  // 초음파 측정 시간
long duration1,duration2, distance1, distance2;  // 펄스 시간, 거리 측정용 변수
long distance1_a, distance2_a;                   // 구동연산 변수
int ultrasonic_count = 2;                        // 초음파 Count만큼 감지 후 평균 값에 의해 동작 함
const long distanse_set = 9;                    // 초음파 사람 감지 세팅 값 - 해당 거리 일 경우에 사람 혹은 물체로 인지 함

int mode=0, cnt=0;


void setup()
{
  Serial.begin(9600);
 
  //초음파
  pinMode(trigPin1, OUTPUT);
  pinMode(echoPin1, INPUT);
  pinMode(trigPin2, OUTPUT);
  pinMode(echoPin2, INPUT);
  pinMode(Sound, OUTPUT);

  pinMode(r, OUTPUT);
  pinMode(g, OUTPUT);
 
  delay(system_time);

  digitalWrite(r,HIGH);
}

 


void loop() {
delay(system_time); // 시스템 시간


//#1. 초음파 센서의 데이터를 ultrasonic_count 만큼 데이터를 감지 후 에 저장한다.
distance1_a = 0;
distance2_a = 0;
/*** 초음파1 감지 ***/
 for (int i=1; i <= ultrasonic_count; i++){ 
 digitalWrite(trigPin1, LOW);
 delayMicroseconds(2); 
 digitalWrite(trigPin1, HIGH);
 delayMicroseconds(10); 
 digitalWrite(trigPin1, LOW);
 duration1 = pulseIn(echoPin1, HIGH);
 distance1 = duration1/58.2; // 측정된 시간을 cm로 환산
 distance1_a = distance1_a + distance1;
 delay(ultrasonic_time);
}
/*** 초음파2 감지 ***/ 
for (int i=1; i <= ultrasonic_count; i++){
 digitalWrite(trigPin2, LOW);
 delayMicroseconds(2); 
 digitalWrite(trigPin2, HIGH);
 delayMicroseconds(10); 
 digitalWrite(trigPin2, LOW);
 duration2 = pulseIn(echoPin2, HIGH);
 distance2 = duration2/58.2; // 측정된 시간을 cm로 환산
 distance2_a = distance2_a + distance2;
 delay(ultrasonic_time);
}

//#2. 감지한 데이터의 평균 값을 산출 한다.
distance1= long(distance1_a/ultrasonic_count);
distance2= long(distance2_a/ultrasonic_count);

//#3. 초음파 측정 거리를 제한한다. - maxiumrange만큼만 측정 할 수 있도록 제한을 둔다.
 if(distance1 >= maximumRange){  distance1 = maximumRange; } 
 
 if(distance2 >= maximumRange){  distance2 = maximumRange; }


 /*** 동작여부 확인 - 컴퓨터 시리얼모니터 ***/
 Serial.println(distance1);
 Serial.println(distance2);

 if(mode==0){
 

 if(( distance1 <= distanse_set )||( distance2 <= distanse_set )){
  tone(A1,1000,200); //tone(pin, frequency, duration)
 Serial.println("\n");}
 }
 if(( distance1 > distanse_set )||( distance2 > distanse_set ))
 { digitalWrite(Sound,LOW);
}

 if(++cnt>=55){ cnt=0;

    mode^=1;

    if(mode) { digitalWrite(r, LOW); digitalWrite(g,HIGH); }
    else     { digitalWrite(r,HIGH); digitalWrite(g, LOW); }

 }
}

 

위의 소스가 led가 적색일 때 초음파센서에 물체가 감지되면 부저가 울리고

                    led가 녹색일 때 초음파센서에 물체가 감지되면 부저가 울리지 않는

이런 형식인데요

 

여기에 led 스트립 이라는 것을 추가하고 싶은데 소스를 어떻게 짜야할지 모르겠습니다.. ㅠ

led 스트립도 마찬가지로 led와 같은 색으로 바뀌기만 하면 되는데

led스트립을 어떻게 써야할지 잘 모르겠습니다 ㅠㅠ

 

led스트립은 RGD 3색 LED 네오픽셀 스트립을 사용합니다.

 

led가 적색일때 led 스트립도 같이 녹색이고

led가 녹색일때 led 스트립도 같이 적색으로 같이 바뀌는 걸 하고싶은데

어떻게 해야할까요.. ㅠㅠ

 

 

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

댓글 1

조회수 290

master님의 댓글

master 작성일

https://www.google.co.kr/search?q=%EC%95%84%EB%91%90%EC%9D%B4%EB%85%B8+%EB%84%A4%EC%98%A4%ED%94%BD%EC%85%80+%EC%98%88%EC%A0%9C&oq=%EC%95%84%EB%91%90%EC%9D%B4%EB%85%B8+%EB%84%A4%EC%98%A4%ED%94%BD&aqs=chrome.2.69i57j0l5.4525j0j7&sourceid=chrome&ie=UTF-8

웹에 있는 예제로 구동을 먼저 해보세요

질문게시판HOME > 질문게시판 목록

MCU, AVR, 아두이노 등 전자공학에 관련된 질문을 무료회원가입 후 작성해주시면 전문가가 답변해드립니다.

ATMEGA128PWMLED초음파
아두이노AVR블루투스LCD
UART모터적외선ATMEGA
전체 스위치 센서
게시물 검색

Privacy Policy
MCU BASIC ⓒ 2017