블로그 이미지
조이키트 블로그
아두이노, 라즈베리파이, 반도체 센서/모듈 활용

calendar

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

Notice

250x250
728x90
반응형

HW-072 화염감지 센서는 불, 가스, 화염을 감지하는데 사용된다.

 

핀기능 : 

+ : DC 5V

G : 접지

A0 : 아날로그 출력

D0 : 디지털 출력

 

활용 분야 : 

주로 가스누출 감지, 화재경보 시스템, 기타 안전 시스템에서 사용된다.

 

주요 기능 :

1. 화염 감지는 센서의 IR 적외선 스펙트럼에서 화염을 감지한다. 화염이 방출하는 특정 파장을 감지하여 화재를 인식한다.

2. 센서의 출력 신호는 아날로그 값과 디지털 값으로 출력된다. 아날로그 출력신호로 아두이노, 라즈베리파이 등 마이크로 컨트롤러를 제어할 수 있다.

 

실습 예제 : 

HW-072 화염 감지센서를 사용하여 아두이노 화염감지 측정기를 만들어 보겠다.

작동원리는 화염 감지센서에 화염이 감지되면 아두이노에 연결된 부저모듈에서 경고음이 울리는과 동시에 LED경고등에 불이 켜진다. 또한 LCD 디스플레이에 센서의 측정 값을 출력하고 감지상태를 알려준다. 

 

구성 요소 : 

구성품으로는  아두이노 우노 R3, LCD1602 디스플레이 모듈, 부저모듈, LED 다이오드 등이 사용된다.

 

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

https://link.coupang.com/a/b2UFbQ

 

아두이노 HW-072 화염 센서 모듈 - 기타수공구 | 쿠팡

쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.

www.coupang.com

 

https://link.coupang.com/a/b2vSOT

 

ATmega328P 마이크로 컨트롤러가 있는 아두이노 우노 R3 개발 보드 - 액세서리 | 쿠팡

쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.

www.coupang.com

https://link.coupang.com/a/b2vTO0

 

아두이노 LCD1602 16x2 4핀 디스플레이 모듈/ Arduino LCD1602 Module - 액세서리 | 쿠팡

쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.

www.coupang.com

https://www.coupang.com/vp/products/7702597812?vendorItemId=86328689186&isAddedCart=

 

액티브/패시브 버저 모듈 - 기타전기설비부자재 | 쿠팡

쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.

www.coupang.com

HW-072 화염 감지센서 아두이노 우노 R3 LCD 1602 디스플레이
부저 모듈 LED 다이오드 300옴 저항

 

회로 연결 : 

화염감지 측정기 회로도

 

 

회로 연결 방법은 아래의 표와 같이 연결한다.

아두이노 우노 R3 HW-072 화염센서 부저모듈 LCD1602 디스플레이 LED 다이오드
+5V +   VCC  
GND G G GND "-"핀
A0 AO      
D11 DO      
D9   S    
D13       "+"핀
A4     SCA  
A5     SCL  

 

 

회로 연결 후 아두이노 IDE에 다음과 같이 코딩을 작성한다.

 

코딩 작성시  LCD1602 디스플레이를 사용하였으므로 LiquidCrystal_I2C 라이브러리를 설치하여준다.

화염센서의 아날로그 출력을 아두이노 A0, 디지털 출력은 D11로 정의하였다. 다음 LED 다이오는 D13, 브저모듈은 D9번으로 설정하였다.

디지털 값은 변수 : (int flameDetectedDigital;)로, 아날로그 값은 변수 : (int flameValueAnalog;)로 정의하였다.

LED 핀은 출력으로(pinMode(ledPin, OUTPUT);), 화염센서는 입력으로 (pinMode(flameSensorDigitalPin, INPUT);) 설정하였다. 

화염센서의 디지털 값을 읽어 기준 값보다 높으면 부저모듈과 LED 다이오드에 신호가 전달되고 기준 값보다 낮을 때는 모든 신호가 차단된다. 

flameDetectedDigital = digitalRead(flameSensorDigitalPin);
  if (flameDetectedDigital == HIGH) {
    Serial.println("Flame Detected (Digital)!");
    digitalWrite(ledPin, HIGH);
    tone(buzzerPin, 1000);    // 부저를 1kHz로 설정하여 소리 출력
    lcd.setCursor(0,1);            // LCD 1행 2열에 출력
    lcd.print("Flame : detection");  
  } else {
    digitalWrite(ledPin, LOW);
    noTone(buzzerPin);        // 부저 소리를 끔
    Serial.println("No Flame (Digital).");
    lcd.setCursor(0,1);            // LCD 1행 2열에 출력
    lcd.print("Flame : nodetection");
  }

 

