alanhc 互動技術-week11

alanhc 互動技術-week11

November 21, 2019

Hello MAKER UNO!

寫腳: digitalWrite(pin, 輸出);
pin:要寫的腳位
輸出:HIGH, LOW

void setup() {
  pinMode(13, OUTPUT);
  digitalWrite(13,HIGH);
}

void loop() { 
}

LED輪流亮
void setup() {
  for (int i=2; i<=13; i++) {
    pinMode(i, OUTPUT);
  }
  digitalWrite(13,0);
}
int digit[] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0};
int i=0;
void loop() {
  for (int i=2; i<=13; i++) {
    digitalWrite(i,digit[i]);
    delay(100);
    if (digit[i]==0) digit[i]=1;
    else digit[i]=0;
   
  }
}
加分:小蜜蜂


int sheet[]={0,261,294,329,349,392,440,493,523};


#define BUTTON 2
#define BUZZER 8

int melody[] = {
  5,3,3,0,4,2,2,0,1,2,3,4,5,5,5,0
};

int noteDurations[] = {
  10, 10, 10, 10, 10, 10, 10, 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 < 16; thisNote++) {
    int noteDuration = 1000 / noteDurations[thisNote];
    tone(BUZZER, sheet[melody[thisNote]], noteDuration);
    int pauseBetweenNotes = noteDuration * 1.30;
    delay(pauseBetweenNotes);
    noTone(BUZZER);
  }
}

按鈕~

pinMode(pin, 模式);
模式:
pullup 預設要拉高
再使用 digitalRead(2) 讀取數值


digitalRead(2)

void setup() {
  for (int i=3; i<=13; i++) {
    pinMode(i, OUTPUT);
    digitalWrite(i, HIGH);
  }
  pinMode(2, INPUT_PULLUP);

}
bool sw=false;
void loop() {
  if (digitalRead(2)==HIGH) sw=HIGH;
  else sw=LOW;
 
  for (int i=3; i<=13; i++) {
 
    digitalWrite(i, sw);
  }
}

寫Serial

Arduino



int f[]={0,261,294,329,349,392,440,493,523};


void setup() {

  pinMode(8,OUTPUT);
  Serial.begin(9600);
}

void loop() {
  if (Serial.available()) {
    char now = Serial.read();
    Serial.println(now);
    if (now=='1') tone(8,f[1], 300);
    if (now=='2') tone(8,f[2], 300);
    if (now=='3') tone(8,f[3], 300);
    if (now=='4') tone(8,f[4], 300);
    if (now=='5') tone(8,f[5], 300);
   
  }
 
}

Processing

先匯入 
import processing.serial.*;
宣告
Serial myPort;
指定port
myPort = new Serial(this, "/dev/cu.usbserial-14220",9600); 
寫入
myPort.write(key);
完整Code

import processing.serial.*;
Serial myPort;
void setup()
{
  printArray(Serial.list());
  myPort = new Serial(this, "/dev/cu.usbserial-14220",9600); 
}
void draw()
{
 
}
void keyPressed()
{
    myPort.write(key);
}