반응형
Arduino를 이용한 센서 킷 실습을 하려고 합니다.
사용할 센서 킷은 아래와 같습니다.
아두이노는 아두이노 우노 WIFI입니다.
첫번째는 3색LED 테스트입니다.
3색 LED입니다.
R G B GND 라고 적혀있는데, R G B 는 3색 LED의 색상이고,
이곳에 +5V가 흐르고, GND에 0V 가 흐르면 LED가 켜지게 됩니다.
1. LED 오토플래셔
결선은 RGB를 차례대로 4,3,2번에 연결하고, GND를 GND라고 적혀있는 곳에 연결해 보겠습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | int LED_R=4; int LED_G=3; int LED_B=2; int col=0; void setup() { // put your setup code here, to run once: pinMode(LED_R,OUTPUT); pinMode(LED_G,OUTPUT); pinMode(LED_B,OUTPUT); Serial.begin(9600); } void loop() { // put your main code here, to run repeatedly: col++; if(col>7) col=1; color(col); Serial.print("col="); Serial.println(col); delay(1000); } void color(int color){ switch(color){ case 1: digitalWrite(LED_R,HIGH); digitalWrite(LED_G,LOW); digitalWrite(LED_B,LOW); break; case 2: digitalWrite(LED_R,LOW); digitalWrite(LED_G,HIGH); digitalWrite(LED_B,LOW); break; case 3: digitalWrite(LED_R,LOW); digitalWrite(LED_G,LOW); digitalWrite(LED_B,HIGH); break; case 4: digitalWrite(LED_R,HIGH); digitalWrite(LED_G,HIGH); digitalWrite(LED_B,LOW); break; case 5: digitalWrite(LED_R,LOW); digitalWrite(LED_G,HIGH); digitalWrite(LED_B,HIGH); break; case 6: digitalWrite(LED_R,HIGH); digitalWrite(LED_G,LOW); digitalWrite(LED_B,HIGH); break; case 7: digitalWrite(LED_R,HIGH); digitalWrite(LED_G,HIGH); digitalWrite(LED_B,HIGH); break; } } | cs |
Line 5~7 : 포트를 OUTPUT으로 설정해줍니다.
Line 23~59 : case문을 이용하여 3색 LED를 차례대로 켜줄뿐 아니라, 혼합해서도 켜주게 합니다.
연결한 후 켜져있는 깜박이는 모습입니다.
동작 모습입니다.
printf를 통해 serial로 출력된 모습입니다.
2. 입력값에 따른 LED 켜기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | int LED_R=4; int LED_G=3; int LED_B=2; int col=0; void setup() { // put your setup code here, to run once: pinMode(LED_R,OUTPUT); pinMode(LED_G,OUTPUT); pinMode(LED_B,OUTPUT); Serial.begin(9600); Serial.println("Plz typing a or b or c"); } void loop() { // put your main code here, to run repeatedly: if(Serial.available()>0) { byte data = Serial.read(); Serial.write(data); Serial.print(" "); Serial.println(data); if((data==97)||(data==98)||(data==99)) color(data); else Serial.println("Retry typing"); } } void color(int color){ switch(color){ case 97: digitalWrite(LED_R,HIGH); digitalWrite(LED_G,LOW); digitalWrite(LED_B,LOW); break; case 98: digitalWrite(LED_R,LOW); digitalWrite(LED_G,HIGH); digitalWrite(LED_B,LOW); break; case 99: digitalWrite(LED_R,LOW); digitalWrite(LED_G,LOW); digitalWrite(LED_B,HIGH); break; } } |
이번 소스는 a,b,c 입력값을 받아서 R,G,B를 켜주는 소스입니다.
Line 14~23 : 키 입력을 받습니다. a,b,c인 경우만 LED를 켭니다.
실행모습입니다.
반응형
'Study > Arduino' 카테고리의 다른 글
4-20mA 센서 Arduino에서 읽기(전류센서) (3) | 2018.03.19 |
---|---|
Arduino Sensor kit 2 - 터치센서, 부저 (0) | 2017.09.20 |
Arduino] 온습도 센서 DHT-11 (0) | 2016.12.06 |
Arduino] FreeRTOS 포팅하기 (0) | 2016.11.15 |
Arduino] MQ-3(알코올센서, 가스센서) (0) | 2016.11.03 |