아날로그 값은 변수 : flameValueAnalog = analogRead(flameSensorAnalogPin); 로 읽은 다음 LCD1602에 전달하여 준다.

  // 아날로그 값 읽기
  flameValueAnalog = analogRead(flameSensorAnalogPin);
  Serial.print("Analog Value: ");
  Serial.println(flameValueAnalog);
  lcd.setCursor(0,0);            // LCD 1행 1열에 출력
  lcd.print("Flame : ");
  lcd.print(flameValueAnalog);      // LCD에 센서값 출력

 

전체 코드 : 

#include <LiquidCrystal_I2C.h> 

int flameSensorDigitalPin = 11;  // 디지털 핀
int flameSensorAnalogPin = A0;  // 아날로그 핀
int flameDetectedDigital;
int flameValueAnalog;

const int ledPin = 13;      // LED가 연결된 디지털 핀
const int buzzerPin = 9;    // 부저 모듈이 연결된 디지털 핀

LiquidCrystal_I2C lcd (0x27,16,2);   // LCD1602 hexa값, 2행 16열 설정

void setup() {
  lcd.init();    // LCD 초기화 
  lcd.backlight();  // LCD 백라이트 켬

  Serial.begin(9600);  // 시리얼 통신 시작

  pinMode(ledPin, OUTPUT);  // LED 핀을 출력 모드로 설정
  pinMode(flameSensorDigitalPin, INPUT);  // 디지털 핀 입력 모드 설정
}

void loop() {
  // 디지털 값 읽기
  flameDetectedDigital = digitalRead(flameSensorDigitalPin);
  if (flameDetectedDigital == HIGH) {
    Serial.println("Flame Detected (Digital)!");
    digitalWrite(ledPin, HIGH);
    tone(buzzerPin, 1000);    // 부저를 1kHz로 설정하여 소리 출력
    lcd.setCursor(0,1);            // LCD 1행 2열에 출력
    lcd.print("Flame : detection");  
  } else {
    digitalWrite(ledPin, LOW);
    noTone(buzzerPin);        // 부저 소리를 끔
    Serial.println("No Flame (Digital).");
    lcd.setCursor(0,1);            // LCD 1행 2열에 출력
    lcd.print("Flame : nodetection");
  }

  // 아날로그 값 읽기
  flameValueAnalog = analogRead(flameSensorAnalogPin);
  Serial.print("Analog Value: ");
  Serial.println(flameValueAnalog);

  lcd.setCursor(0,0);            // LCD 1행 1열에 출력
  lcd.print("Flame : ");
  lcd.print(flameValueAnalog);      // LCD에 센서값 출력

  delay(1000);  // 1초 대기

  lcd.clear();  // LCD 클리어
}

 

위와 같이 코드 작성이 전부 끝나면 컴파일하고 아두이노에 업로드 하여주면 다음과 같은 출력 결과를 볼 수 있다.

 

출력 결과 : 

 

https://www.youtube.com/watch?v=iua2kR0FFwU

 

 

 

728x90
반응형
posted by 조이키트 블로그
728x90
반응형

TSOP1838  IR 적외선 센서를 사용하여 리모컨으로 아두이노를 제어하는 프로젝트를 만들어 보겠다.

 

 

이를 위해서는 TSOP1838  IR 적외선 감지센서와 리모컨 모듈을 사용하여 리모컨에서 받은 신호를 감지하고, 해당 신호에 따라 아두이노가 작동하도록 프로그래밍 해야 한다.

 

동작 : 아두이노에 적외선 센서를 연결하여 리모컨으로 LED와 릴레이 모듈을 제어하는 기능을 수행한다.

 

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

https://link.coupang.com/a/b2vSOT

 

ATmega328P 마이크로 컨트롤러가 있는 아두이노 우노 R3 개발 보드 - 액세서리 | 쿠팡

쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.

www.coupang.com

https://link.coupang.com/a/b2FHco

 

TSOP1838 적외선 37.9Khz 수신기 모듈 - LED모듈/조명모듈 | 쿠팡

쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.

www.coupang.com

