사용 코드
#include <SoftwareSerial.h>
const int TxPin = 2; // Bluetooth 전송핀(Tx)
const int RxPin = 3; // 블루투스 수신핀(rx)
SoftwareSerial BTSerial(TxPin, RxPin); // RX, TX
const int SW1 = 5;
const int SW2 = 6;
const int LED1 = 8;
const int LED2 = 9;
const int TrigPin = 11; // 초음파 센서 TrigPin(거리 측정용 신호 발생)
const int EchoPin = 12; // 초음파 센서 EchoPin(반사된 신호 감지)
int read_distance(void) {
long duration;
int distance;
digitalWrite(TrigPin, LOW);
delayMicroseconds(5);
digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin, LOW);
duration = pulseIn(EchoPin, HIGH);
distance = duration * 0.034 / 2;
return distance;
}
void setup() {
Serial.begin(9600);
BTSerial.begin(9600);
pinMode(SW1, INPUT);
pinMode(SW2, INPUT);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(EchoPin, INPUT);
pinMode(TrigPin, OUTPUT);
Serial.println("START");
}
void loop() {
char MSGc[30];
//Data#1
int distance;
distance = read_distance();
Serial.print(" Sonic : ");
Serial.print(distance);
//Data#2
int cds;
cds = analogRead(0);
Serial.print(" CDS : ");
Serial.print(cds);
//Data#3
int sw1, sw2;
sw1 = digitalRead(SW1);
sw2 = digitalRead(SW2);
Serial.print(" SW#1 : ");
Serial.print(sw1);
Serial.print(" SW#2 : ");
Serial.print(sw2);
//Data#4
int led1, led2;
led1 = digitalRead(LED1);
led2 = digitalRead(LED2);
Serial.print(" LED#1 : ");
Serial.print(digitalRead(led1));
Serial.print(" LED#2 : ");
Serial.print(digitalRead(led2));
Serial.println();
// App 으로 보낸 메시지 만들기
sprintf(MSGc, "S#%04d C#%04d S1#%d S2#%d L1#%d L2#%d ", distance, cds, sw1, sw2, led1, led2);
// App 으로 메시지 보내기
BTSerial.write(MSGc); // Serial Monitor 출력
//Serial.println(MSGc); // Bluetooth 전송
delay(1000);
}
팅커캐드로 코드를 넣고 초음파센서와 조도센서를 조절하면 시리얼 모니터에 값이 바뀐다.
이것을 실제 보드에 연결하고 아두이노 IDE에 코드를 넣고 실험을 하면 시리얼 모니터에
실시간으로 값이 바뀌게 된다. 여기서 코드를 수정후 저번주에 만든 앱에 블루투스를 연결하면
P1 Date와 P2 Date 값이 초음파센서와 조도센서 값이 실시간으로 바뀌게 된다.
이번주는 초음파, 조도센서만 활용을 했지만 다음주엔 LED, 버튼 기능을 추가할 예정이다.
'유수봉 교수의 AI' 카테고리의 다른 글
유수봉 교수의 AI-15주차 (0) | 2024.06.26 |
---|---|
유수봉 교수의 AI-13주차 (0) | 2024.05.31 |
유수봉 교수의 AI-12주차 (0) | 2024.05.31 |
유수봉 교수의 AI-11주차 (0) | 2024.05.17 |
유수봉 교수의 AI-10주차 (0) | 2024.05.10 |