STUDY BLOG

초음파센서로 RGB 모듈 제어 본문

Hardware/Raspberry Pi

초음파센서로 RGB 모듈 제어

쥬루 2021. 4. 8. 09:51

라즈베리파이 C++

 

거리 0~10사이 빨간불 on

거리 10~15사이 녹색불 on

거리 15~30사이 파란불 on

 1 #include <iostream>
 2 #include <wiringPi.h>
 3 using namespace std;
 4
 5 #define PIN_TRIG 23
 6 #define PIN_ECHO 24
 7 #define RANGE_MAX 200
 8 #define RANGE_MIN 0
 9
10 #define LED_R  18
11 #define LED_G  17
12 #define LED_B  27
13
14
15 int main(int argc, char* argv[]){
16     wiringPiSetupGpio();
17     unsigned int T,L;
18     pinMode(PIN_TRIG, OUTPUT);
19     pinMode(PIN_ECHO, INPUT);
20     pinMode(LED_R, OUTPUT);
21     pinMode(LED_G, OUTPUT);
22     pinMode(LED_B, OUTPUT);
23
24     while(1){
25         digitalWrite(PIN_TRIG, LOW); delayMicroseconds(2);
26         digitalWrite(PIN_TRIG, HIGH); delayMicroseconds(20);
27         digitalWrite(PIN_TRIG, LOW);
28         while(digitalRead(PIN_ECHO) == LOW);
29         unsigned int startTime = micros();
30         while(digitalRead(PIN_ECHO) == HIGH);
31         T=micros() - startTime;
32         L=T/58.2;
33
34         if(0<=L && L<10){
35             cout<<L<<endl;
36              digitalWrite(LED_R,HIGH);
37              digitalWrite(LED_G,LOW);
38              digitalWrite(LED_B,LOW); }
39
40         else if(10<=L && L<15) {
41              digitalWrite(LED_R,LOW);
42              digitalWrite(LED_G,HIGH);
43              digitalWrite(LED_B,LOW);  }
44
45         else if(15<=L && L<30) {
46              digitalWrite(LED_R,LOW);
47              digitalWrite(LED_G,LOW);
48              digitalWrite(LED_B,HIGH);  }
49
50         else {
51             digitalWrite(LED_R,LOW);
52             digitalWrite(LED_G,LOW);
53             digitalWrite(LED_B,LOW);  }
54
55         delay(1000);
56     }
57 }
58

'Hardware > Raspberry Pi' 카테고리의 다른 글

온도센서로 RGB 모듈 제어  (0) 2021.04.08
LED 번갈아 페이딩  (0) 2021.04.07
디바운싱을 이용한 LED 제어  (0) 2021.04.07