https://link.coupang.com/a/b2FEbX

 

아두이노 릴레이 1채널 5V 모듈 - 액세서리 | 쿠팡

쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.

www.coupang.com

https://link.coupang.com/a/b2FJHB

 

MCU HX1838 적외선 무선 리모컨 키트 - 리모컨 | 쿠팡

쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.

www.coupang.com

https://link.coupang.com/a/b2FIQq

 

12V 1채널 리모컨 제어 릴레이 모듈 - 기타전기설비부자재 | 쿠팡

쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.

www.coupang.com

 

 

준비품 : 아우이노UNO R3, TSOP1838  IR 적외선 센서, 적외선 리모컨, LED_red, LED_blue, 릴레이  모듈, 300옴 저항_2개

 

아두이노UNO
적외선 리모컨
LED_red_blue
릴레이 모듈
아두이노 우노 R3 TSOP1838  IR 적외선 센서  적외선 리모컨 LED 릴레이 모듈
300옴 저항
       
300옴 저항        

 

회로 결선도

아두이노 적외선 센서 릴레이 모듈 LED red LED blue
+5V VCC VCC    
GND GND GND GND GND
A0 S      
D7   IN    
D8     "+"  
D9       "+"

아두이노와 적외선센서 회로연결

위 회로에서 릴레이 모듈의 VCC를 아두이노의 +5V에 연결하고, 릴레이 모듈의 IN을 아두이노핀의 A0에 연결한다.

다음은 실지 회로도이다.

아두이노, 적외선 센서, 릴레이모듈, LED 연결 회로

 

위와 같이 회로를 구성하고 아두이노IDE에 코드를 작성한다.

 

코딩 

#include <IRremote.h>   // 적외선 함수 라이브러리 선언
int RECV_PIN = A0;    // 적외선 센서 신호를 아날로그핀 A0로 송수신 함
int led_red = 8;  // LED red를 D8로 선언
int led_blue = 9;  // LED blue를 D9로 선언
int swich = 7;    // 릴레이 입력을 D7로 선언

IRrecv irrecv(RECV_PIN);  //  IRremote를 사용하기 위해 irrecv객체 생성
decode_results results;   // 디코드한 결과 값

void setup()
{
 Serial.begin(9600);
  irrecv.enableIRIn();  // Start the receiver
  pinMode(led_red, OUTPUT);  // LED red
  pinMode(led_blue, OUTPUT);  // LED blue
  pinMode(swich, OUTPUT); // swich_on/off
  }

  void loop(){
  if(irrecv.decode(&results)){  // 적외선 리모컨의 신호를 받을 때
  Serial.println(results.value, HEX);  // 결과값을 HEX로 출력
  switch (results.value){
      case 0x80c: digitalWrite(8, HIGH); break; //전원버튼이 눌리면 LED_red ON
      case 0xc: digitalWrite(8, LOW); break; //전원버튼이 다시 눌리면 LED_red OFF
      case 0x80b: digitalWrite(9, HIGH); break; //AV/TV 버튼이 눌리면 LED_blue ON
      case 0xb: digitalWrite(9, LOW); break; //AV/TV버튼이 눌리면 LED_blue OFF
      case 0x80d: digitalWrite(7, HIGH); break; // CH_up버튼이 눌리면 swich ON
      case 0xd: digitalWrite(7, LOW); break;  // CH_down버튼이 눌리면 swich OFF    
        }
       irrecv.resume();  // 수광 다이오드 다음 값 받기
}
}

 

위의 코딩에서 HEX값인 0x80c, 0xc, 0x80b, 0xb, 0x80d, 0xd는 아두이노를 USB케이블을 연결하고 실행한 다음 리모컨으로 버튼을 눌렀을 때 아두이노 IDE의 툴/ 시리얼 모니터를 실행하면 해당버튼을 눌렀을 때에 따른 HEX값이 출력된다. 

리모컨 버튼 기능마다 HEX값이 다르므로 시리얼 모니터를 확인하고 출력된 값을 코딩에 입력하면 된다.

 

시리얼 모니터 출력 결과

리모컨을 눌렀을 때 시리얼 모니터 출력

 

다음은 리모컨을 눌렀을 때 LED와 릴레이 모듈을 제어하는 영상이다.

 

출력 결과

https://www.youtube.com/watch?v=hI1UjD9TyUo

 

 

728x90
반응형
posted by 조이키트 블로그
2020. 8. 1. 09:57 아두이노 기초
728x90
반응형

