2016年9月18日 星期日

呼吸燈(for)(analogWrite)(~3.5.6.9.10.11)


void setup() {
  pinMode(3, OUTPUT);
}
void loop() {
  for(int a=0;a<=255;a=a+5)
  {
  analogWrite(3, a);
  delay(25);
  }
  for(int b=255;b>=0;b=b-5)
  {
  analogWrite(3, b);
  delay(25);
  }                              
}

2016年9月9日 星期五

密度模擬實驗

Density Lab IPAD也OK






Turn Fluid into Water :把液體改為水
Randomize:隨機  
Reset:重設                  Mass:質量               Volume:體積

 Fluid Density 2.5g/ml :液體密度1毫升2.5 = 2.5  g/cm3 
    

Gold黃金
Lead
Foam泡沫
Ice
Iron
Wood
Rubber橡膠
?未知

2016年9月6日 星期二

hcsr04將距離變聲音

將之前HC-SR04結合PLX-DAQ的code做些修改,接上蜂鳴器將距離變換成聲音,再加個按鈕開關,否則真的很吵。


蜂鳴器接腳8與GND


// HCSR04Ultrasonic/examples/UltrasonicDemo/UltrasonicDemo.pde

#include

#define TRIGGER_PIN  12

#define ECHO_PIN     13

Ultrasonic ultrasonic(TRIGGER_PIN, ECHO_PIN);
void setup()
{
  Serial.begin(9600);
  Serial.println("CLEARDATA");
  Serial.println("LABEL,Time,Timer, D");
}

void loop()
{

 float cmMsec, inMsec;
 long microsec = ultrasonic.timing();

  cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM); // 計算距離,單位: 公分

 //inMsec = ultrasonic.convert(microsec, Ultrasonic::IN); // 計算距離,單位: 英吋
 // Serial.print("MS: ");
  Serial.print("DATA,TIME");
  Serial.print(",");
  Serial.print("TIMER");
  Serial.print(",");
  Serial.println(cmMsec);
  tone(8, cmMsec*40,500); //cmMsec*40音頻,時間500
 // Serial.print(microsec);

 // Serial.print(", CM: ");

 // Serial.println(cmMsec);

  //Serial.print(", IN: ");

 // Serial.println(inMsec);
delay(100);

}

2016年8月9日 星期二

Arduino Bluetooth Android control RGB LED





1  Arduino板

2 藍牙模塊HC-05

HC-05藍芽模組
Arduino Uno Pin
VCC
5V
GND
Gnd
TXD
0
RXD
1

3  RGB LED

    Red LED :Arduino Pin 3.  
    Green LEDArduino Pin 5.  
    Blue LEDArduino Pin 6  ( PWM ~ )



4 Code(下載)



        


     

2016年7月22日 星期五

mBlock與Arduino驅動程式

官方網站  http://www.mblock.cc/
下載mBlock

安裝驅動Arduino程式

安裝驅動Arduino程式
 
選擇控制板



Arduino 編輯


2016年7月7日 星期四

mBlock計分板



個位數的積木程式
十位數的積木程式
馬達的積木程式
led的積木程式
滾珠開關紅色線應該接在下一格(5 v)

2016年6月27日 星期一

空氣砲靶

滾珠開關與伺服馬達(第一代),哈哈可以去夜市擺遊戲攤

滾珠開關 (digital input)






// define the pin numbers names
int inputPin = 2;
int ledPin = 13;

void setup() {
// declare inputPin to be an input
pinMode(inputPin, INPUT);
pinMode(ledPin, OUTPUT);
}

void loop() {
if (digitalRead(inputPin) == HIGH) {
digitalWrite(ledPin, HIGH);//滾珠開關ON,led燈亮
}
else{digitalWrite(ledPin, LOW);}
}

2016年6月25日 星期六

Parking

超音波傳感器結合rgbled

下載程式碼

hc-sr04
    Vcc......5v         紅
    Gnd......GND    黑
    Trig......12         藍
    Echo.....13        綠
 led
    redled = 9
   greenled = 10 
   blueled = 11

2016年5月3日 星期二

HC-SR04結合PLX-DAQ/運動的分析

可以運用在加速度的實驗,講解x-t圖和v-t圖性質與兩者的關聯。
好不好用??????

記得要選擇與arduino相同的連接埠

1.首先下載PLX-DAQ
2.下載程式碼

// HCSR04Ultrasonic/examples/UltrasonicDemo/UltrasonicDemo.pde
#include
#define TRIGGER_PIN  12
#define ECHO_PIN     13

Ultrasonic ultrasonic(TRIGGER_PIN, ECHO_PIN);
void setup()
{
  Serial.begin(9600);

 Serial.println("CLEARDATA");  

 Serial.println("LABEL,Time,Timer,d");//標籤

}

void loop()
{
  float cmMsec, inMsec;
  long microsec = ultrasonic.timing();

  cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM); // 計算距離,單位: 公分
  inMsec = ultrasonic.convert(microsec, Ultrasonic::IN); // 計算距離,單位: 英吋

  Serial.print("DATA,TIME");
  Serial.print(",");
  Serial.print("TIMER");
  Serial.print(",");
  Serial.println(cmMsec);
  // Serial.print("MS: ");
  // Serial.print(microsec);
  // Serial.print(", CM: ");
  //Serial.print(cmMsec);
  // Serial.print(", IN: ");
  //Serial.println(inMsec);
  delay(100);

}

         





2016年5月2日 星期一

HC-SR04超音波測距模組

 下載函式庫


   下載解壓縮之後,資料夾放在arduino的資料夾libraries裡頭,再重新開啟arduino。
在檔案/範例裡頭有看到HCSR04Ultrasonic資料夾就表示成功了。



   
   Vcc......5v         紅
   Gnd......GND    黑
   Trig......12         藍
   Echo.....13        綠


    開啟UltrasonicDemo後上傳

