https://blog.naver.com/newbongman/223253485925
... 교수의 APP-08 : Speaker
... 교수의 APP-08 : Speaker 스피커(피에조부저)는 전기적 신호를 소리로 바꾸어 줍니다. 그림과 같이...
blog.naver.com
#define C 262 // 도
#define D 294 // 레
#define E 330 // 미
#define F 349 // 파
#define G 392 // 솔
#define A 440 // 라
#define B 494 // 시
#define X 0 // 쉼
int piezoPin = 2;
int tempo = 200;
int notes[30] = { C,E,G,C,E,G,A,A,A,G,X,X,F,F,F,E,E,E,D,D,D,C,X,X,X };
void setup() {
pinMode (piezoPin, OUTPUT);
}
void loop() {
for (int i = 0; i < 30; i++) {
tone (piezoPin, notes[ i ], tempo);
delay (300);
}
delay(100); // 멜로디 중간에 짧게 멈추는 용도
}
#define C 262 // 도
#define D 294 // 레
#define E 330 // 미
#define F 349 // 파
#define G 392 // 솔
#define A 440 // 라
#define B 494 // 시
#define B5 524 // 시
#define X 0 // 쉼
const int buzzerPin = 13;
const int trigPin = 12;
const int echoPin = 11;
int read_distance(void)
{
long duration;
int distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(5);
// Trigger the sensor by setting the trigPin high for 10 microseconds:
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Read the echoPin, pulseIn() returns the duration (length of the pulse) in microseconds:
duration = pulseIn(echoPin, HIGH);
// Calculate the distance:
distance = duration * 0.034 / 2;
return distance;
}
void setup()
{
Serial.begin(9600);
pinMode(echoPin, INPUT);
pinMode(trigPin, OUTPUT);
pinMode(buzzerPin, OUTPUT);
for(int N=2; N<10; N++) {
pinMode(N, OUTPUT);
}
}
void loop()
{
int distance;
distance = read_distance();
if((distance/10)<5) {
tone (buzzerPin, D, 50); }
else {
digitalWrite(buzzerPin, LOW); }
if ((distance/10)>1) {
digitalWrite(2, HIGH); }
else {
digitalWrite(2, LOW); }
if ((distance/10)>3) {
digitalWrite(3, HIGH); }
else {
digitalWrite(3, LOW); }
if ((distance/10)>5) {
digitalWrite(4, HIGH); }
else { digitalWrite(4, LOW); }
if ((distance/10)>7) {
digitalWrite(5, HIGH); }
else {
digitalWrite(5, LOW); }
if ((distance/10)>9) {
digitalWrite(6, HIGH); }
else
{ digitalWrite(6, LOW); }
if ((distance/10)>11) {
digitalWrite(7, HIGH); }
else {
digitalWrite(7, LOW); }
if ((distance/10)>13) {
digitalWrite(8, HIGH); }
else {
digitalWrite(8, LOW); }
if ((distance/10)>15) {
digitalWrite(9, HIGH); }
else {
digitalWrite(9, LOW); }
if ((distance/10)>17) {
digitalWrite(10, HIGH); }
else {
digitalWrite(10, LOW); }
Serial.println(distance);
//Serial.println("cm");
//Serial.println();
delay(100);
}
블루투스 통신 코드(R, B, Y 면 led 불빛 켜지고 r, b, y면 led 불빛 꺼짐)
#include <SoftwareSerial.h>
#define BT_RXD 8
#define BT_TXD 7
SoftwareSerial bluetooth(BT_RXD, BT_TXD);
void setup(){
Serial.begin(9600);
bluetooth.begin(9600);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
Serial.print("Start");
}
void loop(){
char X;
if (bluetooth.available()) {
X = bluetooth.read();
Serial.write(X);
if (X=='R') digitalWrite(3,HIGH);
if (X=='B') digitalWrite(4,HIGH);
if (X=='Y') digitalWrite(5,HIGH);
if (X=='r') digitalWrite(3,LOW);
if (X=='b') digitalWrite(4,LOW);
if (X=='y') digitalWrite(5,LOW);
}
if (Serial.available()) {
bluetooth.write(Serial.read());
}
}
'학교 > 스타트업모바일앱' 카테고리의 다른 글
유수봉 교수의 APP-10 (0) | 2023.11.16 |
---|---|
유수봉 교수의 APP-09 (2) | 2023.11.09 |
유수봉 교수의 APP - 중간보고서 (0) | 2023.10.26 |
유수봉 교수의 APP-07 (0) | 2023.10.26 |
유수봉 교수의 APP-06 (0) | 2023.10.19 |