NEFUS_19/아두이노

아두이노 3차시 (세그먼트+ 부저+응용)

유찬수 2021. 5. 30. 03:34

부저

부저

세라믹 재료로 만들어진 부저로

세라믹판에 압력을 주면 떨리는 현상을 거꾸로 이용했다.

tone(pin 번호, 주파수 값)↓주파수↓

주파수




세그먼트

 

세그먼트

led 8개 있는 숫자 표시판

세그먼트




실습#1(부저)

void setup() {
  pinMode(5, OUTPUT);
}

void loop() {
  tone(5, 1046.5);
  delay(200);
  tone(5, 100.5);
  delay(200);
}


실습#2(세그먼트)

int ledArr[8] = {0, 1, 2, 3, 4, 5, 6, 7};
int ledn = 8;

int digitForNum[10][8] = {
    {0, 0, 0, 0, 0, 0, 1, 1}, //0
    {1, 0, 0, 1, 1, 1, 1, 1}, //1
    {0, 0, 1, 0, 0, 1, 0, 1}, //2
    {0, 0, 0, 0, 1, 1, 0, 1}, //3
    {1, 0, 0, 1, 1, 0, 0, 1}, //4
    {0, 1, 0, 0, 1, 0, 0, 1}, //5
    {0, 1, 0, 0, 0, 0, 0, 1}, //6
    {0, 0, 0, 1, 1, 1, 1, 1}, //7
    {0, 0, 0, 0, 0, 0, 0, 1}, //8
    {0, 0, 0, 0, 1, 0, 0, 1}  //9
};
void setup()
{
  for(int i=0; i<ledn; i++){
    pinMode(ledArr[i], OUTPUT);
  }  
}

void loop()
{
  int i, j;
  for(i = 0; j<10; j++){
    for(j=0; j<ledn; j++){
      digitalWrite(ledArr[j], digitForNum[i][j]);
    }
  }
}


실습#3(부저+초음파) //5cm 접근시 알람 나가면 바로 꺼짐

int trig = 3;
int echo = 4;

void setup() {
  Serial.begin(9600);
  pinMode(trig, OUTPUT);
  pinMode(echo, INPUT);
}

void loop() {
  digitalWrite(trig, HIGH);
  delay(10);
  digitalWrite(trig, LOW);
  int distance = pulseIn(echo, HIGH)*34 / 2 / 1000;
  Serial.println(distance);
  if(distance <= 5){
    tone(5, 262);
    delay(200);
    tone(5, 587);
    delay(200);
    tone(5, 330);
    
  }else noTone(5);
    
}


실습#3(부저+초음파) //5cm 접근시 노래(할아버지의 낡은 시계)나가도 안 꺼짐

 

int trig = 3;
int echo = 4;

