week 11互動技術
2019_11_21
------------------------------------------------------------------------
🔺 MakerUNO
-
先到老師的公開雲端下載驅動程式
-
照著老師的步驟\作
- 先到老師的公開雲端下載驅動程式
- 照著老師的步驟\作
⧭亮一顆燈 沒有聲音
◎程式碼↓
void setup() {
// put your setup code here, to run once:
pinMode(13,OUTPUT);
digitalWrite(13,HIGH);
}
void loop() {
// put your main code here, to run repeatedly:
}
void setup() {
// put your setup code here, to run once:
pinMode(13,OUTPUT);
digitalWrite(13,HIGH);
}
void loop() {
// put your main code here, to run repeatedly:
}
⧭恢復原廠的程式碼 有聲音(燈燈燈~燈燈燈)
◎程式碼↓
#define NOTE_C5 523
#define NOTE_E5 659
#define NOTE_G5 784
#define BUTTON 2
#define BUZZER 8
int melody[] = {
NOTE_E5, NOTE_E5, 0, NOTE_E5, 0, NOTE_C5, NOTE_E5, 0, NOTE_G5
};
int noteDurations[] = {
10, 10, 10, 10, 10, 10, 10, 10, 10
};
int pin;
int ledArrayHigh;
int ledArrayLow;
boolean mode = false;
boolean buttonPressed = false;
void setup()
{
delay(1000);
pinMode(BUTTON, INPUT_PULLUP);
for (pin = 3; pin < 14; pin++) {
pinMode(pin, OUTPUT);
}
for (int thisNote = 0; thisNote < 9; thisNote++) {
int noteDuration = 1000 / noteDurations[thisNote];
tone(BUZZER, melody[thisNote], noteDuration);
int pauseBetweenNotes = noteDuration * 1.30;
delay(pauseBetweenNotes);
noTone(BUZZER);
}
}
void loop()
{
for (pin = 0; pin < 5; pin++) {
if (digitalRead(BUTTON) == LOW &&
buttonPressed == false) {
buttonPressed = true;
mode = !mode;
pin = 0;
if (mode == false) {
tone(BUZZER, NOTE_C5, 100);
delay(100);
tone(BUZZER, NOTE_G5, 100);
delay(100);
noTone(BUZZER);
}
else if (mode == true) {
tone(BUZZER, NOTE_G5, 100);
delay(100);
tone(BUZZER, NOTE_C5, 100);
delay(100);
noTone(BUZZER);
}
}
if (mode == false) {
ledArrayHigh = 13 - pin;
ledArrayLow = 7 - pin;
}
else if (mode == true) {
ledArrayHigh = 9 + pin;
ledArrayLow = 3 + pin;
}
digitalWrite(ledArrayHigh, HIGH);
digitalWrite(ledArrayLow, HIGH);
delay(100);
digitalWrite(ledArrayHigh, LOW);
digitalWrite(ledArrayLow, LOW);
if (pin == 4) delay(100);
}
if (buttonPressed == true) {
buttonPressed = false;
}
}
| #define NOTE_C5 523 | |
| #define NOTE_E5 659 | |
| #define NOTE_G5 784 | |
| #define BUTTON 2 | |
| #define BUZZER 8 | |
| int melody[] = { | |
| NOTE_E5, NOTE_E5, 0, NOTE_E5, 0, NOTE_C5, NOTE_E5, 0, NOTE_G5 | |
| }; | |
| int noteDurations[] = { | |
| 10, 10, 10, 10, 10, 10, 10, 10, 10 | |
| }; | |
| int pin; | |
| int ledArrayHigh; | |
| int ledArrayLow; | |
| boolean mode = false; | |
| boolean buttonPressed = false; | |
| void setup() | |
| { | |
| delay(1000); | |
| pinMode(BUTTON, INPUT_PULLUP); | |
| for (pin = 3; pin < 14; pin++) { | |
| pinMode(pin, OUTPUT); | |
| } | |
| for (int thisNote = 0; thisNote < 9; thisNote++) { | |
| int noteDuration = 1000 / noteDurations[thisNote]; | |
| tone(BUZZER, melody[thisNote], noteDuration); | |
| int pauseBetweenNotes = noteDuration * 1.30; | |
| delay(pauseBetweenNotes); | |
| noTone(BUZZER); | |
| } | |
| } | |
| void loop() | |
| { | |
| for (pin = 0; pin < 5; pin++) { | |
| if (digitalRead(BUTTON) == LOW && | |
| buttonPressed == false) { | |
| buttonPressed = true; | |
| mode = !mode; | |
| pin = 0; | |
| if (mode == false) { | |
| tone(BUZZER, NOTE_C5, 100); | |
| delay(100); | |
| tone(BUZZER, NOTE_G5, 100); | |
| delay(100); | |
| noTone(BUZZER); | |
| } | |
| else if (mode == true) { | |
| tone(BUZZER, NOTE_G5, 100); | |
| delay(100); | |
| tone(BUZZER, NOTE_C5, 100); | |
| delay(100); | |
| noTone(BUZZER); | |
| } | |
| } | |
| if (mode == false) { | |
| ledArrayHigh = 13 - pin; | |
| ledArrayLow = 7 - pin; | |
| } | |
| else if (mode == true) { | |
| ledArrayHigh = 9 + pin; | |
| ledArrayLow = 3 + pin; | |
| } | |
| digitalWrite(ledArrayHigh, HIGH); | |
| digitalWrite(ledArrayLow, HIGH); | |
| delay(100); | |
| digitalWrite(ledArrayHigh, LOW); | |
| digitalWrite(ledArrayLow, LOW); | |
| if (pin == 4) delay(100); | |
| } | |
| if (buttonPressed == true) { | |
| buttonPressed = false; | |
| } | |
| } |
⧭按一下 全亮全暗
◎程式碼↓
void setup(){
for(int i=2;i<=13;i++)
pinMode(2,INPUT_PULLUP);
///digitalWrite(i,HIGH);
for(int i=3;i<13;i++){
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);
}
}
⧭小蜜蜂
◎程式碼↓
#define NOTE_C5 523 //DO
#define NOTE_D5 587 //RE
#define NOTE_E5 659 //ME
#define NOTE_F5 689 //FA
#define NOTE_G5 784 //SO
void setup(){
pinMode(8,OUTPUT);
}
void loop(){
tone(8,NOTE_G5,784);
delay(150);
tone(8,NOTE_E5,659);
delay(150);
tone(8,NOTE_E5,659);
delay(150);
tone(8,NOTE_F5,689);
delay(150);
tone(8,NOTE_D5,587);
delay(150);
tone(8,NOTE_D5,587);
delay(150);
tone(8,NOTE_C5,523);
delay(150);
tone(8,NOTE_D5,587);
delay(150);
tone(8,NOTE_E5,659);
delay(130);
tone(8,NOTE_F5,689);
delay(130);
tone(8,NOTE_G5,784);
delay(150);
tone(8,NOTE_G5,784);
delay(150);
tone(8,NOTE_G5,784);
delay(150);
}
⧭按一次重播
◎程式碼↓
#define NOTE_C5 523 //DO
#define NOTE_D5 587 //RE
#define NOTE_E5 659 //ME
#define NOTE_F5 689 //FA
#define NOTE_G5 784 //SO
void setup(){
pinMode(8,OUTPUT);
pinMode(2,INPUT_PULLUP);
}
bool bLightHIGH =true;
void loop(){
if(digitalRead(2)==HIGH){
bLightHIGH=true;
}
else{
tone(8,NOTE_G5,784);
delay(150);
tone(8,NOTE_E5,659);
delay(150);
tone(8,NOTE_E5,659);
delay(150);
tone(8,NOTE_F5,689);
delay(150);
tone(8,NOTE_D5,587);
delay(150);
tone(8,NOTE_D5,587);
delay(150);
tone(8,NOTE_C5,523);
delay(150);
tone(8,NOTE_D5,587);
delay(150);
tone(8,NOTE_E5,659);
delay(130);
tone(8,NOTE_F5,689);
delay(150);
tone(8,NOTE_G5,784);
delay(150);
tone(8,NOTE_G5,784);
delay(150);
tone(8,NOTE_G5,784);
delay(150);
}
}
⧭按數字1 2 3 4 5會有聲音
需要用Ardiuno 和 Processing
◎Ardiuno 程式碼↓
#define NOTE_C5 523 //DO
#define NOTE_D5 587 //RE
#define NOTE_E5 659 //ME
#define NOTE_F5 689 //FA
#define NOTE_G5 784 //SO
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);
}
}
◎Processing程式碼↓
import processing.serial.*;
Serial myPort;
void setup(){
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');
}
void setup(){
for(int i=2;i<=13;i++)
pinMode(2,INPUT_PULLUP);
///digitalWrite(i,HIGH);
for(int i=3;i<13;i++){
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);
}
}
⧭小蜜蜂
◎程式碼↓
#define NOTE_C5 523 //DO
#define NOTE_D5 587 //RE
#define NOTE_E5 659 //ME
#define NOTE_F5 689 //FA
#define NOTE_G5 784 //SO
void setup(){
pinMode(8,OUTPUT);
}
void loop(){
tone(8,NOTE_G5,784);
delay(150);
tone(8,NOTE_E5,659);
delay(150);
tone(8,NOTE_E5,659);
delay(150);
tone(8,NOTE_F5,689);
delay(150);
tone(8,NOTE_D5,587);
delay(150);
tone(8,NOTE_D5,587);
delay(150);
tone(8,NOTE_C5,523);
delay(150);
tone(8,NOTE_D5,587);
delay(150);
tone(8,NOTE_E5,659);
delay(130);
tone(8,NOTE_F5,689);
delay(130);
tone(8,NOTE_G5,784);
delay(150);
tone(8,NOTE_G5,784);
delay(150);
tone(8,NOTE_G5,784);
delay(150);
}
⧭按一次重播
◎程式碼↓
#define NOTE_C5 523 //DO
#define NOTE_D5 587 //RE
#define NOTE_E5 659 //ME
#define NOTE_F5 689 //FA
#define NOTE_G5 784 //SO
void setup(){
pinMode(8,OUTPUT);
pinMode(2,INPUT_PULLUP);
}
bool bLightHIGH =true;
void loop(){
if(digitalRead(2)==HIGH){
bLightHIGH=true;
}
else{
tone(8,NOTE_G5,784);
delay(150);
tone(8,NOTE_E5,659);
delay(150);
tone(8,NOTE_E5,659);
delay(150);
tone(8,NOTE_F5,689);
delay(150);
tone(8,NOTE_D5,587);
delay(150);
tone(8,NOTE_D5,587);
delay(150);
tone(8,NOTE_C5,523);
delay(150);
tone(8,NOTE_D5,587);
delay(150);
tone(8,NOTE_E5,659);
delay(130);
tone(8,NOTE_F5,689);
delay(150);
tone(8,NOTE_G5,784);
delay(150);
tone(8,NOTE_G5,784);
delay(150);
tone(8,NOTE_G5,784);
delay(150);
}
}
⧭按數字1 2 3 4 5會有聲音
需要用Ardiuno 和 Processing
◎Ardiuno 程式碼↓
#define NOTE_C5 523 //DO#define NOTE_D5 587 //RE
#define NOTE_E5 659 //ME
#define NOTE_F5 689 //FA
#define NOTE_G5 784 //SO
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);
}
}
◎Processing程式碼↓
import processing.serial.*;
Serial myPort;
void setup(){
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');
}
沒有留言:
張貼留言