2017年4月10日 星期一

Arduino練習 - 麥克風訊號測試


int Led = 13;
int buttonpin = 3;

int val;

void setup() {
 pinMode(Led, OUTPUT);
 pinMode(buttonpin, INPUT);

}

void loop() {
  val = digitalRead(buttonpin);

  if(val==HIGH){
    digitalWrite(Led,HIGH);
  }
  else {
   digitalWrite(Led,LOW);

}
}

-------------------------------------------------
書上寫的範例跟自己拿到的元件不一樣

所以是在網路上搜尋到麥克風模組的測試程式。

2017年4月9日 星期日

Arduino練習 - 光敏電阻製作小夜燈



const byte LED = 13;
const byte Cds = A0;

void setup() {
  pinMode(LED, OUTPUT) ;
Serial.begin(9600);
}

void loop() {
  int val;

  val = analogRead(A0);
  Serial.println(val);
 delay(500);
  if(val>=1000) {
    digitalWrite(13, HIGH) ;
  } else {
    digitalWrite(13, LOW) ;
  }    
  }

--------------------------------
今天的實驗跟書本裡面提供的參數值不一樣

原因是所使用的光敏電阻或者電組不同, 亦或是電線拉太常導致電阻值過大

於是我使用上一章節學到的序列阜通信指令查看val的值

並將val>=700 調成1000

於是可以使用了

2016年4月18日 星期一

Arduino 練習 - LED跑馬燈



要做這個專題,花費了一些時間
首先是沒有適合的電阻,然後也要換算LED的需要多少歐姆的電阻才能運作
昨天特別跑到電子材料行買330歐姆的點組六個3塊錢
然後回來試了以後還是沒有亮
觀看指導圖後才發現沒有牽一條地線形成迴路。
接好之後終於成功亮了一輪,隨即又不跑動~~~
於是猜測是其中一個LED燈因為外型的正負極標誌跟實際是相反的。
於是換了一顆紅色的LED燈再測試,才真正成功。

以下為程式碼,還未運用陣列的方式撰寫,所以有些冗長。


const byte LED1 = 8;
const byte LED2 = 9;
const byte LED3 = 10;
const byte LED4 = 11;
const byte LED5 = 12;

void setup() {
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);
  pinMode(LED3, OUTPUT);
  pinMode(LED4, OUTPUT);
  pinMode(LED5, OUTPUT);
}

void loop() {
  digitalWrite(LED1, HIGH);
  digitalWrite(LED2, LOW);
  digitalWrite(LED3, LOW);
  digitalWrite(LED4, LOW);
  digitalWrite(LED5, LOW);
  delay(100);
  digitalWrite(LED1, LOW);
  digitalWrite(LED2, HIGH);
  digitalWrite(LED3, LOW);
  digitalWrite(LED4, LOW);
  digitalWrite(LED5, LOW);
  delay(100);
  digitalWrite(LED1, LOW);
  digitalWrite(LED2, LOW);
  digitalWrite(LED3, HIGH);
  digitalWrite(LED4, LOW);
  digitalWrite(LED5, LOW);
  delay(100);
  digitalWrite(LED1, LOW);
  digitalWrite(LED2, LOW);
  digitalWrite(LED3, LOW);
  digitalWrite(LED4, HIGH);
  digitalWrite(LED5, LOW);
  delay(100);
  digitalWrite(LED1, LOW);
  digitalWrite(LED2, LOW);
  digitalWrite(LED3, LOW);
  digitalWrite(LED4, LOW);
  digitalWrite(LED5, HIGH);
  delay(100);
  
}

2016年4月13日 星期三

書房裝潢(5)- 封板

電鑽加裝木工自由錐





應該要用這種規格的杯燈嗎?


圓穴切割完畢


封板完工圖


封板完工圖


封板完工圖

半成品,等冷氣裝好在後加工



2016年4月10日 星期日

書房裝潢(4)- 天花板骨架

先將角材釘成日字形,再釘上牆壁。


牆壁四周都要制作。


完工,現在要做比較麻煩的支撐架。


三角函數早已忘光!!好在還有手機APP可以幫忙換算!!



這一個長度只是取個大概,因為頭腦已經打結,懶得精算了!


完工,接下來是先貼隔音棉,然後在上細酸鈣板~~天花板也是蠻耗腦的~~

2016年4月5日 星期二

書房裝潢(3) - 門上部工程

作天花板以前,必須把門上的部分處理掉。
需要多個工作步驟
  1. 釘鋼板支架
  2. 填入吸音棉
  3. 裁矽酸鈣板
  4. 裁吸音板
最後一個流程花最多時間,因為板材沒有剛剛好。所以要像拼貼依樣。裁成好幾小塊拼上。
因為單純用頭腦構想有點複雜,所以臨時還用電腦繪圖軟體模擬拼湊。

這是內部門上方。


這是外部門上方。

2016年4月1日 星期五

Arduino 練習 - LED 開關模式


  1. const 指令 不變的常數
  2. digitalRead() 讀取數位訊號
  3. boolean 佈林值
  4. != 如果不相等則成立
  5. ! 反相
  6. click 次數


原始碼

const byte LED = 13;    // LED接數位第 13 腳
const byte SW = 2;      // 開關接數位第 2 腳
boolean lastState = LOW; //記錄上次開關狀態,預設為低電位
boolean toggle = LOW; //輸出給 LED 的訊號,預設為低電位
byte click = 0;       //開關訊號的改變次數,預設為 0

//以上五行都是設定代數

void setup() {
  pinMode(LED, OUTPUT); // LED接腳設定為輸出
  pinMode(SW, INPUT);   // 開關接腳設定為輸入
  lastState = digitalRead(SW);  //讀取開關的初始值
}

//以上先設定與讀取剛開始的狀態,開關、LED、之間的關係。

void loop() {
  boolean b1 = digitalRead(SW); // 設定1個B1的代數讀取開關的數值
  if (b1 != lastState) {                      //如果和之前預設的低電位開關值不同
    delay(20);    // 就等待20毫秒
  boolean b2 = digitalRead(SW); // 再讀取一次開關的數值

  if (b1 == b2) {  //兩個相等則成立
    lastState = b1;
    click ++;            //增加訊號變畫次數
  }
}
   if (click == 2) {
    click = 0; //
    toggle = !toggle;  // 取相反值
    digitalWrite(LED, toggle);    //輸出
  }
}