728x90

아두이노는 다양한 분야에서 활용될 수 있으며, 전자 공학부터 사물인터넷(IoT)까지 여러 분야의 프로젝트에 적용 가능합니다. 다음 표는 아두이노의 대표적인 활용 예시를 보여줍니다.

활용 분야 프로젝트 이름 설명 필요한 부품
교육 기본 LED 깜박이 LED를 주기적으로 켜고 끄는 간단한 프로젝트 아두이노 Uno, LED, 220Ω 저항
교육 교통 신호등 시뮬레이션 실제 교통 신호등처럼 LED를 사용하여 신호등을 시뮬레이션 아두이노 Uno, LED (빨강, 노랑, 초록), 220Ω 저항
DIY 스마트 화분 토양 수분 센서로 식물의 수분 상태를 모니터링하고 자동으로 물 공급 아두이노 Uno, 토양 수분 센서, 릴레이 모듈, 물 펌프
DIY LED 조명 제어 블루투스 모듈을 사용하여 스마트폰으로 LED 조명 제어 아두이노 Uno, HC-05 블루투스 모듈, LED 스트립, 릴레이 모듈
IoT 스마트 홈 자동화 시스템 여러 센서와 액추에이터를 사용하여 집안의 환경을 자동으로 제어 아두이노 Uno, 온습도 센서, 모션 센서, 릴레이 모듈, 스마트 조명
IoT 실시간 날씨 모니터링 온도, 습도, 기압을 측정하여 데이터를 클라우드에 전송 아두이노 MKR WiFi 1010, DHT11, BMP180, Wi-Fi 모듈
로봇공학 로봇 팔 제어 조이스틱을 사용하여 로봇 팔을 조작하고 다양한 작업 수행 아두이노 Uno, 서보 모터, 조이스틱 모듈, 로봇 팔 키트
로봇공학 라인트레이서 로봇 라인을 따라 자동으로 주행하는 로봇 아두이노 Uno, IR 센서 모듈, DC 모터, 모터 드라이버
헬스케어 심박수 모니터 심박 센서를 사용하여 사용자의 심박수를 측정하고 모니터링 아두이노 Uno, 심박 센서 (Pulse Sensor), OLED 디스플레이
헬스케어 스마트 체중계 무게 센서를 사용하여 체중을 측정하고 Bluetooth로 데이터 전송 아두이노 Uno, 로드셀, HX711 모듈, HC-05 블루투스 모듈
음향제작 미디 컨트롤러 MIDI 인터페이스를 통해 음악 소프트웨어를 제어하는 커스텀 컨트롤러 아두이노 Leonardo, 버튼, 포텐셔미터, USB MIDI 케이블
음향제작 전자 드럼 키트 아두이노를 사용하여 전자 드럼을 만들고 소리를 생성 아두이노 Uno, piezo 센서, 스피커, MIDI 모듈
스포츠 스마트 농구 골대 센서를 사용하여 농구골 성공 여부를 감지하고 점수 계산 아두이노 Uno, 적외선 센서, 7세그먼트 디스플레이
스포츠 피트니스 트래커 운동 중 신체 데이터를 수집하고 분석하여 피트니스 활동 모니터링 아두이노 Nano 33 IoT, 가속도계, 심박 센서, Bluetooth 모듈

프로젝트 예시 상세 설명

1. 스마트 화분

스마트 화분은 토양 수분 센서를 사용하여 식물의 수분 상태를 모니터링하고, 일정 수치 이하로 수분이 감소하면 자동으로 물을 공급하는 시스템입니다. 이 프로젝트는 바쁜 일상 속에서도 식물을 건강하게 관리할 수 있도록 도와줍니다.

필요한 부품:

  • 아두이노 Uno: 메인 제어 장치
  • 토양 수분 센서: 토양의 수분 상태를 측정
  • 릴레이 모듈: 전원을 제어하여 물 펌프 작동
  • 물 펌프: 물을 공급

기본 코드 예제:

int sensorPin = A0; // 토양 수분 센서 핀
int relayPin = 8; // 릴레이 핀
int threshold = 300; // 토양 수분 임계값

void setup() {
  pinMode(relayPin, OUTPUT);
  digitalWrite(relayPin, LOW);
  Serial.begin(9600);
}

void loop() {
  int sensorValue = analogRead(sensorPin); // 토양 수분 값 읽기
  Serial.print("토양 수분: ");
  Serial.println(sensorValue);

  if (sensorValue < threshold) {
    digitalWrite(relayPin, HIGH); // 토양 수분이 낮으면 물 공급
    Serial.println("물 공급 중...");
  } else {
    digitalWrite(relayPin, LOW); // 토양 수분이 충분하면 물 공급 중지
    Serial.println("물 공급 중지");
  }

  delay(1000); // 1초 대기
}

2. 라인트레이서 로봇

