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();
}
↓영상