📌 고정 게시글

📢 공지합니다

이 게시글은 메인 페이지에 항상 고정되어 표시됩니다.

최코딩의 개발

CH9 유수봉 교수의 APP-09 본문

수업/아두이노

CH9 유수봉 교수의 APP-09

seung_ho_choi.s 2023. 11. 2. 16:38
728x90

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);
}

 

 

블루투스 연결

 

느낀점: 스피커가 너무 재밌었다! 

728x90

'수업 > 아두이노' 카테고리의 다른 글

CH11 유수봉 교수의 APP-11  (0) 2023.11.16
CH10 유수봉 교수의 APP-10  (0) 2023.11.09
CH8 유수봉 교수의 APP-08  (0) 2023.10.26
CH보고서 유수봉 교수의 APP-보고서  (0) 2023.10.26
CH7 유수봉 교수의 APP-07  (1) 2023.10.19