彰化一整天的論壇

 找回密碼
 立即註冊
查看: 961|回復: 0

電子小門鈴

[複製鏈接]
發表於 2016-10-13 21:00:27 | 顯示全部樓層 |閱讀模式
本帖最後由 discuz 於 2016-10-13 21:12 編輯
  1. //電子小門鈴
  2. int ledPin = 13; // 要輸出的LED PIN腳
  3. int inPin = 10; // 要輸入的按鈕PIN腳
  4. int val = 0; // 設定一個狀態變數
  5. int speakerPin = 9;
  6. int length = 15; // the number of notes
  7. char notes[] = "ccggaagffeeddc "; // a space represents a rest
  8. int beats[] = { 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 2, 4 };
  9. int tempo = 300;

  10. void setup() {
  11.   pinMode(ledPin, OUTPUT); // 設定LEDPIN腳為輸出模式
  12.   pinMode(speakerPin, OUTPUT);
  13.   pinMode(inPin, INPUT); // 設定輸入PIN腳為輸入模式
  14.   Serial.begin(9600); // 設定序列埠的速度為9600bps
  15. }
  16. void playTone(int, int) ;
  17. void playNote(char, int);
  18. void loop(){
  19.   val = digitalRead(inPin); // 取得PIN 10 的值
  20.   Serial.println(val); // 印出所抓到的數值
  21.   delay(100); // 延遲顯示時間= 0.1秒
  22.   
  23.   if (val == HIGH) { // 如果按鈕沒按下
  24.     digitalWrite(ledPin, LOW); // 就把LED13輸出訊號為LOW電壓,就是不亮
  25.   }else {
  26.     digitalWrite(ledPin, HIGH); // 當按鈕被按下,LED13亮著

  27.   for (int i = 0; i < length; i++) {
  28.     if (notes[i] == ' ') {
  29.       delay(beats[i] * tempo); // rest
  30.     } else {
  31.       playNote(notes[i], beats[i] * tempo);
  32.    }
  33.     // pause between notes
  34.       delay(tempo / 2);
  35.   }
  36.   }
  37. }


  38. void playTone(int tone, int duration) {
  39.   for (long i = 0; i < duration * 1000L; i += tone * 2) {
  40.     digitalWrite(speakerPin, HIGH);
  41.     delayMicroseconds(tone);
  42.     digitalWrite(speakerPin, LOW);
  43.     delayMicroseconds(tone);
  44.   }
  45. }


  46. void playNote(char note, int duration) {
  47.   char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' };
  48.   int tones[] = { 1915, 1700, 1519, 1432, 1275,1136, 1014, 956 };
  49.   // play the tone corresponding to the note name
  50.   for (int i = 0; i < 8; i++) {
  51.     if (names[i] == note) {
  52.       playTone(tones[i], duration);
  53.     }
  54.   }
  55. }
複製代碼
arduino_page_122.jpg
回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

Archiver|手機版|小黑屋|彰化一整天的論壇(Excel,Office)  |网站地图

GMT+8, 2019-8-25 01:51 , Processed in 0.179638 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表