2012年11月30日 星期五

Week12, HW10

1.1 全開全關(來回),使用旋鈕調整速度


int sensorPin = A0;
int ledPin;
int sensorValue = 0;

void setup() {
  for(ledPin=7;ledPin<=13;ledPin++)
    pinMode(ledPin, OUTPUT);
}

void loop() {
  sensorValue = analogRead(sensorPin);
  for(ledPin=7;ledPin<=13;ledPin++){
    digitalWrite(ledPin, HIGH);
    delay(sensorValue);
  }
  for(ledPin=7;ledPin<=13;ledPin++){
    digitalWrite(ledPin, LOW);
    delay(sensorValue);
  }
  for(ledPin=13;ledPin>=7;ledPin--){
    digitalWrite(ledPin, HIGH);
    delay(sensorValue);
  }  
  for(ledPin=13;ledPin>=7;ledPin--){
    digitalWrite(ledPin, LOW);
    delay(sensorValue);
  }
}

1.2 單顆開關(來回),使用旋鈕調整速度


int sensorPin = A0;
int ledPin;
int sensorValue = 0;

void setup() {
  for(ledPin=7;ledPin<=13;ledPin++)
    pinMode(ledPin, OUTPUT);
}

void loop() {
  sensorValue = analogRead(sensorPin);
  for(ledPin=7;ledPin<=13;ledPin++){
    digitalWrite(ledPin, HIGH);
    delay(sensorValue);
    digitalWrite(ledPin, LOW);
    delay(sensorValue);
  }
  for(ledPin=12;ledPin>=8;ledPin--){
    digitalWrite(ledPin, HIGH);
    delay(sensorValue);
    digitalWrite(ledPin, LOW);
    delay(sensorValue);
  }  
}

1.3 多顆開關(來回) ,使用旋鈕調整速度


int sensorPin = A0;
int ledPin;
int sensorValue = 0;

void setup() {
  for(ledPin=7;ledPin<=13;ledPin++)
    pinMode(ledPin, OUTPUT);
}

void loop() {
  sensorValue = analogRead(sensorPin);
  for(ledPin=7;ledPin<=11;ledPin++){
    digitalWrite(ledPin, HIGH);
    digitalWrite(ledPin+1, HIGH);
    digitalWrite(ledPin+2, HIGH);
    delay(sensorValue);
    digitalWrite(ledPin, LOW);
    digitalWrite(ledPin+1, LOW);
    digitalWrite(ledPin+2, LOW);
    delay(sensorValue);
  }
  for(ledPin=12;ledPin>=10;ledPin--){
    digitalWrite(ledPin, HIGH);
    digitalWrite(ledPin-1, HIGH);
    digitalWrite(ledPin-2, HIGH);
    delay(sensorValue);
    digitalWrite(ledPin, LOW);
    digitalWrite(ledPin-1, LOW);
    digitalWrite(ledPin-2, LOW);
    delay(sensorValue);
  }
}

1.4 使用旋鈕開關(單顆)


int sensorPin = A0;
int ledPin;
int sensorValue = 0;
float width=1023/6;

void setup() {
  for(ledPin=7;ledPin<=13;ledPin++)
    pinMode(ledPin, OUTPUT);
}

void loop() {
  sensorValue = analogRead(sensorPin);
  ledPin=sensorValue/width+7;
  digitalWrite(ledPin-1, LOW);
  if(ledPin<13) digitalWrite(ledPin+1, LOW);
  digitalWrite(ledPin, HIGH);
}



2012年11月28日 星期三

Week11,HW09


1.有了Processing+Arduino,可以做些什麼?

看了YOUYTUBE上許多的影片,我想只要關於"互動"藉由搖桿或按鈕等控制工具都應該可以做出許多多媒體互動遊戲等功能。

2.找Arduino應用影片

2012年11月27日 星期二

Week12,HW10


01.將霹靂燈錄影上傳到youtube,再貼回部落格

掃描霹靂燈左右累積