/*
 * HCSR04Ultrasonic/examples/UltrasonicDemo/UltrasonicDemo.pde
 *
 * SVN Keywords
 * ----------------------------------
 * $Author: cnobile $
 * $Date: 2011-09-17 02:43:12 -0400 (Sat, 17 Sep 2011) $
 * $Revision: 29 $
 * ----------------------------------
 */

#include

#define TRIGGER_PIN  12
#define ECHO_PIN     13

Ultrasonic ultrasonic(TRIGGER_PIN, ECHO_PIN);

void setup()
  {
  Serial.begin(9600);
  }

void loop()
  {
  float cmMsec, inMsec;
  long microsec = ultrasonic.timing();

  cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM);
  inMsec = ultrasonic.convert(microsec, Ultrasonic::IN);
  Serial.print("MS: ");
  Serial.print(microsec);
  Serial.print(", CM: ");
  Serial.print(cmMsec);
  Serial.print(", IN: ");
  Serial.println(inMsec);
  delay(1000);//每一秒測量一次
  }
開啟工具/序列埠監控視窗
開啟工具/序列埠監控視窗

回傳時間/距離(cm)/距離(英吋)

2016年4月22日 星期五

ds18b20溫度感測器

詳細教學可參考阿簡生物筆記
利用防水的溫度感測計可進行有關熱量變化的實驗耶,會考後讓9年級玩玩。

下載函式庫

OneWire(https://goo.gl/DMRdxi)

Arduino-Temperature-Control-Library

解壓縮後分別放到Arduinosketchbook下的libraries目錄裡。

DS18B20
藍線或黃線接D2
紅線接5V
黑線或灰接GND
還要在紅線藍線之間再加一個4.7k的電阻








  // call sensors.requestTemperatures() to issue a global temperature 
  // request to all devices on the bus
 // Serial.print("Requesting temperatures...");不列出
  sensors.requestTemperatures(); // Send the command to get temperatures
  //Serial.println("DONE");
  // After we got the temperatures, we can print them here.
  // We use the function ByIndex, and as an example get the temperature from the first sensor only.
 // Serial.print("Temperature for the device 1 (index 0) is: ");
  Serial.println(sensors.getTempCByIndex(0));  

}

void setup(void)
{
  // start serial port
  Serial.begin(9600);
  //Serial.println("Dallas Temperature IC Control Library Demo");
  Serial.println("CLEARDATA");
  Serial.println("LABEL,Time,Timer,Temperature,val,");
  // Start up the library
  sensors.begin();
}
/*
 * Main function, get and show the temperature
 */
void loop(void)
{
  sensors.requestTemperatures(); // Send the command to get temperatures
  Serial.println(sensors.getTempCByIndex(0));
  Serial.print("DATA,TIME");
  Serial.print(",");
  Serial.print("TIMER");
  Serial.print(",");
  Serial.println(sensors.getTempCByIndex(0));
  delay(100);
}

ds18b20並聯8支(第9支就會出現負數)應該是極限
放進溫水中
將2支改放入熱水
抽離也可測氣溫
PLX-DAQ收集數據




2016年4月8日 星期五

Arduino/並聯photocell的應用


從數據的變化可計算平均速率與運動變化


Arduino/讀取光敏電阻數值

使用範例/01Basics/AnalogReadSerial

CODE

// the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
}

// the loop routine runs over and over again forever:
void loop() {
  // read the input on analog pin 0:

  int sensorValue = analogRead(A0);

  // print out the value you read:
  Serial.println(sensorValue);
  delay(1);        // delay in between reads for stability
}

數值會與亮度成正比
從序列埠間視窗可以看到數值的變化,也可從serial plotter繪出圖表,當然也能用PLX-DAQ匯出資料到excel。

CODE


int analogPin = 0;

int RED = 0;

void setup(){
  Serial.begin(9600);
  Serial.println("CLEARDATA");
  Serial.println("LABEL,Time,Timer,RED");
      
}
void loop(){
      RED = analogRead(analogPin);
     
  Serial.print("DATA,TIME"); 
  Serial.print(",");
  Serial.print("TIMER"); 
  Serial.print(",");
  Serial.print(RED);
  Serial.print(",");
     
       delay(100);
}



ReadAnalogvoltage/讀取電壓值電阻值


        手中的電阻到底幾歐姆,顏色代號背了就忘,也可以用Arduino來測量,順便解釋串聯電阻與電壓的關聯性。

首先使用範例



線路圖(已知電阻1000歐姆,X為未知)
黃色A0 ,黑色GND,紅色5V
量測電壓


測量電阻(串聯電壓與電阻成正比用來改變公式)

從序列埠監視窗就可以看到結果了





2016年4月7日 星期四

PLX-DAQ 收集和紀錄DATA

下載PLX-DAQ



紅字是將LM35得到的資料送進PLX-DAQ的關鍵參考簡大師
注意PORT的選擇要和Arduino的一樣

#define sensor A0     

int tempC=0;

void setup()                                      //  初始化

{

  Serial.begin(9600);

 Serial.println("CLEARDATA");

 Serial.println("LABEL,Time,Timer,Temperature");

}

void loop()

{               

      tempC = analogRead(sensor);           //read the value from the sensor

      tempC = (5.0 * tempC * 100.0)/1024.0;  //convert the analog data to temperature

                         // 讀取溫度並顯示

   Serial.print("DATA,TIME"); 

   Serial.print(",");

  Serial.print("TIMER"); 

  Serial.print(",");

  Serial.println((byte)tempC);

       

      delay(1000);                                         // 休息 1 秒

}





LM35溫度探測與變色燈


程式碼在這