컬러센서를 사용하여 3색 LED를 감지하는 아두이노 프로젝트를 만들어 보겠다.

이 프로젝트에서는 TCS3200 컬러센서를 사용하여 주변의 색을 감지하고, 그 결과에 따라 3색 LED를 제어할 것이다.

 

다음은 필요한 부품들이다.

  1. TCS3200 컬러센서
  2. 3색 LED
  3. 아두이노 보드
  4. 저항 (330옴 x 3)
  5. 점퍼 와이어

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

 

https://link.coupang.com/a/ccbDIm

 

(당일배송) 아두이노 TCS3200 컬서 센서 Color Sensor - 케이블 | 쿠팡

쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.

www.coupang.com

https://link.coupang.com/a/b2vSOT

 

ATmega328P 마이크로 컨트롤러가 있는 아두이노 우노 R3 개발 보드 - 액세서리 | 쿠팡

쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.

www.coupang.com

https://link.coupang.com/a/b2vTO0

 

아두이노 LCD1602 16x2 4핀 디스플레이 모듈/ Arduino LCD1602 Module - 액세서리 | 쿠팡

쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.

www.coupang.com

 

먼저, TCS3200 컬러센서를 아두이노에 연결해야 한다. 그런 다음, 아래의 코드를 사용하여 컬러센서를 통해 검출된 색을 읽고, 해당하는 색에 따라 LED를 제어할 수 있다.

 

전체 코딩:

#include <Wire.h>
#include <LiquidCrystal_I2C.h>  // LCE패널 함수 선언


#define S0 6  // 컬러센서 S0 D6번 설정
#define S1 7  // 컬러센서 S1 D7번 설정
#define S2 8  // 컬러센서 S2 D8번 설정
#define S3 9  // 컬러센서 S3 D9번 설정
#define sensorOut 10  // 컬러센서 출력  D10번 설정
#define redPin 11     // LED_RED D11번 설정
#define greenPin 12   // LED_BLUE D12번 설정
#define bluePin 13    // LED_GREEN D13번 설정

int redFrequency = 0;
int greenFrequency = 0;
int blueFrequency = 0;

LiquidCrystal_I2C lcd (0x27,16,2);   // LCD1602 설정

void setup() {

  lcd.init();           // LCD 초기화
  lcd.backlight();      // LCD 뒷 전등 켬

  pinMode(S0, OUTPUT); // 출력
  pinMode(S1, OUTPUT); //
  pinMode(S2, OUTPUT); //
  pinMode(S3, OUTPUT); //
  pinMode(sensorOut, INPUT); // 입력
  pinMode(redPin, OUTPUT);  // 출력
  pinMode(greenPin, OUTPUT); //
  pinMode(bluePin, OUTPUT); //

  // 주파수 스케일링을 20%로 설정
  digitalWrite(S0,HIGH);
  digitalWrite(S1,LOW);

  Serial.begin(9600);
}

