2020年11月30日 星期一

第12週

複習上周發出聲音
程式碼:
#define Do 523
#define Mi 659
#define So 784
void setup() {
  // put your setup code here, to run once:
  pinMode(8,OUTPUT);///設定頻率8打開
  tone(8,Do);///不給長度,一直發出聲音
  delay(500);///延遲0.5秒,Do發出0.5秒
  tone(8,Mi);
  delay(500);
  tone(8,So);
  delay(500);
  noTone(8);///靜音
}

void loop() {
  // put your main code here, to run repeatedly:

}

沿伸1
*2是用BUTTON*
程式碼:
#define Do 523
#define Mi 659
#define So 784
void setup() {
  // put your setup code here, to run once:
  pinMode(2,INPUT_PULLUP);///預設2被拉起來
  pinMode(8,OUTPUT);
  tone(8,Do);
  delay(500);
  tone(8,Mi);
  delay(500);
  tone(8,So);
  delay(500);
  noTone(8);
}

void loop() {
  // put your main code here, to run repeatedly:
  if(digitalRead(2)==LOW) tone(8,So,100);///按下BUTTON=2被按下,則發出聲音
}

沿伸2
*Arduino+p語言*
按視窗會發出聲音
Arduino:
#define Do 523
#define Mi 659
#define So 784
void setup() {
  Serial.begin(9600);
  // put your setup code here, to run once:
  pinMode(2,INPUT_PULLUP);
  pinMode(8,OUTPUT);
  tone(8,Do);
  delay(500);
  tone(8,Mi);
  delay(500);
  tone(8,So);
  delay(500);
  noTone(8);
}

void loop() {
  // put your main code here, to run repeatedly:
  while(Serial.available()>0){///有資料可送!
      Serial.read();
      tone(8,Mi,100);
    }
}
P語言:
import processing.serial.*;
Serial myPort;
void setup(){
  size(200,200);
  myPort = new Serial(this,"COM3",9600);
}
void draw(){
  
}
void mousePressed(){
  myPort.write("1");
}
延伸3
按數字1.3.5發出不通聲音
Arduino:
#define Do 523
#define Mi 659
#define So 784
void setup() {
  Serial.begin(9600);
  // put your setup code here, to run once:
  pinMode(2,INPUT_PULLUP);
  pinMode(8,OUTPUT);
  tone(8,Do);
  delay(500);
  tone(8,Mi);
  delay(500);
  tone(8,So);
  delay(500);
  noTone(8);
}

void loop() {
  // put your main code here, to run repeatedly:
  while(Serial.available()>0){///有資料可送!
      int now=Serial.read();
      if(now=='1') tone(8,Do,100);
      if(now=='3') tone(8,Mi,100);
      if(now=='5') tone(8,So,100);
    }
}
P語言:
import processing.serial.*;
Serial myPort;
void setup(){
  size(200,200);
  myPort = new Serial(this,"COM3",9600);
}
void draw(){
  
}
void keyPressed(){
  if(key=='1') myPort.write("1");
  if(key=='3') myPort.write("3");
  if(key=='5') myPort.write("5");
}
void mousePressed(){
  myPort.write("1");
}
延伸4
小鋼琴
Arduion:
#define Do 523
#define Re 587
#define Mi 659
#define Fa 698
#define So 784
#define La 880
#define Ti 988
#define Do2 1047///高音Do
void setup() {
  Serial.begin(9600);
  // put your setup code here, to run once:
  pinMode(2,INPUT_PULLUP);
  pinMode(8,OUTPUT);
  tone(8,Do);
  delay(500);
  tone(8,Mi);
  delay(500);
  tone(8,So);
  delay(500);
  noTone(8);
}

void loop() {
  // put your main code here, to run repeatedly:
  while(Serial.available()>0){///有資料可送!
      int now=Serial.read();
      if(now=='1') tone(8,Do);
      if(now=='2') tone(8,Re);
      if(now=='3') tone(8,Mi);
      if(now=='4') tone(8,Fa);
      if(now=='5') tone(8,So);
      if(now=='6') tone(8,La);
      if(now=='7') tone(8,Ti);
      if(now=='8') tone(8,Do2);
      if(now=='0') noTone(8);
    }
}
P語言:
import processing.serial.*;
Serial myPort;
void setup(){
  size(200,200);
  myPort = new Serial(this,"COM3",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");
  if(key=='8') myPort.write("8");
}
void keyReleased(){
  myPort.write("0");///按鍵放開,聲音停下來
}
void mousePressed(){
  myPort.write("1");
}

沒有留言:

張貼留言