但我比較Perfer Arduino,
原因是前面有些複雜的程式都幫你建好了,你只要看得懂會改就OK了,
但是還是要有點C語言和電子硬體的基礎能力才行,
原理基本上都和8051類似。
開始玩Arduino囉!!!
觸控開關模組TTP223。
三個PIN分別是DC5V與數位輸出,觸動後就給1。
要八個,這一個很便宜掏寶不到20元。
無源蜂鳴器,
需要寫入頻率發出聲音。
拿了張以前工藝課的小椅子來用。
至於杜邦線怎麼接,這基礎的贅述我就不說了。
因為按鍵已經夠多了,所以LCD必須的去搭配IIC(I2C)轉接模組,來減少杜邦線。
沒錯!!!就是電子琴。
LCD顯示的資料為"按到的音階"。
程式如下:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3,POSITIVE);
//前面都LCD和轉換器的的定義設定。
int const buzzer=2;
int HZ;
char TONE[8][3]={"DO","RE","ME","FA","SO","LA","SI","DO"};
//用陣列字串宣告8個音階。
void setup(){
lcd.begin(16, 2);
Serial.begin(4800);
//序列阜監視。
pinMode(buzzer,OUTPUT);
for(int i=5;i<=12;i++){
pinMode(i,INPUT);
}
}
void loop(){
for(int i=5;i<=12;i++){
if(digitalRead(i)==HIGH){
tone(buzzer,HZ=523+(i-5)*70,10);
//其實每個音階的頻率都不會只差70Hz,除了DO(523Hz)以外其他因都不太準,但是還是可以
//分辨,因為我不想一個一個打,所以直接for迴圈套個差不多的頻率。
Serial.println(TONE[i-5]);
lcd.setCursor(0,5);
lcd.print(TONE[i-5]);
//LCD與序列阜顯示。
}
}
}
成果差不多是這樣,影片的LCD顯示因為背光太強,不管調背光還是手機錄影都看不清楚,
實際上是有音階顯示的。
無源蜂鳴器,
需要寫入頻率發出聲音。
拿了張以前工藝課的小椅子來用。
至於杜邦線怎麼接,這基礎的贅述我就不說了。
因為按鍵已經夠多了,所以LCD必須的去搭配IIC(I2C)轉接模組,來減少杜邦線。
沒錯!!!就是電子琴。
LCD顯示的資料為"按到的音階"。
程式如下:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3,POSITIVE);
//前面都LCD和轉換器的的定義設定。
int const buzzer=2;
int HZ;
char TONE[8][3]={"DO","RE","ME","FA","SO","LA","SI","DO"};
//用陣列字串宣告8個音階。
void setup(){
lcd.begin(16, 2);
Serial.begin(4800);
//序列阜監視。
pinMode(buzzer,OUTPUT);
for(int i=5;i<=12;i++){
pinMode(i,INPUT);
}
}
void loop(){
for(int i=5;i<=12;i++){
if(digitalRead(i)==HIGH){
tone(buzzer,HZ=523+(i-5)*70,10);
//其實每個音階的頻率都不會只差70Hz,除了DO(523Hz)以外其他因都不太準,但是還是可以
//分辨,因為我不想一個一個打,所以直接for迴圈套個差不多的頻率。
Serial.println(TONE[i-5]);
lcd.setCursor(0,5);
lcd.print(TONE[i-5]);
//LCD與序列阜顯示。
}
}
}
成果差不多是這樣,影片的LCD顯示因為背光太強,不管調背光還是手機錄影都看不清楚,
實際上是有音階顯示的。
大神~請問蜂鳴器是要麼接呢?然後我看圖片裡面貌似有麵包板,是必要的嗎?然後還有顯示器也是必要品嗎?勞煩大神解答,謝謝~~
回覆刪除(原諒我是個初學者...一竅不通>~<)
你好我是玉井工商電子科的看到你的作品很喜歡不知道可不可以麻煩你綁幫幫我給我接線圖 我們會再修改
回覆刪除