void loop() {
  // 빨간색 필터링된 포토다이오드를 읽을 수 있도록 설정
  digitalWrite(S2,LOW);
  digitalWrite(S3,LOW);
  // 빨간색 출력 주파수 판독
  redFrequency = pulseIn(sensorOut, LOW);

  // 시리얼 모니터에 값 출
  Serial.print("R = ");
  Serial.print(redFrequency);
  delay(100);
    
  lcd.setCursor(0, 0);
  // 측정된 RED 값을 LCD에현시
  lcd.print("R:");
  lcd.print(redFrequency); //주파수
 

  // 녹색 필터링된 포토다이오드를 읽도록 설정
  digitalWrite(S2,HIGH);
  digitalWrite(S3,HIGH);
  // 녹색 출력 주파수 판독
  greenFrequency = pulseIn(sensorOut, LOW);

  // 시리얼 모니터에 녹색 값 출력
  Serial.print(" G = ");
  Serial.print(greenFrequency);
  delay(100);

    lcd.setCursor(7, 0);
  // 측정된 GREEN 주파수 값을 LCD에현시
  lcd.print("G:");
  lcd.print(greenFrequency);  //주파수


  // 파란색 필터링된 포토다이오드를 읽을 수 있도록 설정
  digitalWrite(S2,LOW);
  digitalWrite(S3,HIGH);
  // 파란색 출력 주파수 판독
  blueFrequency = pulseIn(sensorOut, LOW);

  // 시리얼 모니터에 파란색 값 출력
  Serial.print("B:");
  Serial.println(blueFrequency);
  delay(100);

  lcd.setCursor(0, 1);
  // 측정된 BLUE 주파수 값을 LCD에현시
  lcd.print("B:");
  lcd.print(redFrequency);     //주파수
 

  // 검출된 색상을 기반으로 한 LED 제어
  if (redFrequency > greenFrequency && redFrequency > blueFrequency) {
    // Red LED 출력
    digitalWrite(redPin, HIGH);
    digitalWrite(greenPin, LOW);
    digitalWrite(bluePin, LOW);

  } else if (greenFrequency > redFrequency && greenFrequency > blueFrequency) {
    // Green LED 출력
    digitalWrite(redPin, LOW);
    digitalWrite(greenPin, HIGH);
    digitalWrite(bluePin, LOW);
  } else if (blueFrequency > redFrequency && blueFrequency > greenFrequency) {
    // Blue LED 출력
    digitalWrite(redPin, LOW);
    digitalWrite(greenPin, LOW);
    digitalWrite(bluePin, HIGH);
  } 
  
  else if (redFrequency == greenFrequency && redFrequency == blueFrequency) {
    // 모든 LED 출력
    digitalWrite(redPin, HIGH);
    digitalWrite(greenPin, HIGH);
    digitalWrite(bluePin, HIGH);
  } else {
    // 모든 LED 전부 꺼짐
    digitalWrite(redPin, LOW);
    digitalWrite(greenPin, LOW);
    digitalWrite(bluePin, LOW);
  }
}

 

준비물 : 아두이노 우노, RGB 컬러센서, 3색 LED, 300옴 저항 등이 사용된다.

 

아두이노UNO
컬러센서
3색 LED
300옴 저항
아두이노 우노 R3 RGB 컬러센서 3색 LED 300옴 저항

 

 

회로 연결 : 

아두이노 우노 R3 RGB 컬러센서 RGB LED 다이오드 LCD1602
+5V VCC +핀 VCC
GND GND   GND
D6 S0    
D7 S1    
D8 S2    
D9 S3    
D10 OUT    
D11   RED  
D12   GREEN  
D13   BLUE  
A4     SDA
A5     SCL

 

회로도:

색상감지센서 회로도

 

 

 

위와 같이 회로를 연결하고 코드를 아두이노에 업로드하면 시리얼 모니터와 LCD에 색상에 따른 값이 출력될 것이다.

이 코드는 컬러센서를 통해 검출된 색에 따라 3색 LED를 제어한다. 따라서 감지된 색에 따라 LED가 변할 것이다.

 

출력 결과

https://www.youtube.com/watch?v=uT4cFhvfGSk

 

728x90
반응형
posted by 조이키트 블로그
2020. 7. 28. 10:42 아두이노 기초
728x90
반응형

아두이노에 LCD 패널을 연결하여 초음파 센서에서 측정된 거리를 표시하는 프로젝트를 만들어 보겠다.

이 프로젝트에서는 LCD에 거리 값을 표시하고, 초음파 센서를 사용하여 거리를 측정한다.

아래는 이를 위한 간단한 코드입니다.

 

코딩

#include <Wire.h>
#include <LiquidCrystal_I2C.h>  // LCE패널 함수 선언

// 초음파센서의 Trig, Echo 핀을 매크로 상수로 선언
#define TRIG 2
#define ECHO 3
// 삼색 LED의 R, G, B에 해당하는 핀들을 매크로 상수로 선언
#define RED 11
#define GREEN 10
#define BLUE 9

LiquidCrystal_I2C lcd (0x27,16,2);   

void setup() {
// 초음파센서의 Trig를 출력모드, Echo를 입력 모드로 설정

  pinMode(TRIG, OUTPUT);
  pinMode(ECHO, INPUT);
  lcd.init();           // LCD 초기화
  lcd.backlight();      // LCD 뒷 전등 켬

}

