顯示具有 Arduino 標籤的文章。 顯示所有文章
顯示具有 Arduino 標籤的文章。 顯示所有文章

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月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);    //輸出
  }
}

2016年3月30日 星期三

Arduino 練習 - LED 閃爍模式



今天又重新學習Arduino, 學到的語言有
  1. setup() 設定程式參數
  2. loop() 迴圈
  3. void 沒有傳回值
  4. pinMode() 設定接腳模式  
  5. OUTPUT 輸出
  6. INPUT 輸入
  7. digitalWrite() 輸出數位訊號
  8. HIGH 高電位
  9. LOW 低電位
  10. delay() 延遲毫秒函數
  11. /*   */多行註解  //單行註解


以下為Arduino程式碼

/*
  內建LED燈閃爍練習
  Wildboy
  2016.03.30
 */


//  setup 功能只會執行一次
void setup() {
  // 將接腳編號設定為13
  pinMode(13, OUTPUT);
}

// loop 這個功能會一直無限執行
void loop() {
  digitalWrite(13, HIGH);   // LED亮 (HIGH 高電位 1 )
  delay(1000);              // 停留一秒鐘(1000ms)
  digitalWrite(13, LOW);    // LED滅 (HIGH 低電位 0 )
  delay(1000);              // 停留一秒鐘(1000ms)
}