본문 바로가기

아두이노

조도 센서와 버튼을 사용하여 LCD 화면에 메시지 표시

반응형

조도 센서와 버튼을 사용하여 LCD 화면에 메시지를 표시하는 아두이노 프로젝트를 만들어보겠습니다. 아래는 해당 프로젝트를 순차적으로 설명하는 가이드입니다.

1. 이론 소개:

  • 이 프로젝트에서는 조도 센서로 주변 밝기를 감지하고, 버튼을 사용하여 LCD 화면에 메시지를 표시합니다.

2. 준비물:

  • 아두이노 보드 (예: Arduino Uno)
  • 조도 센서 (LDR 또는 CDS 센서)
  • 버튼 스위치
  • 16x2 문자 LCD 화면 (예: HD44780 컴파티블)
  • 10k옴 저항 (풀업 또는 풀다운용)
  • 점퍼 와이어 (메스-메스 및 메스-피스)
  • 브레드보드
  • USB 케이블 (아두이노 보드와 컴퓨터 연결용)

3. 비슷한 센서 모델:

  • LDR (Light Dependent Resistor) 또는 CDS (Cadmium Sulfide) 센서는 주로 사용되며, 성능은 유사합니다.

4. 추천 보드 및 간단한 설명:

  • Arduino Uno: 초보자 및 중급자에게 적합한 아두이노 보드로 다양한 라이브러리와 예제가 있습니다.

5. 회로 구성:

  • 조도 센서(LDR 또는 CDS)와 버튼을 아두이노에 연결합니다.
  • 조도 센서의 한 쪽 핀을 아두이노 5V 핀에 연결하고, 다른 쪽 핀을 아두이노 A0 핀에 연결합니다.
  • 버튼의 한 쪽 단자를 아두이노 2번 핀에 연결하고, 다른 쪽 단자를 GND에 연결합니다.
  • 10k옴 저항을 버튼과 아두이노 2번 핀 사이에 연결합니다.

6. 코딩 내용 (주석 포함):

 

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // LCD 핀 설정
const int sensorPin = A0; // 조도 센서 연결 핀
const int buttonPin = 2; // 버튼 연결 핀
const int threshold = 500; // 조도 센서 감도 임계값

void setup() {
  lcd.begin(16, 2); // LCD 화면 초기화 (16x2)
  pinMode(buttonPin, INPUT_PULLUP); // 버튼 핀을 내부 풀업 저항과 함께 입력으로 설정
}

void loop() {
  int sensorValue = analogRead(sensorPin); // 조도 센서 값 읽기
  lcd.setCursor(0, 0); // 첫 번째 줄, 첫 번째 열
  lcd.print("밝기: ");
  lcd.print(sensorValue);
  lcd.print("   "); // 이전 값 지우기

  if (digitalRead(buttonPin) == LOW) { // 버튼이 눌릴 때
    lcd.setCursor(0, 1); // 두 번째 줄, 첫 번째 열
    lcd.print("버튼 눌림");
  } else {
    lcd.setCursor(0, 1); // 두 번째 줄, 첫 번째 열
    lcd.print("버튼 안눌림");
  }

  delay(500); // 0.5초 대기
}

 

7. 코딩 내용 설명:

  • 조도 센서로 주변 밝기를 감지하고, 버튼 상태를 확인하여 LCD 화면에 메시지를 표시합니다.

8. 코드 업로드 및 테스트:

  • 아두이노 보드를 컴퓨터에 연결하고 위의 코드를 아두이노 IDE에 복사하여 업로드합니다.
  • 조도 센서를 어둡거나 밝은 곳에 가져가면 LCD 화면에 밝기와 버튼 상태가 변경되는지 확인합니다.

9. 응용 업그레이드:

  • 다른 센서를 추가하여 정보를 확장합니다.
  • 메시지 내용을 변경하거나 추가합니다.

10. 전문용어 설명:

- 조도 센서 (LDR 또는 CDS): 주변 빛의 강도를 아날로그 값으로 측정하는 센서.

- 풀업 내장 버튼 (Pull-up Internal Button): 아두이노 내부에서 풀업 저항이 활성화된 버튼.

 

11. 기타: - 조도 센서의 회로 연결 방식 및 핀 번호는 모델에 따라 다를 수 있습니다.

반응형