MakerUNO實作
1 讓電路板的第13個pin亮起來
2 還原Original程式碼
3 讓電路板的Pin燈全部亮起來
4 當Button按下去時燈會滅,當Button不按時燈會亮
程式碼:
pinMode(2,INPUT_PULLUP); //把BUTTON(2)打開,使用INPUT_PULLUP預設要拉高
for(int i=3;i<=13;i++){ //2是BUTTON,所以OUTPUT從3開始
pinMode(i,OUTPUT);
}
}
bool bLightHIGH=true;
void loop() {
if(digitalRead(2)==HIGH) bLightHIGH=true;
else bLightHIGH=false;
for(int i=3;i<=13;i++){
if(bLightHIGH) digitalWrite(i,HIGH);
else digitalWrite(i,LOW);
}
}
5 用BUZZER製作出小蜜蜂的音樂
程式碼:
#define NOTE_D5 587
#define NOTE_E5 659
#define NOTE_F5 698
#define NOTE_G5 784
void setup() {
pinMode(8,OUTPUT); //BUZZER 蜂鳴器
}
void loop() {
tone(8,NOTE_G5,230);
delay(230);
tone(8,NOTE_E5,230);
delay(230);
tone(8,NOTE_E5,230);
delay(430);
tone(8,NOTE_F5,230);
delay(230);
tone(8,NOTE_D5,230);
delay(230);
tone(8,NOTE_D5,230);
delay(430);
tone(8,NOTE_C5,230);
delay(230);
tone(8,NOTE_D5,230);
delay(230);
tone(8,NOTE_E5,230);
delay(230);
tone(8,NOTE_F5,230);
delay(230);
tone(8,NOTE_G5,230);
delay(230);
tone(8,NOTE_G5,230);
delay(230);
tone(8,NOTE_G5,230);
delay(430);
}
6 按下Button後才會撥放出小蜜蜂的音樂
#define NOTE_C5 523
#define NOTE_D5 587
#define NOTE_E5 659
#define NOTE_F5 698
#define NOTE_G5 784
void setup() {
pinMode(2,INPUT_PULLUP);
pinMode(8,OUTPUT);
}
bool bLightHIGH=true;
void loop() {
if(digitalRead(2)==LOW) bLightHIGH=true;
else bLightHIGH=false;
if(bLightHIGH){
tone(8,NOTE_G5,230);
delay(230);
tone(8,NOTE_E5,230);
delay(230);
tone(8,NOTE_E5,230);
delay(430);
tone(8,NOTE_F5,230);
delay(230);
tone(8,NOTE_D5,230);
delay(230);
tone(8,NOTE_D5,230);
delay(430);
tone(8,NOTE_C5,230);
delay(230);
tone(8,NOTE_D5,230);
delay(230);
tone(8,NOTE_E5,230);
delay(230);
tone(8,NOTE_F5,230);
delay(230);
tone(8,NOTE_G5,230);
delay(230);
tone(8,NOTE_G5,230);
delay(230);
tone(8,NOTE_G5,230);
delay(430);
tone(8,NOTE_G5,230);
delay(230);
tone(8,NOTE_E5,230);
delay(230);
tone(8,NOTE_E5,230);
delay(430);
tone(8,NOTE_F5,230);
delay(230);
tone(8,NOTE_D5,230);
delay(230);
tone(8,NOTE_D5,230);
delay(430);
tone(8,NOTE_C5,230);
delay(230);
tone(8,NOTE_E5,230);
delay(230);
tone(8,NOTE_G5,230);
delay(230);
tone(8,NOTE_G5,230);
delay(230);
tone(8,NOTE_C5,230);
delay(430);
}
}
6 利用 Processing 和 Arduino 結合操作
使用 key 來撥出相對聲音
Processing:
Serial myPort;
void setup(){
myPort = new Serial(this , "COM4" , 9600);
}
void draw(){
}
void keyPressed(){
if(key=='1') myPort.write('1');
if(key=='2') myPort.write('2');
if(key=='3') myPort.write('3');
if(key=='4') myPort.write('4');
if(key=='5') myPort.write('5');
if(key=='6') myPort.write('6');
if(key=='7') myPort.write('7');
}
Arduino:
#define NOTE_D5 587 //RE
#define NOTE_E5 659 //MI
#define NOTE_F5 698 //FA
#define NOTE_G5 784 //SO
#define NOTE_A5 880 //LA
#define NOTE_B5 988 //SI
void setup() {
pinMode(8,OUTPUT);
Serial.begin(9600);
}
void loop() {
if(Serial.available()){
char now = Serial.read();
if(now=='1') tone(8,NOTE_C5,300);
if(now=='2') tone(8,NOTE_D5,300);
if(now=='3') tone(8,NOTE_E5,300);
if(now=='4') tone(8,NOTE_F5,300);
if(now=='5') tone(8,NOTE_G5,300);
if(now=='6') tone(8,NOTE_A5,300);
if(now=='7') tone(8,NOTE_B5,300);
}
}







沒有留言:
張貼留言