Tuesday, January 25, 2011

Arduino Severino + LED RGB

Arduino Severino, diimplementasikan untuk mengendalikan LED RGB secara Random, hasilnya:





List Program :
int ledrPin = 9;
int ledgPin = 10;    // LED connected to digital pin 9,10,11
int ledbPin = 11;
int ledShow = 13;
int faderValue;
int fadegValue;
int fadebValue;
int sw =0;

void setup()  { 
  pinMode(ledrPin,OUTPUT);
  pinMode(ledgPin,OUTPUT);
  pinMode(ledbPin,OUTPUT);
  pinMode(ledShow,OUTPUT); 
  Serial.begin(9600);
  faderValue=0;
  fadegValue=0;
  fadebValue=0;
  randomSeed(analogRead(0));
} 

void loop()   {
  faderValue=random(0,256);
  fadegValue=random(0,256);
  fadebValue=random(0,256);  
  if(sw==0){sw=1;digitalWrite(ledShow,HIGH);}
   else {sw=0;digitalWrite(ledShow,LOW);}
 analogWrite(ledrPin, faderValue);
 analogWrite(ledgPin, fadegValue);         
 analogWrite(ledbPin, fadebValue);
 delay(1000);         
}


4 comments:

Anonymous said...

Pak, saya pengen banget belajar micro pake Arduino tapi dana sedikit .. hii... hi... Eh ternyata tambah tertarik setelah membaca blog bapak ini. Mohon sudi kiranya bapak bisa memberikan kepad sy pcb board Arduino S3v3rino yang sudah jadi ini. Saya bersedia deh pak untuk biaya penggantianya pembuatan pcb ini.

Terimakasih ya pak... ditunggu banget kabarnya.

zakaria@fe.unpad.ac.id

Anonymous said...

Oh ya pak saya udah konfirmasi balik lewat email zakaria@fe.unpad.ac.id. Thx

Hendri Tresnahadi said...

pa aan, gimana medeklarasikan "if " majemuk yang dikombinasikan dengan "variable" contoh misalkan saya ingin mengedipkan led di pin 8 sebanyak 5 kali, setelah itu led di pin 9 mengedip 5x dan setelah itu kembali ke awal.... saya menulis prog spt ini

void setup() {

pinMode(8, OUTPUT);
pinMode(9, OUTPUT);

}
byte val = 0;
byte valb = 0;

void loop() {
val++;
digitalWrite(8, HIGH);
delay(1000);
digitalWrite(8, LOW);
delay(1000);
if(val == 5){
val = 0;
valb++;
digitalWrite(9, HIGH);
delay(1000);
digitalWrite(9, LOW);
delay(1000);
if(valb == 5){
valb = 0;
}
}
}


tapi hasilnya led pin 8 mengedip 5 kali dan sesudah nya led pin 9 mengedip 1x dan kembali ke awal...

trimakasih sebelumnya mohon pencerahan

Aan Darmawan H said...

Halo Pa Hendri,
Bagaimana kalau dengan loop for? jika diijinkan maka prog nya jauh menjadi lebih simpel :

byte val = 0;

void setup() {
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
}

void loop() {
for(val=1;val<=5;val++){

digitalWrite(8, HIGH);
delay(1000);
digitalWrite(8, LOW);
delay(1000);
}

for(val=1;val<=5;val++){

digitalWrite(9, HIGH);
delay(1000);
digitalWrite(9, LOW);
delay(1000);
}

}

Tapi jika ingin tetap menggunakan if dan counter prog nya sbb :

byte val = 0; // val utk counter 5x (0,1,2,3,4)
byte valb = 0; // valb utk switch, jika valb=0 led pin8 kedip, valb=1 led pin 9 kedip

void setup() {
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
}

void loop() {
// kalau valb=0,led pin8 kedip 5x
if(valb==0){

digitalWrite(8, HIGH);
delay(1000);
digitalWrite(8, LOW);
delay(1000);
val++;
// kalau sudah kedip 5x, val di reset jadi 0, valb menjadi 1

if(val == 5){
val = 0;
valb=1;
}
}

// kalau valb=1, led pin9 kedip 5x
if(valb==1){

digitalWrite(9, HIGH);
delay(1000);
digitalWrite(9, LOW);
delay(1000);
val++;
// kalau sudah kedip 5x, val dan valb direset ke 0

if(val == 5){
val = 0;
valb=0;
}
}

}

Demikian pendapat saya,

Thanks