CH9(CSH) ▶ Lab_Speake_1 : 멜로디
TinkerCad
아두이노
영상
https://youtu.be/GyIBFfZONqc?si=UM05R2qCNgrT7Cwp
코드
#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); // 멜로디 중간에 짧게 멈추는 용도
}
Lab_Speake_2 : 거리 감지 경고발생기
tinkercad
아두이노
영상
https://youtu.be/K39daAsyrvs?si=CjnpzNhQHDnKxvP1
코드
#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);
}
블루투스 연결
느낀점: 스피커가 너무 재밌었다!