라인트레이서 로봇은 바닥에 그려진 라인을 따라 움직이는 자율 주행 로봇입니다. IR 센서를 사용하여 바닥의 검은색 라인을 감지하고, 이를 따라 이동합니다. 이 프로젝트는 로봇공학과 센서 활용을 배우기에 적합합니다.

필요한 부품:

  • 아두이노 Uno: 메인 제어 장치
  • IR 센서 모듈: 바닥의 라인을 감지
  • DC 모터: 로봇의 움직임을 제어
  • 모터 드라이버: 모터의 전원 및 방향을 제어

기본 코드 예제:

int leftSensor = A0; // 왼쪽 IR 센서
int rightSensor = A1; // 오른쪽 IR 센서
int leftMotorForward = 5;
int leftMotorBackward = 6;
int rightMotorForward = 9;
int rightMotorBackward = 10;

void setup() {
  pinMode(leftMotorForward, OUTPUT);
  pinMode(leftMotorBackward, OUTPUT);
  pinMode(rightMotorForward, OUTPUT);
  pinMode(rightMotorBackward, OUTPUT);
}

void loop() {
  int leftValue = analogRead(leftSensor);
  int rightValue = analogRead(rightSensor);

  if (leftValue < 500 && rightValue < 500) { // 둘 다 검정색 감지
    // 전진
    digitalWrite(leftMotorForward, HIGH);
    digitalWrite(leftMotorBackward, LOW);
    digitalWrite(rightMotorForward, HIGH);
    digitalWrite(rightMotorBackward, LOW);
  } else if (leftValue < 500) { // 왼쪽만 검정색 감지
    // 오른쪽으로 회전
    digitalWrite(leftMotorForward, HIGH);
    digitalWrite(leftMotorBackward, LOW);
    digitalWrite(rightMotorForward, LOW);
    digitalWrite(rightMotorBackward, LOW);
  } else if (rightValue < 500) { // 오른쪽만 검정색 감지
    // 왼쪽으로 회전
    digitalWrite(leftMotorForward, LOW);
    digitalWrite(leftMotorBackward, LOW);
    digitalWrite(rightMotorForward, HIGH);
    digitalWrite(rightMotorBackward, LOW);
  } else { // 둘 다 흰색 감지
    // 정지
    digitalWrite(leftMotorForward, LOW);
    digitalWrite(leftMotorBackward, LOW);
    digitalWrite(rightMotorForward, LOW);
    digitalWrite(rightMotorBackward, LOW);
  }
}

3. 미디 컨트롤러

미디 컨트롤러 프로젝트는 아두이노를 사용하여 음악 소프트웨어를 제어하는 커스텀 MIDI 컨트롤러를 만드는 것입니다. 버튼과 포텐셔미터를 사용하여 다양한 음악적 기능을 제어할 수 있습니다.

필요한 부품:

  • 아두이노 Leonardo: USB를 통한 MIDI 인터페이스 지원
  • 버튼: MIDI 노트를 트리거하는 입력 장치
  • 포텐셔미터: MIDI 컨트롤러 값 조정
  • USB MIDI 케이블: 컴퓨터와의 연결

기본 코드 예제:

#include <MIDIUSB.h>

const int buttonPin = 2; // 버튼 핀
const int potPin = A0; // 포텐셔미터 핀

void setup() {


  pinMode(buttonPin, INPUT_PULLUP);
}

void loop() {
  int buttonState = digitalRead(buttonPin);
  int potValue = analogRead(potPin);

  // 버튼이 눌릴 때 MIDI 노트 전송
  if (buttonState == LOW) {
    noteOn(0, 60, 127); // MIDI 채널 1, C4 노트, 최대 속도
  } else {
    noteOff(0, 60, 0); // 노트 끄기
  }

  // 포텐셔미터 값에 따라 컨트롤 체인지 메시지 전송
  controlChange(0, 1, potValue / 8); // MIDI 채널 1, 컨트롤러 번호 1

  delay(10);
}

void noteOn(byte channel, byte pitch, byte velocity) {
  midiEventPacket_t noteOn = {0x09, 0x90 | channel, pitch, velocity};
  MidiUSB.sendMIDI(noteOn);
  MidiUSB.flush();
}

void noteOff(byte channel, byte pitch, byte velocity) {
  midiEventPacket_t noteOff = {0x08, 0x80 | channel, pitch, velocity};
  MidiUSB.sendMIDI(noteOff);
  MidiUSB.flush();
}

void controlChange(byte channel, byte control, byte value) {
  midiEventPacket_t cc = {0x0B, 0xB0 | channel, control, value};
  MidiUSB.sendMIDI(cc);
  MidiUSB.flush();
}

이 예시들은 아두이노를 사용하여 다양한 분야에서 창의적인 프로젝트를 구현할 수 있는 가능성을 보여줍니다. 이러한 프로젝트를 통해 아두이노의 기능을 익히고 자신만의 아이디어를 실현할 수 있습니다.

728x90
반응형

+ Recent posts