본문 바로가기
카테고리 없음

조도센서로 경보기 만들기 - 오렌지보드 소트프웨어 교육

by 산타는섭이 2024. 4. 10.

 

 

안녕하세요! 오늘은 오렌지보드 소프트웨어 교육을 통해 조도센서를 활용하여 경보기를 만드는 방법에 대해 알아보겠습니다.

 

 

 

밑면 초록색 - 피에조부저 (시끄러움)

 

 

재료 준비:

  1. 오렌지보드
  2. 조도센서
  3. 피에조 부저
  4. 저항
  5. 점퍼케이블
  6. 브레드보드

 

검색 : 아두이노 음계표

 

 

 

 

단계 1: 회로 연결하기 먼저, 오렌지보드와 조도센서를 점퍼 와이어를 사용하여 연결합니다. 조도센서의 하나의 핀을 오렌지보드의 5V 핀에 연결하고, 다른 핀을 GND에 연결합니다. 마지막으로 조도센서의 출력 핀을 오렌지보드의 아날로그 핀(A0)에 연결합니다. 이어서 액티브 부저를 오렌지보드의 디지털 핀에 연결합니다.

단계 2: 코드 작성하기 이제 오렌지보드 소프트웨어를 열고 다음과 같은 코드를 작성합니다:

 

 

void setup() {

  pinMode(8, OUTPUT);

}

 

void loop() {

  tone(8, 261, 250);  // 핀번호, 주파수(음), 얼마동안 소리가날찌

  delay(500);

  tone(8, 293, 250);

  delay(500);

  tone(8, 330, 250);

  delay(500);

}

 

 

void setup() {

  pinMode(8, OUTPUT); // 피에조부저 8번 연결

  pinMode(A1, INPUT); // 가변저항 연결

}

 

void loop() {  // 가변저항 돌리면 도,레,미 소리 출력

  if (analogRead(A1) > 900) {  // a1이 900넘어가면

    tone(8, 261, 250);         // 핀번호, 주파수(음), 얼마동안 소리가날찌

    //delay(500);

  } else if (analogRead(A1) > 600) {

    tone(8, 293, 250);

  } else if (analogRead(A1) > 300) {

    tone(8, 330, 250);

  } else noTone(8);

 

}

 

// IF와 else if 차이 : 비교연산자는 큰값을 젤위에 써야 오류없음

// else if 첫번째 조건이 맞으면 빠져나감, 그냥if는 맞으면 다 적용됨

 

 

 

 

 

/* Sweep

 by BARRAGAN <http://barraganstudio.com>

 This example code is in the public domain.

 

 modified 8 Nov 2013

 by Scott Fitzgerald

 https://www.arduino.cc/en/Tutorial/LibraryExamples/Sweep

*/

 

#include <Servo.h>

 

Servo myservo;  // create servo object to control a servo

// twelve servo objects can be created on most boards

 

int pos = 0;    // variable to store the servo position

 

void setup() {

  myservo.attach(6);  // attaches the servo on pin 9 to the servo object

}

 

void loop() {

  for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees

    // in steps of 1 degree

    myservo.write(pos);              // tell servo to go to position in variable 'pos'

    delay(15);                       // waits 15 ms for the servo to reach the position

  }

  for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees

    myservo.write(pos);              // tell servo to go to position in variable 'pos'

    delay(15);                       // waits 15 ms for the servo to reach the position

  }

}

 

 

 

 

 

 

const int sensorPin = A0; // 조도센서가 연결된 아날로그 핀
const int threshold = 500; // 경보가 울릴 조도 값

void setup() {
  pinMode(sensorPin, INPUT);
  pinMode(13, OUTPUT); // 내장 LED
  pinMode(12, OUTPUT); // 액티브 부저
}

void loop() {
  int sensorValue = analogRead(sensorPin);

  if (sensorValue < threshold) { // 조도 값이 임계값보다 낮을 때
    digitalWrite(13, HIGH); // 내장 LED 켜기
    tone(12, 1000); // 액티브 부저 울리기
    delay(1000); // 1초 동안 대기
    noTone(12); // 액티브 부저 멈추기
    digitalWrite(13, LOW); // 내장 LED 끄기
  }

  delay(100); // 0.1초 대기
}

 

 

 

이 코드는 조도센서로부터 읽은 값이 임계값보다 낮을 때 내장 LED를 켜고 액티브 부저를 울리는 간단한 경보 시스템을 구현합니다.

단계 3: 테스트하기 모든 연결이 완료되고 코드가 작성되었다면, 회로를 시연해보세요! 조도가 낮아지면(어두워지면) 경보가 울리는 것을 확인할 수 있을 겁니다.

이렇게 간단한 회로와 코드로 조도센서를 이용한 경보기를 만들 수 있습니다. 오렌지보드 소프트웨어 교육을 통해 하드웨어와 소프트웨어를 함께 다루며 창의적인 프로젝트를 할 수 있다는 것을 기억해주세요! 🛠️✨

 

 

 

 

댓글