2019年4月30日 星期二

MT7697拍手兩次 關滅燈(改編)


聲音感測模組測試可以到

http://yhhuang1966.blogspot.com/2017/10/arduino.html


以下是我改編過的拍手兩次..原版似乎不太準(Using Arduino IDE)
請在自行修正參數

#define micPin A0
#define ledPin 2
boolean ledState = false; //紀錄 LED 狀態,預設為打開
int micVal;  //紀錄偵測到的音量

long current = 0; //紀錄目前過門檻時戳
long last = 0; //紀錄上次過門檻時戳
long diff = 0; //紀錄前後兩次時間差
int count = 0; //紀錄已偵測到的次數

void setup() {
  pinMode(ledPin, OUTPUT);
  Serial.begin(115200);
}
void loop() {
  if (analogRead(micPin) > 2000) {  //若超過門檻值
    delay(50);
    if (analogRead(micPin) > 2000 ) {
      Serial.println(analogRead(micPin));
      current = millis(); //紀錄目前時戳
      count++;  //次數
    }
    if (analogRead(micPin) > 2000 && count >= 2) {  //若次數已達 2 次
      diff = current - last; //計算前後兩次時間差
      Serial.println("disdance="+String(diff));
      if (diff > 300 && diff < 1500) {
         Serial.println("change");
        ledState = !ledState;
        count = 0;
      } else {
        count = 1; //太久或太慢
      }    
    }
    last = current; //以目前時戳更新上次時戳
    if (ledState) {
      digitalWrite(ledPin, HIGH);
    }else {
      digitalWrite(ledPin, LOW);
    }
  }

  delay(50);
}

2019年4月2日 星期二

RGB LED 不會亮/顏色總是混合到..

因為還有作業 不打很多了.. 最近摸了RGB LED,課堂上參考葉難的教學
http://yehnan.blogspot.com/2013/01/arduinorgb-led.html

一開始不會亮喔,我試了很久,怕接反會燒掉,後來還是試了,的確要把它給接反(最長那根改通電3.3V) 但雖然可以亮,我要馬還是亮錯顏色,且顏色會和在一起,這個問題該不會是燈泡壞了吧 = =

後來看到這句話
RGB LED有四支腳,我買的是共陰極,其中最長的腳要接地,其他三支腳分別控制R、G、B色彩。

看來搜尋看看共陽極好了! 我找到這個MT7697搭配blocklyduino的教學 
https://docs.labs.mediatek.com/linkit-7697-blocklyduino/a04-rgb-led-12879766.html
腳位1 的接到 3.3V 的電源, 腳位 2 / 3 / 4 接到數位輸出腳位

確定我的是共陽極了! 它很特別,你通電給他(high)它才不會亮
所以,不會亮把它改成此教學的範例即可。


因此,共陽極要改變顏色的輸出變化,也是要用255減掉(改自葉難教學)

#define LEDR 15
#define LEDG 16
#define LEDB 17

void setup() {
  pinMode(LEDR, OUTPUT);
  pinMode(LEDG, OUTPUT);
  pinMode(LEDB, OUTPUT);
  RGB_Led(0,0,0); //turnOff
}

void RGB_Led(int r, int g, int b) {
  analogWrite(LEDR, 255 - r);
  analogWrite(LEDG, 255 - g);
  analogWrite(LEDB, 255 - b);
}

// 每隔一秒改變LED的顏色,紅、綠、藍
void loop() {

  RGB_Led(0,0,0); //turnOff
  RGB_Led(255,0,0); //Red
  delay(1000);

  RGB_Led(0,0,0); //turnOff
  RGB_Led(0,255,0); //Green
  delay(1000);

  RGB_Led(0,0,0); //turnOff
  RGB_Led(0,0,255); //Blue
  delay(1000);
}

希望有幫助到大家,有問題歡迎留言喔

docker-mac Desktop清除容器log

 最近Docker遇到這個問題 Error grabbing logs: invalid character '{' looking for beginning of object key string. 建議的解法是刪除整個log檔,大家可以參考以下教學 htt...