void loop() {
// 초음파센서의 Trig에서 초음파를 발사하는 코드
  digitalWrite(TRIG, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG, LOW);

// pulseIn 명령어를 통해 Echo핀에 초음파가 들어오는 시간 계산
// 반환된 값에 58.2를 나누어 시간을 cm로 변경
  long distance = pulseIn(ECHO, HIGH)/58.2;

// 3색 LED의 R, G, B를 모두 255로 설정하여 LED를 끔
  analogWrite(RED, 255);
  analogWrite(GREEN, 255);
  analogWrite(BLUE, 255);

    if(distance < 10){
    // 거리가 10cm 이내이면 빨간색으로 표시
    analogWrite(RED, 0);
  }else if(distance < 20){
    // 거리가 10 ~ 20 이내이면 초록색으로 표시
    analogWrite(GREEN, 0);
  }else if(distance < 30){
    // 거리가 20 ~ 30 이내이면 파란색으로 표시
    analogWrite(BLUE, 0);    
  }

// LCD에서 한번 현시되고 측정된 값이 바뀌면 지우고 다시 현시 
 lcd.clear();
// LCD의 커서를 첫번째 열에 두번째행으로 설정     
  lcd.setCursor(0, 0);

// 측정된 거리값을 LCD에현시
  lcd.print(distance);
  lcd.print(" cm ");     // 측정 값 뒤에 "cm"글자 표시
  delay(200);     // 0.2초간 지연

}

 

준비품 : 아두이노 UNO, LiquidCrystal_I2C, 초음파센서, 3색 LED, 300옴 저항 (3개)

아두이노 UNO
LiquidCrystal_I2C
초음파 센서
3색 LED
300옴 저항
아두이노 우노 R3 LCD 1602 디스플레이 초음파센서 3색 LED 300옴 저항

 

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

https://link.coupang.com/a/b2vSOT

 

ATmega328P 마이크로 컨트롤러가 있는 아두이노 우노 R3 개발 보드 - 액세서리 | 쿠팡

쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.

www.coupang.com

https://link.coupang.com/a/b2vTO0

 

아두이노 LCD1602 16x2 4핀 디스플레이 모듈/ Arduino LCD1602 Module - 액세서리 | 쿠팡

쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.

www.coupang.com

https://link.coupang.com/a/b2FRps

 

HC-SR04 초음파 거리 측정 모듈 - 기타측정도구 | 쿠팡

쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.

www.coupang.com

 

다음과 같이 빵판에 요소들을 연결한다.

 

LCD패널의 VCC는 아두이노의 +5V에 연결하고, GND는 아두이노 GND에 연결한다.

다음 LCD패널의 SDA는 아두이노의 아날로그 핀의 A5에 연결하고, SCL은 A4에 연결한다.

초음파센서의 TRIG는 아두이노의 디지털핀인 D2번, ECHO는 D3에 연결한다.

그리고 초음파센서의 VCC와 GND는 공동으로 LCD패널과 같이 연결한다. 

다음 3색LED의 2번은 +5V에 연결하고 LED의 1, 3, 4번 즉 RED, GREEN, BLUE는 300옴 저항을 거쳐 아두이노 디지털핀인 D11, D10, D9 순으로 연결한다.

 

회로 연결이 전부 끝나면 아두이노IED에서 다음 아래에 있는 파일을 실행하여 아두이노IDE의 시리얼 모니터를 출력하면 address 뒤에 0x00값을 아래 코딩에서 LiquidCrystal_I2C lcd (0x27,16,2);  (예를들면 0x27)을 입력한다.

 

lcd_0x00.txt
0.00MB

 

 

 

코딩이 끝나면 컴파일하고 업로드 시켜주면 다음과 같이 회로의 LCD패널이 초음파센서에서 측정된 거리가 현시됨을 볼수 있다.

 

출력 결과

https://www.youtube.com/watch?v=8AiOaMY7if0

 

 

728x90
반응형
posted by 조이키트 블로그
2020. 7. 28. 10:39 아두이노 기초
728x90
반응형

아두이노와 초음파센서를 사용하여 거리에 따라 LED 색을 변하는 프로젝트를 만들 수 있다.

아래는 간단한 예시 코드이다. 이 코드는 초음파센서로 측정된 거리에 따라 RGB LED의 색상을 변화시킨다.

거리가 가까워지면 빨간색에서 시작하여 멀어질수록 파란색으로 변화한다.

 

코딩 

// 초음파 센서 핀 정의
#define trigPin 13
#define echoPin 12

// RGB LED 핀 정의
#define redPin 9
#define greenPin 10
#define bluePin 11

// 초음파 센서 변수
long duration;
int distance;

// RGB LED 변수
int redValue = 255;
int greenValue = 0;
int blueValue = 0;