//由右至左單顆累積
if(s==13){
for(int y=0;y<14;y++){
digitalWrite(y+7,HIGH);
digitalWrite(y+1,LOW);
delay(sensorValue);
}


//由左至右單顆累積
if(s==13){
for(int t=14;t>0;t--){
digitalWrite(t-1,HIGH);
digitalWrite(t+5,LOW);
delay(sensorValue);
}



02.發揮你的創意做出最特別的霹靂燈






依照程式的排序是 

由 右至左單顆        → 左至右單顆
→ 右至左隔兩顆     → 左至右隔兩顆
→ 右至左單顆累積  → 左至右單顆累積
→ 由外而內單顆     → 由內而外單顆
→ 由外而內累積     → 由外而內暗燈

03.貼上程式碼

//由左至右單顆亮
if(s==13){
for(int q=13;q>5;q--){
digitalWrite(q,HIGH);
digitalWrite(q+1,LOW);
delay(sensorValue);
}
}

//由右至左隔兩顆亮
if(s==13){
for(int x=0;x<14;x+=2){
digitalWrite(5+x,HIGH);
digitalWrite(5+x-2,LOW); //關掉上一個
delay(sensorValue);
}
}

//由左至右隔兩顆亮
if(s==13){
for(int r=14;r>4;r-=2){
digitalWrite(r,HIGH);
digitalWrite(r+2,LOW); //關掉上一個
delay(sensorValue);
}
}

//由右至左單顆累積
if(s==13){
for(int y=0;y<14;y++){
digitalWrite(y+7,HIGH);
digitalWrite(y+1,LOW);
delay(sensorValue);
}
} 

//由左至右單顆累積
if(s==13){
for(int t=14;t>0;t--){
digitalWrite(t-1,HIGH);
digitalWrite(t+5,LOW);
delay(sensorValue);
}
} 

//由外而內+由內而外
if(s==13){
for(int z=14,c=0;z>0,c<14;z--,c++){
digitalWrite(z-1,HIGH);
digitalWrite(c+7,HIGH);
digitalWrite(z,LOW);
digitalWrite(c+6,LOW);
delay(sensorValue);
}
} 
//由外而內+由內而外累積
if(s==13){
for(int z=14,c=0;z>0,c<14;z--,c++){
digitalWrite(z-1,HIGH);
digitalWrite(c+7,HIGH);
digitalWrite(z+5,LOW);
digitalWrite(c+1,LOW);
delay(sensorValue);
}
} 

//全亮
if(s==13){
for(int x=7;x<14;x++){
digitalWrite(x,HIGH);
digitalWrite(x+1,HIGH);
digitalWrite(x+2,HIGH);
digitalWrite(x+3,HIGH);
digitalWrite(x+4,HIGH);
digitalWrite(x+5,HIGH);
digitalWrite(x+6,HIGH); 
delay(sensorValue/5);
}
}

//全暗
if(s==13){
for(int x=7;x<14;x++){
digitalWrite(x,LOW);
digitalWrite(x+1,LOW);
digitalWrite(x+2,LOW);
digitalWrite(x+3,LOW);
digitalWrite(x+4,LOW);
digitalWrite(x+5,LOW);
digitalWrite(x+6,LOW);
delay(sensorValue/5);
}
}
if(s==13){
for(int x=7;x<14;x++){
digitalWrite(x,HIGH);
digitalWrite(x+1,HIGH);
digitalWrite(x+2,HIGH);
digitalWrite(x+3,HIGH);
digitalWrite(x+4,HIGH);
digitalWrite(x+5,HIGH);
digitalWrite(x+6,HIGH); 
delay(sensorValue/5);
}
} 

if(s==13){
for(int x=7;x<14;x++){
digitalWrite(x,LOW);
digitalWrite(x+1,LOW);
digitalWrite(x+2,LOW);
digitalWrite(x+3,LOW);
digitalWrite(x+4,LOW);
digitalWrite(x+5,LOW);
digitalWrite(x+6,LOW);
delay(sensorValue/5);
}
}


4、本周上課心得

這堂課讓我們接上了LED燈泡,讓我們興奮不已
開始用程式以及旋轉扭利用arduino電路板接縣與我們互動
在一開始上課頻頻卡關的我們,讓我們在課堂中有一些疑惑
因為程式碼跟輸出的東西,跟我們想要出來的東西都不相同
LED一直沒有亮,或者是只亮一顆
在一開始的霹靂燈掃描版本我們就研究了有一段時間
後來下課前由同桌組員們(蕭靖芸、黃慶華)的小提醒
讓我們的程式順利達成第一項由右至左單顆亮的目標
我們利用for迴圈來寫每一之腳所代表的LED
至於一開始卡住的問題,我們後來發現是因為
我們讓每一個LED亮(HIGH),同時也把它變成暗(LOW)
所以我們要控制HIGH 和LOW 不要在同一顆做反應
他就會有順序上的亮和暗的差別,這是我們在做也中學到的事情

Week 12 , HW10

1. Ardunio 影片




2.Ardunio 程式碼

/*
  Analog Input
 Demonstrates analog input by reading an analog sensor on analog pin 0 and
 turning on and off a light emitting diode(LED)  connected to digital pin 13.
 The amount of time the LED will be on and off depends on
 the value obtained by analogRead().

 The circuit:
 * Potentiometer attached to analog input 0
 * center pin of the potentiometer to the analog pin
 * one side pin (either one) to ground
 * the other side pin to +5V
 * LED anode (long leg) attached to digital output 13
 * LED cathode (short leg) attached to ground

 * Note: because most Arduinos have a built-in LED attached
 to pin 13 on the board, the LED is optional.


 Created by David Cuartielles
 modified 30 Aug 2011
 By Tom Igoe

 This example code is in the public domain.

 http://arduino.cc/en/Tutorial/AnalogInput

 */
int sensorPin = A0;    // select the input pin for the potentiometer
int ledPin = 13;      // select the pin for the LED
int sensorValue = 0;  // variable to store the value coming from the sensor
void setup() {
  // declare the ledPin as an OUTPUT:
  Serial.begin(9600);
    pinMode(13, OUTPUT);
    pinMode(12, OUTPUT);
    pinMode(11, OUTPUT);
    pinMode(10, OUTPUT);
    pinMode(9, OUTPUT);
    pinMode(8, OUTPUT);
    pinMode(7, OUTPUT);
 
   
}
void loop() {
  // read the value from the sensor:
  sensorValue = analogRead(sensorPin);
  Serial.println(sensorValue); 
  // turn the ledPin on
    digitalWrite(13, HIGH);
    digitalWrite(12, HIGH);
    digitalWrite(11, HIGH);
    digitalWrite(10, HIGH);
    digitalWrite(9, HIGH);
    digitalWrite(8, HIGH);
    digitalWrite(7, HIGH);
    delay(sensorValue);

    digitalWrite(13, LOW);
    digitalWrite(12, LOW);
    digitalWrite(11, LOW);
    digitalWrite(10, LOW);
    digitalWrite(9, LOW);
    digitalWrite(8, LOW);
    digitalWrite(7, LOW);
    delay(sensorValue);
 
  // stop the program for <sensorValue> milliseconds:
 // delay(sensorValue);         
  // turn the ledPin off:       
 // digitalWrite(ledPin, LOW);  
  // stop the program for for <sensorValue> milliseconds:
 // delay(sensorValue);                 
}

心得:
當時在試驗旋鈕調LED燈的閃爍速度時,一開始都旋轉快,一下子就扭到底發現他就會故障,試了幾次都會這樣,當時還一直搞不懂! 後來詢問同學才知道,原來旋鈕轉到極限,會使整個線路"爆掉",所以在旋轉時只要旋轉小小的角度就可以達到我們影片中,路出來的效果囉!!

Week12,HW10

互動技術 ARDUINO 1127 練習

練習一燈泡循序漸進


練習二燈泡不按照規律亮燈



自由發揮創意
燈泡排成 菱形





練習三 程式碼:
int sensorPin = A0;    // select the input pin for the potentiometer
int ledPin = 13;      // select the pin for the LED
int sensorValue = 0;  // variable to store the value coming from the sensor

void setup() {
  // declare the ledPin as an OUTPUT:
  pinMode(13, OUTPUT); 
  pinMode(12, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(6, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  // read the value from the sensor:
  sensorValue = analogRead(sensorPin); 
  Serial.println(sensorValue);  
  // turn the ledPin on  
  digitalWrite(6, HIGH); 
  delay(sensorValue); 
  digitalWrite(7, HIGH);
  delay(sensorValue); 
  digitalWrite(8, HIGH);
  delay(sensorValue);   
  digitalWrite(9, HIGH);
  delay(sensorValue);  
  digitalWrite(10,HIGH);
  delay(sensorValue); 
  digitalWrite(11, HIGH);
  delay(sensorValue);   
  digitalWrite(12,HIGH);
  delay(sensorValue);  
  digitalWrite(13, HIGH);    
  delay(sensorValue); 
    
  digitalWrite(6, LOW); 
  delay(sensorValue); 
  digitalWrite(7, LOW);
  delay(sensorValue); 
  digitalWrite(8, LOW);
  delay(sensorValue);   
  digitalWrite(9, LOW);
  delay(sensorValue);  
  digitalWrite(10, LOW);
  delay(sensorValue); 
  digitalWrite(11, LOW);
  delay(sensorValue);   
  digitalWrite(12, LOW);
  delay(sensorValue);  
  digitalWrite(13, LOW);    
  delay(sensorValue);   
  
  digitalWrite(13, HIGH);
  digitalWrite(12, HIGH); 
  digitalWrite(11, HIGH); 
  digitalWrite(10, HIGH);
  delay(sensorValue);
  digitalWrite(9, HIGH);
  digitalWrite(8, HIGH);
  digitalWrite(7, HIGH);
  digitalWrite(6, HIGH);
  delay(sensorValue);
  digitalWrite(6, HIGH);
  digitalWrite(7, HIGH); 
  digitalWrite(8, HIGH); 
  digitalWrite(9, HIGH);
  delay(sensorValue);
  digitalWrite(10, HIGH);
  digitalWrite(11, HIGH);
  digitalWrite(12, HIGH);
  digitalWrite(13, HIGH);
  delay(sensorValue);    
  // stop the program for <sensorValue> milliseconds:
  delay(sensorValue);          
  // turn the ledPin off:         
  
  digitalWrite(13, LOW); 
  delay(sensorValue); 
  digitalWrite(12, LOW);
  delay(sensorValue); 
  digitalWrite(11, LOW);
  delay(sensorValue);   
  digitalWrite(10, LOW);
  delay(sensorValue);  
  digitalWrite(9, LOW);
  delay(sensorValue); 
  digitalWrite(8, LOW);
  delay(sensorValue);   
  digitalWrite(7, LOW);
  delay(sensorValue);  
  digitalWrite(6, LOW);  
  delay(sensorValue);  
}

week12,HW10

int sensorPin = A0;    // select the input pin for the potentiometer
int ledPin = 13;      // select the pin for the LED
int sensorValue = 0;  // variable to store the value coming from the sensor
void setup() {
  Serial.begin(9600);
  pinMode(13, OUTPUT);
  pinMode(12, OUTPUT); 
  pinMode(11, OUTPUT); 
  pinMode(10, OUTPUT); 
  pinMode(9, OUTPUT); 
  pinMode(8, OUTPUT);
  pinMode(7, OUTPUT);   
}
void loop() {
  sensorValue = analogRead(sensorPin); 
  Serial.println(sensorValue); 
 
  for (int i=13; i>=7; i--) {
    digitalWrite(i, HIGH);
    delay(sensorValue/10);
  }
   for (int i=13; i>=7; i--) {
    digitalWrite(i, LOW);
    delay(sensorValue/10);
  }
//  digitalWrite(13, HIGH);
//  delay(100);
//  digitalWrite(12, HIGH);
//  delay(100);
//  digitalWrite(11, HIGH);
//  delay(100); 
//  digitalWrite(10, HIGH);
//  delay(100); 
//  digitalWrite(9, HIGH);
//  delay(100);
//  digitalWrite(8, HIGH);
//  delay(100);
//  digitalWrite(7, HIGH); 
}

WEEK12, HW10,





利用可變電阻 控制燈泡亮的速度

程式碼
/*
  Analog Input
 Demonstrates analog input by reading an analog sensor on analog pin 0 and
 turning on and off a light emitting diode(LED)  connected to digital pin 13.
 The amount of time the LED will be on and off depends on
 the value obtained by analogRead().

 The circuit:
 * Potentiometer attached to analog input 0
 * center pin of the potentiometer to the analog pin
 * one side pin (either one) to ground
 * the other side pin to +5V
 * LED anode (long leg) attached to digital output 13
 * LED cathode (short leg) attached to ground

 * Note: because most Arduinos have a built-in LED attached
 to pin 13 on the board, the LED is optional.


 Created by David Cuartielles
 modified 30 Aug 2011
 By Tom Igoe

 This example code is in the public domain.

 http://arduino.cc/en/Tutorial/AnalogInput

 */
int sensorPin = A0;    // select the input pin for the potentiometer
int ledPin = 13;      // select the pin for the LED
int sensorValue = 0;  // variable to store the value coming from the sensor
void setup() {
  // declare the ledPin as an OUTPUT:
  Serial.begin(9600);
  pinMode(13, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(7, OUTPUT);
 
 
}
void loop() {
  // read the value from the sensor:
  sensorValue = analogRead(sensorPin);
  //Serial.println(sensorValue);
  // turn the ledPin on
  digitalWrite(13, HIGH); 
  delay(sensorValue);
  digitalWrite(12, HIGH);
delay(sensorValue); 
  digitalWrite(11, HIGH);
delay(sensorValue); 
  digitalWrite(10, HIGH);
 delay(sensorValue);
  digitalWrite(9, HIGH); 
  delay(sensorValue);
  digitalWrite(8, HIGH);
  delay(sensorValue);
  digitalWrite(7, HIGH);
 
 
  // stop the program for <sensorValue> milliseconds:
  delay(sensorValue);         
   //turn the ledPin off:       
  digitalWrite(13, LOW);
 delay(sensorValue);
  digitalWrite(12, LOW);
  delay(sensorValue);
  digitalWrite(11, LOW);
  delay(sensorValue);
  digitalWrite(10, LOW);
  delay(sensorValue);
  digitalWrite(9, LOW);
  delay(sensorValue);
  digitalWrite(8, LOW);
  delay(sensorValue);
  digitalWrite(7, LOW);
  // stop the program for for <sensorValue> milliseconds:
  delay(sensorValue);   
  // read the value from the sensor:
  sensorValue = analogRead(sensorPin);
  //Serial.println(sensorValue);
  // turn the ledPin on
  digitalWrite(7, HIGH); 
  delay(sensorValue);
  digitalWrite(8, HIGH);
delay(sensorValue); 
  digitalWrite(9, HIGH);
delay(sensorValue); 
  digitalWrite(10, HIGH);
 delay(sensorValue);
  digitalWrite(11, HIGH); 
  delay(sensorValue);
  digitalWrite(12, HIGH);
  delay(sensorValue);
  digitalWrite(13, HIGH);
 
 
  // stop the program for <sensorValue> milliseconds:
  delay(sensorValue);         
   //turn the ledPin off:       
  digitalWrite(7, LOW);
 delay(sensorValue);
  digitalWrite(8, LOW);
  delay(sensorValue);
  digitalWrite(9, LOW);
  delay(sensorValue);
  digitalWrite(10, LOW);
  delay(sensorValue);
  digitalWrite(11, LOW);
  delay(sensorValue);
  digitalWrite(12, LOW);
  delay(sensorValue);
  digitalWrite(13, LOW);
  // stop the program for for <sensorValue> milliseconds:
  delay(sensorValue);   
}

心得 :
 今天才知道原來之前所學得的東西都在為未來鋪路,先學會怎麼會看程式碼,又用到大二學的接電線,果然是多學一點未雨綢繆,完成霹靂燈覺得成就感滿滿,哈哈,期末加油

98160860黃麒, 98163021張耀璇, HW10, Week12,

int sensorPin = A0;    // select the input pin for the potentiometer
int ledPin = 13;      // select the pin for the LED
int sensorValue = 0;  // variable to store the value coming from the sensor
int i=0;
void setup() {
  for(int i=13 ; i>=7 ; i--){
    pinMode(i,OUTPUT);
  }
  Serial.begin(9600);
}

void loop() {
  sensorValue = analogRead(sensorPin);    
  Serial.println("Hello World");
  for(i=7 ; i<=13 ; i++){
    digitalWrite(i-2,LOW);
    digitalWrite(i-1,HIGH);
    digitalWrite(i,HIGH);
    digitalWrite(i+1,HIGH);
    digitalWrite(i+2,LOW);
    delay(100);
  }
  for(i=13 ; i>=7 ; i--){
    digitalWrite(i-2,LOW);
    digitalWrite(i-1,HIGH);
    digitalWrite(i,HIGH);
    digitalWrite(i+1,HIGH);
    digitalWrite(i+2,LOW);
    delay(100);
  }
}

HW10, week12

 


01.將霹靂燈錄影上傳到youtube,再貼回部落格

02.發揮你的創意做出最特別的霹靂燈
燈的顏色不一樣

03.貼上程式碼
/*
  Analog Input
 Demonstrates analog input by reading an analog sensor on analog pin 0 and
 turning on and off a light emitting diode(LED)  connected to digital pin 13.
 The amount of time the LED will be on and off depends on
 the value obtained by analogRead().

 The circuit:
 * Potentiometer attached to analog input 0
 * center pin of the potentiometer to the analog pin
 * one side pin (either one) to ground
 * the other side pin to +5V
 * LED anode (long leg) attached to digital output 13
 * LED cathode (short leg) attached to ground

 * Note: because most Arduinos have a built-in LED attached
 to pin 13 on the board, the LED is optional.


 Created by David Cuartielles
 modified 30 Aug 2011
 By Tom Igoe

 This example code is in the public domain.

 http://arduino.cc/en/Tutorial/AnalogInput

 */
int sensorPin = A0;    // select the input pin for the potentiometer
int ledPin = 13;      // select the pin for the LED
int sensorValue = 0;  // variable to store the value coming from the sensor
int i=0;
void setup() {
  Serial.begin(9600);
  // declare the ledPin as an OUTPUT:
  pinMode(13, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(9, OUTPUT);
 
}
void loop() {
  // read the value from the sensor:
  sensorValue = analogRead(sensorPin);   
  // turn the ledPin on
  Serial.println(sensorValue);
  for(i=0;i<9;i++)
  if(i==0);{
  digitalWrite(13, HIGH);
  // stop the program for <sensorValue> milliseconds:
  delay(sensorValue);         
  // turn the ledPin off:       
  digitalWrite(13, LOW);
  }
    if(i==1);{
  digitalWrite(12, HIGH);
  // stop the program for <sensorValue> milliseconds:
  delay(sensorValue);         
  // turn the ledPin off:       
  digitalWrite(12, LOW);
  }
   if(i==2);{
  digitalWrite(11, HIGH);
  // stop the program for <sensorValue> milliseconds:
  delay(sensorValue);         
  // turn the ledPin off:       
  digitalWrite(11, LOW);
  }
    if(i==3);{
  digitalWrite(10, HIGH);
  // stop the program for <sensorValue> milliseconds:
  delay(sensorValue);         
  // turn the ledPin off:       
  digitalWrite(10, LOW);
  }
    if(i==4);{
  digitalWrite(9, HIGH);
  // stop the program for <sensorValue> milliseconds:
  delay(sensorValue);         
  // turn the ledPin off:       
  digitalWrite(9, LOW);
  }
   if(i==5);{
  digitalWrite(10, HIGH);
  // stop the program for <sensorValue> milliseconds:
  delay(sensorValue);         
  // turn the ledPin off:       
  digitalWrite(10, LOW);
  }
  if(i==6);{
  digitalWrite(11, HIGH);
  // stop the program for <sensorValue> milliseconds:
  delay(sensorValue);         
  // turn the ledPin off:       
  digitalWrite(11, LOW);
  }
  if(i==7);{
  digitalWrite(12, HIGH);
  // stop the program for <sensorValue> milliseconds:
  delay(sensorValue);         
  // turn the ledPin off:       
  digitalWrite(12, LOW);
  }
   if(i==8);{
  digitalWrite(13, HIGH);
  // stop the program for <sensorValue> milliseconds:
  delay(sensorValue);         
  // turn the ledPin off:       
  digitalWrite(13, LOW);
  }
  // stop the program for for <sensorValue> milliseconds:
  delay(sensorValue);                 
}

*本週作業一組交一份即可(要標註組員姓名)

Week12,HW10

1.1

掃描版本


int sensorPin = A0;    // select the input pin for the potentiometerint ledPin = 4;      // select the pin for the LEDint sensorValue = 0;  // variable to store the value coming from the sensorint count = 0;
float block;
boolean ctl=true,dis=true;
void setup() {
  while(++ledPin<=11)
    pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  ledPin = count%8+5;
  sensorValue = analogRead(sensorPin);    
  Serial.print("Now blink : ");
  Serial.println(sensorValue);
  if(dis==true){
    digitalWrite(ledPin, HIGH);   
    delay(sensorValue);
  }
  else{
    digitalWrite(ledPin,LOW);
    delay(sensorValue);
  }
  
  if(ctl==true){
    if(dis==true) count++;
    else count--;
  }
  else{
    if(dis==true) count--;
    else count++;
  }
  
  if(count%7==0) dis=!dis;
  if(dis==false&&count%7==0) ctl=!ctl;
}


來回版本1

int sensorPin = A0;    // select the input pin for the potentiometerint ledPin = 4;      // select the pin for the LEDint sensorValue = 0;  // variable to store the value coming from the sensorint count = 0;
float block;
boolean ctl=true,dis=true;
void setup() {
  while(++ledPin<=11)
    pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  ledPin = count%8+5;
  sensorValue = analogRead(sensorPin);    
  Serial.print("Now blink : ");
  Serial.println(sensorValue);
  if(dis==true){
    digitalWrite(ledPin, HIGH);   
    delay(sensorValue);
  }
  else{
    digitalWrite(ledPin,LOW);
    delay(sensorValue);
  }
  
  if(ctl==true){
    if(dis==true) count++;
    else count--;
  }
  else{
    if(dis==true) count--;
    else count++;
  }
  
  if(count%7==0) dis=!dis;
  if(dis==false&&count%7==0) ctl=!ctl;
}



來回版本2


int sensorPin = A0;    // select the input pin for the potentiometerint ledPin = 4;      // select the pin for the LEDint sensorValue = 0;  // variable to store the value coming from the sensorint count = 0;
float block;
boolean ctl=true;
void setup() {
  while(++ledPin<=11)
    pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  ledPin = count%8+5;
  // read the value from the sensor:  sensorValue = analogRead(sensorPin);    
  // turn the ledPin on  Serial.print("Now blink : ");
  Serial.println(sensorValue);
  if(ctl==false){
    digitalWrite(ledPin, LOW);   
    delay(sensorValue);
  }
  else{
    digitalWrite(ledPin, HIGH);  
    delay(sensorValue);             
  }
  if(ctl==true) count++;
  else count--;
  if(count%7==0) ctl=!ctl;
}

控制版本


int sensorPin = A0;    // select the input pin for the potentiometerint ledPin = 4;      // select the pin for the LEDint sensorValue = 0;  // variable to store the value coming from the sensorint count = 0;
float block;
boolean ctl=true;

void setup() {
  while(++ledPin<=11)
    pinMode(ledPin, OUTPUT);
  ledPin=0;
  block = 1024/7.0;
  Serial.begin(9600);
}

void loop() {
  sensorValue = analogRead(sensorPin);    
  count = sensorValue/block;
  for(int i=0;i<7;i++){
     if(i==count) digitalWrite(i%7+5,HIGH);
     else digitalWrite(i%7+5, LOW); 
  }
  Serial.print("Now blink : ");
  Serial.println(sensorValue);
}


1.2 心得:
  
  今天算是真正的花了時間去撰寫arduino的程式,使用起來的感覺,與一般程式不同。相較之下,今天的比較有樂趣,或許是因為成果不僅僅侷限在螢幕,而是能夠在實體上互動。這種感覺真的非常的有趣。

  我想在下星期學習輸入方式之後,期末的作品能製作的專題,似乎又多了很多方向。我想期末的時候,作品會針對是要有足夠的互動性,要能展現搭配了Arduino的特色吧。

Week12,HW10

(1)Arduino練習:霹靂燈



(2)程式碼
int sensorPin = A0;
int ledPin = 13;    
int sensorValue = 0; 
void setup() {
  Serial.begin(9600);
  pinMode(13, OUTPUT);
  pinMode(12, OUTPUT); 
  pinMode(11, OUTPUT); 
  pinMode(10, OUTPUT); 
  pinMode(9, OUTPUT); 
  pinMode(8, OUTPUT);
  pinMode(7, OUTPUT);   
}
void loop() {
  sensorValue = analogRead(sensorPin); 
  Serial.println(sensorValue); 
 
  for (int i=13; i>=7; i--) {
    digitalWrite(i, HIGH);
    delay(sensorValue/10);
  }
   for (int i=13; i>=7; i--) {
    digitalWrite(i, LOW);
    delay(sensorValue/10);
  }
}

WEEK12,HW10




int sensorPin = A0;    // select the input pin for the potentiometer
int ledPin = 13;      // select the pin for the LED
int sensorValue = 0;  // variable to store the value coming from the sensor
void setup() {
  // declare the ledPin as an OUTPUT:
  pinMode(13, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(9, OUTPUT); 
  pinMode(7, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(1, OUTPUT); 
}
void loop() {
  // read the value from the sensor:
  sensorValue = analogRead(sensorPin);   
  // turn the ledPin on
  digitalWrite(13, HIGH); 
   digitalWrite(11, LOW); 
    digitalWrite(9, LOW); 
     digitalWrite(7, LOW); 
      digitalWrite(5, LOW); 
       digitalWrite(3, LOW); 
        digitalWrite(1, LOW); 
  // stop the program for <sensorValue> milliseconds:
  delay(sensorValue);         
  // turn the ledPin off:       
  digitalWrite(13, LOW);  
   digitalWrite(11, HIGH); 
    digitalWrite(9, LOW); 
     digitalWrite(7, LOW); 
      digitalWrite(5, LOW); 
       digitalWrite(3, LOW); 
        digitalWrite(1, LOW); 
             
  // stop the program for for <sensorValue> milliseconds:
  delay(sensorValue);   
  digitalWrite(13, LOW);  
   digitalWrite(11, LOW); 
    digitalWrite(9, HIGH); 
     digitalWrite(7, LOW); 
      digitalWrite(5, LOW); 
       digitalWrite(3, LOW); 
        digitalWrite(1, LOW); 
             
  // stop the program for for <sensorValue> milliseconds:
  delay(sensorValue);  
  digitalWrite(13, LOW);  
   digitalWrite(11, LOW); 
    digitalWrite(9, LOW); 
     digitalWrite(7, HIGH); 
      digitalWrite(5, LOW); 
       digitalWrite(3, LOW); 
        digitalWrite(1, LOW); 
             
  // stop the program for for <sensorValue> milliseconds:
  delay(sensorValue);  
  digitalWrite(13, LOW);  
   digitalWrite(11, LOW); 
    digitalWrite(9, LOW); 
     digitalWrite(7, LOW); 
      digitalWrite(5, HIGH); 
       digitalWrite(3, LOW); 
        digitalWrite(1, LOW); 
             
  // stop the program for for <sensorValue> milliseconds:
  delay(sensorValue);  
  digitalWrite(13, LOW);  
   digitalWrite(11, LOW); 
    digitalWrite(9, LOW); 
     digitalWrite(7, LOW); 
      digitalWrite(5, LOW); 
       digitalWrite(3, HIGH); 
        digitalWrite(1, LOW); 
             
  // stop the program for for <sensorValue> milliseconds:
  delay(sensorValue);  
  digitalWrite(13, LOW);  
   digitalWrite(11, LOW); 
    digitalWrite(9, LOW); 
     digitalWrite(7, LOW); 
      digitalWrite(5, LOW); 
       digitalWrite(3, LOW); 
        digitalWrite(1, HIGH); 
             
  // stop the program for for <sensorValue> milliseconds:
  delay(sensorValue);    
   digitalWrite(13, LOW);  
   digitalWrite(11, LOW); 
    digitalWrite(9, LOW); 
     digitalWrite(7, LOW); 
      digitalWrite(5, LOW); 
       digitalWrite(3, HIGH); 
        digitalWrite(1, LOW); 
             
  // stop the program for for <sensorValue> milliseconds:
  delay(sensorValue);   
  digitalWrite(13, LOW);  
   digitalWrite(11, LOW); 
    digitalWrite(9, LOW); 
     digitalWrite(7, LOW); 
      digitalWrite(5, HIGH); 
       digitalWrite(3, LOW); 
        digitalWrite(1, LOW); 
             
  // stop the program for for <sensorValue> milliseconds:
  delay(sensorValue);  
  digitalWrite(13, LOW);  
   digitalWrite(11, LOW); 
    digitalWrite(9, LOW); 
     digitalWrite(7, HIGH); 
      digitalWrite(5, LOW); 
       digitalWrite(3, LOW); 
        digitalWrite(1, LOW); 
             
  // stop the program for for <sensorValue> milliseconds:
  delay(sensorValue);  
  digitalWrite(13, LOW);  
   digitalWrite(11, LOW); 
    digitalWrite(9, HIGH); 
     digitalWrite(7, LOW); 
      digitalWrite(5, LOW); 
       digitalWrite(3, LOW); 
        digitalWrite(1, LOW); 
             
  // stop the program for for <sensorValue> milliseconds:
  delay(sensorValue);  
  digitalWrite(13, LOW);  
   digitalWrite(11, HIGH); 
    digitalWrite(9, LOW); 
     digitalWrite(7, LOW); 
      digitalWrite(5, LOW); 
       digitalWrite(3, LOW); 
        digitalWrite(1, LOW); 
             
  // stop the program for for <sensorValue> milliseconds:
  delay(sensorValue);  
  digitalWrite(13, HIGH);  
   digitalWrite(11, LOW); 
    digitalWrite(9, LOW); 
     digitalWrite(7, LOW); 
      digitalWrite(5, LOW); 
       digitalWrite(3, LOW); 
        digitalWrite(1, LOW); 
             
  // stop the program for for <sensorValue> milliseconds:
  delay(sensorValue);    
}

Weel12,HW10

1、霹靂燈之影片分享

   藉由調可變電阻改變閃爍頻率


影片一、快速閃爍的霹靂燈

影片二、閃爍較慢的霹靂燈

影片三、調整閃爍頻率之霹靂燈



2、

圖一
圖二


3、程式碼


void setup() {
  // declare the ledPin as an OUTPUT:
  pinMode(13, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(7, OUTPUT);    
}

void loop() {

  // read the value from the sensor:
  sensorValue = analogRead(sensorPin);  
  // turn the ledPin on
  digitalWrite(13, HIGH);
  delay(sensorValue);
  digitalWrite(12, HIGH);
  delay(sensorValue);
  digitalWrite(11, HIGH);
  delay(sensorValue);
  digitalWrite(10, HIGH);
  delay(sensorValue);
  digitalWrite(9, HIGH);
  delay(sensorValue);
  digitalWrite(8, HIGH);
  delay(sensorValue);
  digitalWrite(7, HIGH);
  delay(sensorValue);
  // stop the program for <sensorValue> milliseconds:
  delay(sensorValue);        
  // turn the ledPin off:      
  digitalWrite(13, LOW);
  delay(sensorValue);
  digitalWrite(12, LOW);
  delay(sensorValue);
  digitalWrite(11, LOW);
  delay(sensorValue);
  digitalWrite(10, LOW);
  delay(sensorValue);
  digitalWrite(9, LOW);
  delay(sensorValue);
  digitalWrite(8, LOW);
  delay(sensorValue);
  digitalWrite(7, LOW);
  delay(sensorValue);
  // stop the program for for <sensorValue> milliseconds:
  delay(sensorValue);
  digitalWrite(13, HIGH);
  digitalWrite(12, HIGH);
  digitalWrite(11, HIGH);
  digitalWrite(10, HIGH);
  digitalWrite(9, HIGH);
  digitalWrite(8, HIGH);
  digitalWrite(7, HIGH);
  delay(sensorValue);
  digitalWrite(13, LOW);
  digitalWrite(12, LOW);
  digitalWrite(11, LOW);
  digitalWrite(10, LOW);
  digitalWrite(9, LOW);
  digitalWrite(8, LOW);
  digitalWrite(7, LOW);
  delay(sensorValue);
  digitalWrite(13, HIGH);
  digitalWrite(12, HIGH);
  digitalWrite(11, HIGH);
  digitalWrite(10, HIGH);
  digitalWrite(9, HIGH);
  digitalWrite(8, HIGH);
  digitalWrite(7, HIGH);
  delay(sensorValue);
  digitalWrite(13, LOW);
  digitalWrite(12, LOW);
  digitalWrite(11, LOW);
  digitalWrite(10, LOW);
  digitalWrite(9, LOW);
  digitalWrite(8, LOW);
  digitalWrite(7, LOW);
  delay(sensorValue);

  digitalWrite(7, HIGH);
  delay(sensorValue);
  digitalWrite(8, HIGH);
  delay(sensorValue);
  digitalWrite(9, HIGH);
  delay(sensorValue);
  digitalWrite(10, HIGH);
  delay(sensorValue);
  digitalWrite(11, HIGH);
  delay(sensorValue);
  digitalWrite(12, HIGH);
  delay(sensorValue);
  digitalWrite(13, HIGH);
  delay(sensorValue);
  // stop the program for <sensorValue> milliseconds:
  delay(sensorValue);        
  // turn the ledPin off:      
  digitalWrite(7, LOW);
  delay(sensorValue);
  digitalWrite(8, LOW);
  delay(sensorValue);
  digitalWrite(9, LOW);
  delay(sensorValue);
  digitalWrite(10, LOW);
  delay(sensorValue);
  digitalWrite(11, LOW);
  delay(sensorValue);
  digitalWrite(12, LOW);
  delay(sensorValue);
  digitalWrite(13, LOW);
  delay(sensorValue);
}

心得:

Week12, HW10

用可變電阻來調整LED燈泡的閃爍頻率

[亮一顆LED]
影片:

程式碼:
/*
  Analog Input
 Demonstrates analog input by reading an analog sensor on analog pin 0 and
 turning on and off a light emitting diode(LED)  connected to digital pin 13. 
 The amount of time the LED will be on and off depends on
 the value obtained by analogRead(). 
 
 The circuit:
 * Potentiometer attached to analog input 0
 * center pin of the potentiometer to the analog pin
 * one side pin (either one) to ground
 * the other side pin to +5V
 * LED anode (long leg) attached to digital output 13
 * LED cathode (short leg) attached to ground
 
 * Note: because most Arduinos have a built-in LED attached 
 to pin 13 on the board, the LED is optional.
 
 
 Created by David Cuartielles
 modified 30 Aug 2011
 By Tom Igoe
 
 This example code is in the public domain.
 
 http://arduino.cc/en/Tutorial/AnalogInput
 
 */

int sensorPin = A0;    // select the input pin for the potentiometer
int ledPin = 13;      // select the pin for the LED
int sensorValue = 0;  // variable to store the value coming from the sensor
int a=0;

void setup() {
  // declare the ledPin as an OUTPUT:
  pinMode(13, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(7, OUTPUT);

  Serial.begin(9600);
}

void loop() {
  // read the value from the sensor:
  sensorValue = analogRead(sensorPin);    
 Serial.println(sensorValue);
 
  // turn the ledPin on
  digitalWrite(13, LOW);
  digitalWrite(12, LOW);
  digitalWrite(11, LOW);
  digitalWrite(10, LOW);
  digitalWrite(9, LOW);
  digitalWrite(8, LOW);
  digitalWrite(7, LOW);
  //digitalWrite(ledPin, HIGH);
  // stop the program for <sensorValue> milliseconds:
  a=5;
  for(int i=0;i<13;i++)
  {
    if(i<7){
      delay(sensorValue);          
      // turn the ledPin off:        
      digitalWrite(i+7, HIGH);
      digitalWrite(i+6, LOW);  
      // stop the program for for <sensorValue> milliseconds:
      delay(sensorValue);
    }
    if(i>=7){
      delay(sensorValue);          
      // turn the ledPin off:        
      digitalWrite(i+a, HIGH);
      digitalWrite(i+a+1, LOW);  
      // stop the program for for <sensorValue> milliseconds:
      delay(sensorValue);
      a=a-2;
    }  
  }
   
}


[亮兩顆LED]
影片:
[亮三顆LED]
影片:
程式碼:
int sensorPin = A0; // select the input pin for the potentiometer int ledPin = 13; // select the pin for the LED int sensorValue = 0; // variable to store the value coming from the sensor int a=0; void setup() {   // declare the ledPin as an OUTPUT:   pinMode(13, OUTPUT);   pinMode(12, OUTPUT);   pinMode(11, OUTPUT);   pinMode(10, OUTPUT);   pinMode(9, OUTPUT);   pinMode(8, OUTPUT);   pinMode(7, OUTPUT);   Serial.begin(9600); } void loop() {   // read the value from the sensor:   sensorValue = analogRead(sensorPin);  Serial.println(sensorValue);     // turn the ledPin on   digitalWrite(13, LOW);   digitalWrite(12, LOW);   digitalWrite(11, LOW);   digitalWrite(10, LOW);   digitalWrite(9, LOW);   digitalWrite(8, LOW);   digitalWrite(7, LOW);   //digitalWrite(ledPin, HIGH);   // stop the program for <sensorValue> milliseconds:   a=5;   for(int i=0;i<13;i++)   {     if(i<7){       delay(sensorValue);       // turn the ledPin off:       digitalWrite(i+7, HIGH);       digitalWrite(i+8, HIGH);       digitalWrite(i+9, HIGH);       digitalWrite(i+6, LOW);       // stop the program for for <sensorValue> milliseconds:       delay(sensorValue);     }     if(i>=7){       delay(sensorValue);       // turn the ledPin off:       digitalWrite(i+a, HIGH);       digitalWrite(i+a-1, HIGH);       digitalWrite(i+a-2, HIGH);       digitalWrite(i+a+1, LOW);       // stop the program for for <sensorValue> milliseconds:       delay(sensorValue);       a=a-2;     }     } }