void m(){
    tone(5, 392);
    delay(600);
    noTone(5);
    tone(5, 523);
    delay(600);
    noTone(5);
    tone(5, 494);
    delay(300);
    noTone(5);
    tone(5, 523);
    delay(300);
    noTone(5);
    tone(5, 587);
    delay(600);
    noTone(5);
    tone(5, 523);
    delay(300);
    noTone(5);
    tone(5, 587);
    delay(300);
    noTone(5);
    tone(5, 659);
    delay(600);
    noTone(5);
    tone(5, 698);
    delay(300);
    noTone(5);
    tone(5, 659);
    delay(300);
    noTone(5);
    tone(5, 440);
    delay(600);
    noTone(5);
    tone(5, 587);
    delay(300);
    noTone(5);
    tone(5, 587);
    delay(300);
    noTone(5);
    tone(5, 523);
    delay(600);
    noTone(5);
    tone(5, 523);
    delay(300);
    noTone(5);
    tone(5, 523);
    delay(300);
    noTone(5);
    tone(5, 494);
    delay(600);
    noTone(5);
    tone(5, 440);
    delay(300);
    noTone(5);
    tone(5, 494);
    delay(300);
    noTone(5);
    tone(5, 523);
    delay(1800);
    noTone(5);
    tone(5, 392);
    delay(600);
    noTone(5);
    tone(5, 523);
    delay(600);
    noTone(5);
    tone(5, 494);
    delay(300);
    noTone(5);
    tone(5, 523);
    delay(300);
    noTone(5);
    tone(5, 587);
    delay(600);
    noTone(5);
    tone(5, 523);
    delay(300);
    noTone(5);
    tone(5, 587);
    delay(300);
    noTone(5);
    tone(5, 659);
    delay(600);
    noTone(5);
    tone(5, 698);
    delay(300);
    noTone(5);
    tone(5, 659);
    delay(300);
    noTone(5);
    tone(5, 440);
    delay(600);
    noTone(5);
    tone(5, 587);
    delay(300);
    noTone(5);
    tone(5, 587);
    delay(300);
    noTone(5);
    tone(5, 523);
    delay(600);
    noTone(5);
    tone(5, 523);
    delay(300);
    noTone(5);
    tone(5, 523);
    delay(300);
    noTone(5);
    tone(5, 494);
    delay(600);
    noTone(5);
    tone(5, 440);
    delay(300);
    noTone(5);
    tone(5, 494);
    delay(300);
    noTone(5);
    tone(5, 523);
    delay(1800);
    noTone(5);
    tone(5, 523);
    delay(300);
    noTone(5);
    tone(5, 659);
    delay(300);
    noTone(5);
    tone(5, 784);
    delay(600);
    noTone(5);
    tone(5, 659);
    delay(300);
    noTone(5);
    tone(5, 587);
    delay(300);
    noTone(5);
    tone(5, 523);
    delay(600);
    noTone(5);
    tone(5, 494);
    delay(300);
    noTone(5);
    tone(5, 523);
    delay(300);
    noTone(5);
    tone(5, 587);
    delay(300);
    noTone(5);
    tone(5, 523);
    delay(300);
    noTone(5);
    tone(5, 494);
    delay(300);
    noTone(5);
    tone(5, 440);
    delay(300);
    noTone(5);
    tone(5, 392);
    delay(600);
    noTone(5);
    tone(5, 523);
    delay(300);
    noTone(5);
    tone(5, 659);
    delay(300);
    noTone(5);
    tone(5, 784);
    delay(600);
    noTone(5);
    tone(5, 659);
    delay(300);
    noTone(5);
    tone(5, 587);
    delay(300);
    noTone(5);
    tone(5, 523);
    delay(600);
    noTone(5);
    tone(5, 494);
    delay(300);
    noTone(5);
    tone(5, 523);
    delay(300);
    noTone(5);
    tone(5, 587);
    delay(1800);
    noTone(5);
    tone(5, 392);
    delay(300);
    noTone(5);
    tone(5, 392);
    delay(300);
    noTone(5);
    tone(5, 523);
    delay(600);
    noTone(5);
    delay(600);
    tone(5, 587);
    delay(600);
    noTone(5);
    delay(600);// ///
    tone(5, 659);
    delay(200);
    noTone(5);
    tone(5, 659);
    delay(200);
    noTone(5);
    tone(5, 659);
    delay(200);
    noTone(5);
    tone(5, 698);
    delay(300);
    noTone(5);
    tone(5, 659);
    delay(300);
    noTone(5);
    tone(5, 440);
    delay(600);
    noTone(5);
    tone(5, 587);
    delay(300);
    noTone(5);
    tone(5, 587);
    delay(300);
    noTone(5);
    tone(5, 523);
    delay(1200);
    noTone(5);
    tone(5, 494);
    delay(1200);
    noTone(5);
    tone(5, 523);
    delay(1800);
    noTone(5);
    delay(600);
    tone(5, 392);
    delay(300);
    noTone(5);
    tone(5, 392);
    delay(300);
    noTone(5);
    tone(5, 523);
    delay(600);
    noTone(5);
    tone(5, 392);
    delay(300);
    noTone(5);
    tone(5, 392);
    delay(300);
    noTone(5);
    tone(5, 440);
    delay(450);
    noTone(5);
    tone(5, 392);
    delay(150);
    noTone(5);
    tone(5, 392);
    delay(600);
    noTone(5);
    tone(5, 330);
    delay(300);
    noTone(5);
    delay(300);
    tone(5, 392);
    delay(300);
    noTone(5);
    delay(300);
    tone(5, 330);
    delay(300);
    noTone(5);
    delay(300);
    tone(5, 392);
    delay(300);
    noTone(5);
    tone(5, 392);
    delay(300);
    noTone(5);
    tone(5, 523);
    delay(600);
    noTone(5);
    tone(5, 392);
    delay(300);
    noTone(5);
    tone(5, 392);
    delay(300);
    noTone(5);
    tone(5, 440);
    delay(450);
    noTone(5);
    tone(5, 392);
    delay(150);
    noTone(5);
    tone(5, 392);
    delay(600);
    noTone(5);
    tone(5, 330);
    delay(300);
    noTone(5);
    delay(300);
    tone(5, 392);
    delay(300);
    noTone(5);
    delay(300);
    tone(5, 330);
    delay(300);
    delay(300);
    noTone(5);
    delay(300);
    tone(5, 392);
    delay(300);
    noTone(5);
    tone(5, 392);
    delay(300);
    noTone(5);
    tone(5, 523);
    delay(250);
    noTone(5);
    delay(900);
    tone(5, 587);
    delay(250);
    noTone(5);
    delay(900);
    tone(5, 659);
    delay(200);
    noTone(5);
    tone(5, 659);
    delay(200);
    noTone(5);
    tone(5, 659);
    delay(200);
    noTone(5);
    tone(5, 698);
    delay(300);
    noTone(5);
    tone(5, 659);
    delay(300);
    noTone(5);
    tone(5, 440);
    delay(600);
    noTone(5);
    tone(5, 587);
    delay(300);
    noTone(5);
    tone(5, 587);
    delay(300);
    noTone(5);
    tone(5, 523);
    delay(1200);
    noTone(5);
    tone(5, 494);
    delay(1200);
    noTone(5);
    tone(5, 523 );
    delay(1800);
    noTone(5);
    delay(600);
    return 0;
}

void setup() {
  Serial.begin(9600);
  pinMode(trig, OUTPUT);
  pinMode(echo, INPUT);
}

void loop() {
  digitalWrite(trig, HIGH);
  delay(10);
  digitalWrite(trig, LOW);
  int distance = pulseIn(echo, HIGH)*34 / 2 / 1000;
  Serial.println(distance);
  if(distance <= 5) m();
}

cho_buzz_002.zip
0.00MB



↓영상