카테고리 없음

[동아리 과제] 5월 18일 아두이노 6차시 과제

20308박동진 2022. 5. 22. 00:54

블루투스란?

- 근거리 무선통신기술(줄여서 BT --> Bluetooth)

 

블루투스 모듈이란?

- 아두이노에서 시리얼 통신을 하여 데이터 값을 주고 받을 수 있는 모듈

- *직렬 포트 패스스루 모듈과 *오디오 모듈로 나뉩니다.

 

 

*직렬 포트 통과 응용 프로그램? --> 블루트스 프린터, 바코드 스캐너 등 데이터 정송으로 블루투스를 사용하는 장치

*오디오 응용 프로그램? --> 블루투스 스피커, 헤드셋 등 

 

<연결예시>

 

블루투스모듈을 쓰는 이유?

--> 아두이노는 유선 통신시리얼(Serial)통신을 필요로 합니다. 따라서 무선통신을 하기 위해 무선 통신시리얼 통신으바꿔주는 모듈(블루투스모듈)이 필요합니다. 

 

<코드>

#include <SoftwareSerial.h> //Sofware~을 헤더파일로 추가
#define BT_TXD 7 //BT_TXD를 7번으로 저장 --> 송신
#define BT_RXD 8//BT_RXD를 8번으로 저장 --> 수신
SoftwareSerial bluetooth(BT_RXD, BT_TXD);
void setup() {
  Serial.begin(9600);
    bluetooth.begin(9600);
}
  

void loop() { //반복
  if(bluetooth.available()){//블루투스모듈에 입력한 값
    Serial.write(bluetooth.read());//시리얼모니터에 출력
  }
  if(Serial.available()){//시리얼모니터에 입력한 값
    bluetooth.write(Serial.read());//블루투스모듈에 전달
  }
}

 

 

<동아리 수업에서>

- 동아리수업에서 한 Terminal mode에서 o가 입력될 경우 led를 키고 f를 입력받으면 led를 꺼보자!

 

<회로도>

단 블루투스모듈이 연결 되어 있는 상태!

 

<코드>

#include <SoftwareSerial.h> //Sofware~을 헤더파일로 추가
#define BT_TXD 7 //BT_TXD를 7번으로 저장 --> 송신
#define BT_RXD 8//BT_RXD를 8번으로 저장 --> 수신
#define led 2
SoftwareSerial bluetooth(BT_RXD, BT_TXD);
void setup() {
  Serial.begin(9600);
    bluetooth.begin(9600);
    pinMode(led, OUTPUT);
}
  

void loop() { //반복
  char v = bluetooth.read(); //문자형 변수에 입력받은 값을 저장함
  
  if(v == 'o'){
    digitalWrite(led, HIGH); //v 가 'o'라고 입력받으면 led가 켜짐
  }
  if(v == 'f'){
    digitalWrite(led, LOW); //v가 'f'라고 입력되면 led가 꺼짐
  }
}

 

 

 

<과제>

 

: 블루투스 센서를 이용해 부저센서 켜고 꺼보기

 

<회로도>

 

<코드>

 

#include <SoftwareSerial.h> //Sofware~을 헤더파일로 추가
#define BT_TXD 7 //BT_TXD를 7번으로 저장 --> 송신
#define BT_RXD 8//BT_RXD를 8번으로 저장 --> 수신
#define bu 2
SoftwareSerial bluetooth(BT_RXD, BT_TXD);
void setup() {
  Serial.begin(9600);
    bluetooth.begin(9600);
    pinMode(bu, OUTPUT);
}
  

void loop() { //반복
  char v = bluetooth.read();//문자형 변수에 입력받은 값을 저장함
  
  if(v == 'o'){
    tone(bu, 1100); //v 가 'o'라고 입력받으면 bu가 켜짐
  }
  if(v == 'f'){
    noTone(bu);//v가 'f'라고 입력되면 bu가 꺼짐
  }
}

.

.

.

.

.

.

.

블루투스 모듈이 안되서 하는 새로운 과제!

 --> 서브모터를 사용하여 부저 출력하기 

 

<회로도>

 

<코드>

int bu = 2;
void setup()
{
  Serial.begin(9600); //시리얼통신
  pinMode(bu, OUTPUT); //bu출력
}

void loop()
{
   int poten = analogRead(A0);
   int mapp = map(poten, 0, 1023, 0, 180); //poten의 값을 0~1023에서 0~1000 으로 바꿈
  
   Serial.println(mapp); //저항값을 시리얼모니터에 출력
  tone(bu, mapp); //저항값이 바뀜에 따라 저항이 달라짐 --> 그에 따라 bu의 밝기를 조절 할 수 있음
}

 

<영상>