Arduino基础学习-tone函数

来源:互联网 发布:可以画画的软件 编辑:程序博客网 时间:2024/06/10 16:05
#include "notes.h"int buzzerPin=9;int note[]={C5, C5, G5, G5, A5, A5, G5, 0, F5, F5, E5, E5, D5, D5, C5, 0,            G5, G5, F5, F5, E5, E5, D5, 0, G5, G5, F5, F5, E5, E5, D5, 0,            C5, C5, G5, G5, A5, A5, G5, 0, F5, F5, E5, E5, D5, D5, C5, 0};          int duration[]={4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,                4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,                4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4};void setup() { pinMode(buzzerPin, OUTPUT); }void loop() {  littleStar(buzzerPin, sizeof(note)/sizeof(int));  }void littleStar(int pin, int count) {  for (int i=0; i<count; i++) {     int d=1000/duration[i];    tone(pin, note[i], d);    int p=d * 1.3;    delay(p);    noTone(pin);    }   delay(2000);  }
nt In_pin_Do = 10;
int In_pin_Re = 9;
int In_pin_Mi = 8;
int In_pin_Fa = 7;
int In_pin_So = 6;
int In_pin_La = 5;
int In_pin_Si = 4;
int In_pin_DoH = 3;
int Out_pin_Phone = 2;
int val;
int tempo = 200;
int Do = 1915;
int Re = 1700;
int Mi = 1519;
int Fa = 1432;
int So = 1275;
int La = 1136;
int Si = 1014;
int DoH = 956;
void setup()
{
  Serial.begin(9600);
  pinMode(Out_pin_Phone,OUTPUT);
}
void loop()
{
 val = digitalRead(In_pin_Do);
 if(val == 1) {playTone(Do,tempo); Serial.println("Do ");}
 val = digitalRead(In_pin_Re);
 if(val == 1) {playTone(Re,tempo); Serial.println("Re ");}
 val = digitalRead(In_pin_Mi);
 if(val == 1) {playTone(Mi,tempo); Serial.println("Mi ");}
 val = digitalRead(In_pin_Fa);
 if(val == 1) {playTone(Fa,tempo); Serial.println("Fa ");}
 val = digitalRead(In_pin_So);
 if(val == 1) {playTone(So,tempo); Serial.println("So ");}
 val = digitalRead(In_pin_La);
 if(val == 1) {playTone(La,tempo); Serial.println("La ");}
 val = digitalRead(In_pin_Si);
 if(val == 1) {playTone(Si,tempo); Serial.println("Si ");}
 val = digitalRead(In_pin_DoH);
 if(val == 1) {playTone(DoH,tempo); Serial.println("DoH ");}
}
void playTone(int tone, int duration)
{
  for(long i = 0; i < long(duration)* 1000;i += tone*2)
  {
    digitalWrite(Out_pin_Phone,HIGH);
    delayMicroseconds(tone);
    digitalWrite(Out_pin_Phone,LOW);
    delayMicroseconds(tone);
  }
}  


0 0
原创粉丝点击