2010年12月28日 星期二

用可變電阻控制RGB三色

int valLight = 0;
int valDark = 0;

void setup() {               

  pinMode(9, OUTPUT);    
  pinMode(10, OUTPUT);    
  pinMode(11, OUTPUT);   
  Serial.begin(9600); // open serial
}

void loop()
{
  valLight = analogRead(0);
  valDark = analogRead(1);
  Serial.print("Light ");
  Serial.println(valLight, DEC);
  Serial.print("Darkt ");

  Serial.println(valDark, DEC);
  for(int i=9;i<12;i++){
    digitalWrite(i, HIGH);  
    delay(valLight/4);             
    digitalWrite(i, LOW);   
    delay(valDark/4);            
  }

}


2010年12月20日 星期一

RGB三色燈光PWM控制

void setup() {               
  pinMode(9, OUTPUT);    
  pinMode(10, OUTPUT);    
  pinMode(11, OUTPUT);    
}

void loop()
{
  analogWrite(9, 128);   //R
  analogWrite(10, 64);   //B
  analogWrite(11, 100);   //G

}



RGB三色混色閃爍

將RGB的LED塞入乒乓球
利用視覺暫留,製造出混成白色的結果
也可以搖晃造成分色。也可以製造出黃色

void setup() {               
  pinMode(9, OUTPUT);    
  pinMode(10, OUTPUT);    
  pinMode(11, OUTPUT);    
}

void loop()
{
  for(int i=9;i<12;i++){
    digitalWrite(i, HIGH);  
    delay(2);             
    digitalWrite(i, LOW);   
    delay(10);            
  }

}


強光擊發快門(拍閃電)

光敏電阻串聯100k omu
並聯至Analog 0
快門接至 D7


From http://www.glacialwanderer.com/hobbyrobotics/?cat=5&paged=3


// Maurice Ribble
// 6-1-2008
// http://www.glacialwanderer.com/hobbyrobotics

// This code uses my camera trigger and lightning detector.
// It waits for a sudden change in the light intensity
// and then triggers the camera.

#define SHUTTER_PIN 7
#define LIGHTNING_TRIGGER_ANALOG_PIN 0
#define TRIGGER_THRESHHOLD 5

int lightningVal;

void setup()
{
pinMode(SHUTTER_PIN, OUTPUT);
digitalWrite(SHUTTER_PIN, LOW);
Serial.begin(9600); // open serial

lightningVal = analogRead(LIGHTNING_TRIGGER_ANALOG_PIN);
}

void loop()
{
int cmd;
int newLightningVal = analogRead(LIGHTNING_TRIGGER_ANALOG_PIN);
Serial.println(lightningVal, DEC);

if (abs(newLightningVal - lightningVal) > TRIGGER_THRESHHOLD)
{
digitalWrite(SHUTTER_PIN, HIGH);
delay(1000); // May want to adjust this depending on shot type
digitalWrite(SHUTTER_PIN, LOW);
Serial.println("Shutter triggered");
}

lightningVal = newLightningVal;
}


RGB三色呼吸燈

int ledPinR = 9;    // LED connected to digital pin 9 red
int ledPinG = 10;    // LED connected to digital pin 10 green
int ledPinB = 11;    // LED connected to digital pin 11 blue

void setup()  {

}

void loop()  {
  for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) {
    analogWrite(ledPinR, fadeValue);        
    delay(30);                           
  }


  for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) {
    analogWrite(ledPinG, fadeValue);        
    delay(30);                           
  }


  for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) {
    analogWrite(ledPinB, fadeValue);        
    delay(30);                           
  }


  for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5) {
    analogWrite(ledPinG, fadeValue);        
    delay(30);                           
  }


  for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5) {
    analogWrite(ledPinR, fadeValue);        
    delay(30);                           
  }


  for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5) {
    analogWrite(ledPinB, fadeValue);        
    delay(30);                           
  }



}


定時擊發快門

#define SHUTTER_PIN 7

void setup()
{
  pinMode(SHUTTER_PIN, OUTPUT);
  digitalWrite(SHUTTER_PIN, LOW);
}

void loop()
{
        digitalWrite(SHUTTER_PIN, HIGH);
        delay(100);
        digitalWrite(SHUTTER_PIN, LOW);
        delay(30000);//延遲30秒          
}