void setup() {
  // 핀 모드 설정
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);
  
  // 시리얼 통신 시작
  Serial.begin(9600);
}

void loop() {
  // 초음파 센서로 거리 측정
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  
  duration = pulseIn(echoPin, HIGH);
  distance = duration * 0.034 / 2;
  
  // 거리에 따라 LED 색상 변경
  if (distance <= 30) {
    redValue = 255;
    greenValue = 0;
    blueValue = 0;
  } else if (distance > 30 && distance <= 60) {
    redValue = 0;
    greenValue = 255;
    blueValue = 0;
  } else {
    redValue = 0;
    greenValue = 0;
    blueValue = 255;
  }
  
  // LED에 색상 적용
  analogWrite(redPin, redValue);
  analogWrite(greenPin, greenValue);
  analogWrite(bluePin, blueValue);
  
  // 시리얼 모니터에 거리 출력
  Serial.print("Distance: ");
  Serial.println(distance);
  
  // 500ms 대기
  delay(500);
}

 

준비품 : 아두이노uno R3, 초음파센서, 3색 LED, 300옴 저항 3개

아두이노 UNO
초음파 센서
3색 LED
300옴 저항
아두이노 우노 R3 초음파 센서 3색 LED 300옴 저항

 

 

다음과 같이 회로에 요소들을 연결한다

 

먼저 3색 LED의 RED를 아두이노 9번핀, GREEN을 10번핀, BLUE를 11번핀에 300옴 저항을 각각 연결하여 아두이노에 연결한다.

다음 초음파센서의 TRIG를 아두이노 2번핀에 연결하고, ECHO를 아두이노 3번핀에 연결한다.

센서의 VCC를 아두이노 +5V에 연결하고, 센서의 GNE는 아두이노 GND에 똑같이 연결한다.

그리고 3색 LED의 2번 다리를 +5V에 연결하고 USB케이블을 아두이노 포트에 연결한다.

 

 

다음 아두이노 IDE를 실행하여 다음과 같이 코딩한다.

초음파센서 거리측정

초음파 센서의 TRIG, ECHO핀을 매크로 상수로 TREG는 2로, ECHO는 3으로 선언한다.

삼색 LED의 RED를 9, GREEN은 10, BLUE은 11로 정의한다.

void setup문에서 핀모드를 TRIG는 OUTPUT로, ECHO는 INPUT로 설정한다.

다음 void loop문에서 digitalWrite(TRIG, LOW/HIGH)는 초음파센서의 TRIG에서 초음파를 발사하는 부분이다. 

long distance = pulseIn(ECHO, HIGH)/58.2; 는 pulseIn 명령어를 사용하여 ECHO에 초음파가 들어오는 시간을 계산한다. 여기서 58.2는 시간을 cm단위로 변환하여 주는 역활을 한다.

삼색 LED의 R, G, B를 모두 255로 설정하여 초기상태에서는 LED를 끄게한다.

여기서 255로 설정하는 이유는 삼색LED의 공동다리가 "+" 이기 때문이다. 만일 LED의 공동다리가 "-"이라면 R, G, B의 값을 모두 0으로 해주어야 한다.

다음 if문에서 distance < 10은 거리 10cm이하에서는 RED가 켜지고, 거리 20cm 이하에서는 GREEN을 켜며, 30cm이하에서는 BLUE가 켜진다. 여기서 analogWrite값을 0으로 정해주어야만 LED가 켜진다. 위에서 얘기한것처럼 LED의 공동핀이 "-"인 경우는 analogWrite값을 255로 정해주어야 할 것이다.

위와 같이 전부 코딩을 끝낸 후 업로드 시켜주면 초음파에 어떠한 물체가 감지되면 거리에 따른 값이 LED에 현시될 것이다.

 

출력 결과

https://www.youtube.com/watch?v=jP6X4kVFmto&t=20s

 

 

 

 

728x90
반응형
posted by 조이키트 블로그
2020. 7. 28. 10:36 아두이노 기초
728x90
반응형

준비품 : 아두이노uno, 3색 LED 1개, 300옴 저항 3개

3색 LED : 왼쪽으로부터 1번 - 빨강색, 2번 -(+단자), 3번 - 초록색, 4번 - 파랑색
아두이노 우노
300옴 저항

 

 

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

https://link.coupang.com/a/b2vSOT

 

ATmega328P 마이크로 컨트롤러가 있는 아두이노 우노 R3 개발 보드 - 액세서리 | 쿠팡

쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.

www.coupang.com

https://link.coupang.com/a/b2FRps

 

HC-SR04 초음파 거리 측정 모듈 - 기타측정도구 | 쿠팡

쿠팡에서 0.0 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 0 제품도 바로 쿠팡에서 확인할 수 있습니다.

www.coupang.com

 

위와 같은 부품들이 준비되면 아래와 같이 빵판에 요소들을 연결한다.

 

LED 1번을 아두이노 11핀, 3번을 10핀, 4번을 9핀에 300옴 저항을 각각 거쳐 연결한다.

그리고 LED 2번을 아두이노 +5V핀에 연결한다.

참고 : LED 2번이 "+"인 경우

만일 LED 2번이 "-"인 경우는 아두이노 GND에 연결해야 한다.

 회로에 연결하기 전에 반드시 확인하기 바란다.

 

다음은 아두이노 IDE에  아래와 같이 코딩을 한다.

 

 

void loop()문에서 analogWrite변수는 0~255사이의 값을 지정할 수 있는데 0은 0V, 255는 +5V가 출력된다고 보면 된다.

따라서 빨간색 항목에서 red: 0는 0V 출력, green: 255는 5V 출력, blue: 255는 +5V가 출력된다.

LED의 공동단자가 +이므로 빨간색을 켜려면 red를 0V로 해주어야 하고, 나머지는 255로 해주어야 한다.

초록색도 마찬가지로 green을 0으로 해주어야 하고 파판색도 역시 blue를 0으로 해주고 나머지는 255값으로 해주어야 선택한 한가지 색만 켜질수 있다. 

그리고 delay 값을 3000으로 지정하였는데 이는 3초에 한번씩 색이 바뀜을 의미한다. 

지연시간을 늘이거나 줄이려면 이값을 임의로 변경하여 주면 된다.

 

아래에 3색 LED가 3초에 한번씩 색이 변화는 결과이다.

 

출력 결과

https://www.youtube.com/watch?v=-7bRSu0hSQc&t=8s

 

728x90
반응형
posted by 조이키트 블로그
2020. 7. 28. 10:33 아두이노 기초
728x90
반응형

먼저 컴퓨터에 아두이노IDE 프로그램을 설치한다.

아래 영상에서 아두이노IDE 다운로드 및 설치방법을 볼수 있다.

 

아두이노  IDE 다운로드 및 설치

https://www.youtube.com/watch?v=nwnVxz9ZJLQ&t=8s

설치가 끝난 다음 아두이노 IDE프로그램을 샐행하면 다음과 같은 화면이 나타난다.

아두이노 IDE 새파일

그리고 아두이노를 컴퓨터 USB포트에 연결한다.

아두이노를 PC에 연결

다음 메뉴바에서 툴(tools)/포트/COM3(Arduion uno)를 선택한다.

다른데서는 COM번호가 다를수 있음

이렇게 되면 아두이노와 컴퓨터간의 통신이 이루어진다.

준비품은 LED 한개와 300옴 저항이 필요하다. 

 

위의 그림과 같이 LED의 "+"는 아두이노 핀모드의 13번에 연결하고 "-"는 300옴 저항을 연결하여 GND핀에 연결한다.

(저항은 +/-핀 아무쪽에다 연결해도 상관없음)

그리고 아두이노 IDE의 메뉴에서 파일/예제/Basics/Blink를 선택하고 아래와 같이 코딩한다.

 

코딩 부분에서 int LED = 13: 은 LED출력을 아두이노의 13번 핀으로 선언하는 것이고,

void setup문의 pinMode는 LED 출력 부분이고, void loop문의 digitalWrite(HIGH/LOW)는 HIGH일 때 LED가 켜지고, LOW일 때 LED가 꺼진다. 

다음 delay(1000)는 LED가 켜지고 꺼지는 시간간격이다. 예를들어 1000이면 1초 간격으로 LED가 켜졌다 꺼졌다 하고 5000이면 5초마다 LED가 켜졌다 꺼진다.

코딩을 다하면 저장을 하고 업로드 시킨다.

 

출력 결과

https://www.youtube.com/watch?v=OErb-qabOsk&t=13s

 

그러면 위와 같이 LED가 1초, 3초 간격으로 깜빡이는 것을 볼 수 있다.

 

728x90
반응형
posted by 조이키트 블로그
prev 1 next