今日進度:
1.把makeruno的開機調回來
2.按下開關會發音
3.makeruno連動processing
4.做小鋼琴
連動的程式碼⬇️
makeruno程式碼:
#include "pitches.h"
#define Do 523
#define Mi 659
#define So 784
void setup()
{
Serial.begin(9600);
pinMode(2, INPUT_PULLUP);//按鍵預設為開,通道為2
pinMode(8,OUTPUT);//揚聲器輸出聲音,通道為8
tone(8,Do);//Do的聲音
delay(1000);
tone(8,Mi);//Mi的聲音
delay(1000);
noTone(8);
}
void loop()
{
while(Serial.available()>0)
{
int now = Serial.read();
if(now=='1') tone(8, Do, 100);//如果讀到1發出Do 0.1秒
if(now=='3') tone(8, Mi, 100);//如果讀到3發出Mi 0.1秒
if(now=='5') tone(8, So, 100);//如果讀到5發出Mi 0.1秒
}
}
processing程式碼:
import processing.serial.*;
Serial myport;
void setup()
{
size(200,200);
myport = new Serial(this,"COM6", 9600);//USB孔為6
}
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");
}
⚠️注意事項:
記得只能擇一使用COM否則會出現錯誤
小鋼琴連動結果⬇️
makeruno程式碼:
#include "pitches.h"
#define Do 523
#define Re 587
#define Mi 659
#define Fa 698
#define So 784
#define La 880
#define Ti 988
void setup()
{
Serial.begin(9600);
pinMode(2, INPUT_PULLUP);
pinMode(8,OUTPUT);
tone(8,Do);
delay(1000);
tone(8,Mi);
delay(1000);
noTone(8);
}
void loop()
{
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=='0') noTone(8);
}
}
processing程式碼:
import processing.serial.*;
Serial myport;
void setup()
{
size(200,200);
myport = new Serial(this,"COM6", 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");
}
void keyReleased()
{
myport.write("0332421");
}
void mousePressed()
{
myport.write("1");
}
⚠️注意事項:
記得只能擇一使用COM否則會出現錯誤

沒有留言:
張貼留言