Wednesday, October 03, 2012

Workshop Computer Interfacing & Arduino


Laboratorium Teknologi Komputer Jurusan Teknik Elektro Universitas Kristen Maranatha, akan menyelenggarakan Workshop Computer interfacing & Arduino 
Tanggal : 22-Okt-2012 s/d 25-Okt-2012
waktu :15.00-17.30  17.00 - 19.30 (Fixed)
Peserta terbatas 20 orang





Friday, May 25, 2012

Sensor warna ekonomis menggunakan Led RGB dan LDR

Dengan menggunakan LED RGB dan LDR, kita dapat membuat sensor warna yang cukup memadai, prinsip kerjanya adalah dengan melakukan pencatatan terhadap masing-masing pantulan sinar warna (Merah,Hijau dan Biru) terhadap kertas warna tertentu, kombinasi nilai pantulan tersebut digunakan sebagai nilai referensi warna tersebut.


Contoh hasilnya sbb:



Wiring dan skematik


Sketch Program:
---
/* Program sensor warna
   Oleh   : Aan Darmawan
   web    : valfa.blogspot.com
   update : 25 Mei 2012
*/
   
#include <Servo.h> 
Servo myservo; 
int sensorPin = A0;
int LedBiru =3; // Led warna biru digital pin 3
int LedHijau=4; // Led warna hijau digital pin 4
int LedMerah=5; // Led warna merah digital pin 5
int hasil,hasilb,hasilm,hasilh;
int k=8;  // toleransi warna

void setup() {
// declare the ledPin as an OUTPUT:
  pinMode(LedBiru,OUTPUT);
  pinMode(LedMerah,OUTPUT);
  pinMode(LedHijau,OUTPUT);  
  digitalWrite(LedBiru,LOW);
  digitalWrite(LedMerah,LOW);
  digitalWrite(LedHijau,LOW);
  myservo.attach(9);  // motor servo pin digital 9
  myservo.write(90);      
  delay(100);       
  Serial.begin(9600);
  delay(1000);
}

void loop() {
  // nyalakan LedMerah
  digitalWrite(LedMerah,HIGH);
  //delay 150 ms agar LDR baca stabil
  delay(150);
  // baca data sensor
  hasil= analogRead(sensorPin);
  hasilm=map(hasil,0,1023,0,255);
  Serial.print("R,G,B = ");
  Serial.print(hasilm); 
  digitalWrite(LedMerah,LOW);    
  delay(150);

  // nyalakan LedHijau
  digitalWrite(LedHijau,HIGH);
  //delay 150 ms agar LDR baca stabil
  delay(150);
  // baca data sensor
  hasil= analogRead(sensorPin);
  hasilh=map(hasil,0,1023,0,255);  
  Serial.print(",");
  Serial.print(hasilh); 
  digitalWrite(LedHijau,LOW);    
  delay(150);
  
  // nyalakan LedBiru
  digitalWrite(LedBiru,HIGH);
  //delay 150 ms agar LDR baca stabil
  delay(150);
  // baca data sensor
  hasil= analogRead(sensorPin);
  hasilb=map(hasil,0,1023,0,255);  
  Serial.print(",");
  Serial.println(hasilb); 
  digitalWrite(LedBiru,LOW);  
  delay(150);

  // cek warna dibandingkan dengan nilai hasil kalibrasi
  if(abs(hasilm-208)<k && abs(hasilh-203)<k && abs(hasilb-177)<k){
    Serial.println(" -> WARNA PUTIH!\n");
    myservo.write(10);    } else
  if(abs(hasilm-209)<k && abs(hasilh-165)<k && abs(hasilb-139)<k){
    Serial.println(" -> WARNA MERAH !\n");
    myservo.write(30);   } else
  if(abs(hasilm-135)<k && abs(hasilh-182)<k && abs(hasilb-147)<k){
    Serial.println(" -> WARNA HIJAU !\n");
     myservo.write(50); }  else  
  if(abs(hasilm-138)<k && abs(hasilh-163)<k && abs(hasilb-166)<k){
    Serial.println(" -> WARNA BIRU !\n");
    myservo.write(70);   } else
  if(abs(hasilm-156)<k && abs(hasilh-184)<k && abs(hasilb-172)<k){
    Serial.println(" -> WARNA CYAN !\n");
    myservo.write(90);   } else
  if(abs(hasilm-199)<k && abs(hasilh-159)<k && abs(hasilb-170)<k){
    Serial.println(" -> WARNA UNGU !\n");
     myservo.write(110); }  else  
  if(abs(hasilm-209)<k && abs(hasilh-214)<k && abs(hasilb-223)<k){
    Serial.println(" -> WARNA KUNING !\n");
    myservo.write(130);   }  else  
  if(abs(hasilm-210)<k && abs(hasilh-206)<k && abs(hasilb-211)<k){
    Serial.println(" -> WARNA PINK !\n");
    myservo.write(150);   } else
  if(abs(hasilm-165)<k && abs(hasilh-197)<k && abs(hasilb-205)<k){
    Serial.println(" -> WARNA HIJAU MUDA !\n");
    myservo.write(170);   } else
//  if(abs(hasilm-209)<k && abs(hasilh-204)<k && abs(hasilb-210)<k){
//    Serial.println(" -> WARNA KUNING MUDA!\n");
//     myservo.write(180); } else
    Serial.println(" -> ???\n");     
    
  delay (2000);
}

---



Saturday, March 31, 2012

Severino ElMarino


Severino ElMarino Ready......

Severino ElMarino, merupakan penyempurnaan dari Severino sebelumnya:
  • Mikrokontroler menggunakan ATMEGA328
  • Tersedia sumber tegangan 3.3V sehingga bisa digabungkan dengan Shield yang membutuhkan tegangan 3.3V (misalnya: Ethernetshield)
  • Upload Sketch/program lebih cepat
  • Kompatibel dengan Duemilanove / UNO 
Manual dapat diunduh DISINI




Wednesday, March 21, 2012

Motorshield 2x293D

Motorshield 2x293D dirangkai dengan menggunakan 2 buah IC 293D yang dapat mengendalikan 4 buah Motor DC, ditambahkan 1 buah IC 74HC595 (khusus) untuk pengendalian Steppermotor sehingga dapat dikendalikan dengan model SINGLE,DOUBLE ataupun INTERLEAVE. Motorshiled ini kompatibel dengan produk motorshield ladyada, library-nya dapat digunakan pada motorshield ini.

 Motorshield 2x293D


Koneksi untuk uji Motor party

 Library dan Demo penggunaan dapat di unduh disini ,berikut adalah demo hasil uji dengan sketch motor party

Tuesday, March 20, 2012

Motor Shield ElMarino mengendalikan Motor Stepper

Pada pembahasan sebelumnya telah dijelaskan penggunaan Motorshield ElMarino untuk Motor DC , pada pembahasan kali ini akan dijelaskan cara penggunaan Motorshield ElMarino untuk pengendalian Motor Stepper (dengan Arduino cukup dengan 3 pin saja)
Hubungkan stepper motor (Uni Polar) seperti pada foto berikut:


Contoh Pemrograman (Putar searah jarum jam selanjutnya putar berlawanan arah jarum jam)


/*
 Kendali Stepper-motor dengan Motorshield Elmarino
 Pin  9 HIGH=Enable, LOW=Disable
 Pin 10,11 kendali Stepper Motor 
 searah          jarum jam (pin10 pin11): HL,HH,LH,LL 
 berlawanan arah jarum jam (pin10 pin11): LL,LH,HH,HL 
 Oleh : Aan Darmawan
 Blog : http://valfa.blogspot.com
 Date : 20 Maret 2011  
 */

void setup() {        
  //Serial.begin(9600);  
  pinMode(10,OUTPUT);  // pin 10,11 Kendali Stepper Motor
  pinMode(11,OUTPUT);  
  pinMode(9,OUTPUT);  // Enable/Disable Stepper Motor
  digitalWrite(9,LOW);
  delay(1000);
}
int i;
// main program 
void loop() {
  // putar searah jarum jam
  for(i=1;i<=250;i++){
  digitalWrite(9,LOW);
  digitalWrite(10,HIGH);
  digitalWrite(11,LOW);  
  digitalWrite(9,HIGH);
  delay(10);
  digitalWrite(9,LOW);
  digitalWrite(10,HIGH);
  digitalWrite(11,HIGH);  
  digitalWrite(9,HIGH);
  delay(10);
  digitalWrite(9,LOW);
  digitalWrite(10,LOW);
  digitalWrite(11,HIGH);  
  digitalWrite(9,HIGH);
  delay(10);
  digitalWrite(9,LOW);
  digitalWrite(10,LOW);
  digitalWrite(11,LOW);  
  digitalWrite(9,HIGH);
  delay(10);
  }
  // putar berlawanan jarum jam
  for(i=1;i<=250;i++){
  digitalWrite(9,LOW);
  digitalWrite(10,LOW);
  digitalWrite(11,LOW);  
  digitalWrite(9,HIGH);
  delay(10);
  digitalWrite(9,LOW);
  digitalWrite(10,LOW);
  digitalWrite(11,HIGH);  
  digitalWrite(9,HIGH);
  delay(10);
  digitalWrite(9,LOW);
  digitalWrite(10,HIGH);
  digitalWrite(11,HIGH);  
  digitalWrite(9,HIGH);
  delay(10);
  digitalWrite(9,LOW);
  digitalWrite(10,HIGH);
  digitalWrite(11,LOW);  
  digitalWrite(9,HIGH);
  delay(10);
  }
} 
 
Contoh Video Hasil uji coba:


Sunday, March 11, 2012

Motorshield ElMarino mengendalikan motor DC

Mengendalikan Motor DC pada Arduino/mikrokontroler diperlukan driver/penguat (karena maksimum beban arus yang dapat 'ditangani' oleh Arduino/mikrokontroler terbatas, yaitu sekitar 40mA), solusinya adalah menggunakan Motorshield.
Motorshield  Elmarino dirangkai  dengan menggunakan IC L298 yang dapat menangani beban maksimum 2A (Data sheet menunjukan Peak Current 4A), Motorshield ini dapat mengatur 2 motor DC (tiap motor dpt diatur fwd,backward,stop), pada Arduino hanya membutuhkan 3 pin kendali saja dan kecepatan bisa diatur dengan sinyal PWM, selain itu Motorshield ini dapat juga digunakan untuk mengatur gerakan stepper motor dan Servo Motor.
Satu hal lagi keunggulan Motorshield Elmarino sudah merupakan shield untuk Arduino (Severino/ Duemilanove/ UNO) pin-pin kaki (default) yang digunakan adalah 9,10,11. 

Motorshield Elmarino 

Contoh Aplikasi Elmarino Motorshield untuk mengendalikan 2 motor DC dengan (Arduino) Severino:
1.Rakit 2 motor DC sebagai penggerak roda mobil/tank
2.Pasang Board (Arduino) Severino
 3.Pasang MotorShield Elmarino ke Severino
4.Hasil Instalasi Motorshield pada (Arduino) Severino
 
 5.Hubungkan terminal-terminal motor ke Terminal Block Motor A dan B pada Motorshield Elmarino
 6.Hubungkan Sumber tegangan ke Severino,Motorshield Elmarino dan Motor
 7.Program Severino dengan IDE Arduino melalui komunikasi Serial (saat pemrograman,hubungan
    sumber tegangan untuk Motor di LEPAS)

Contoh Program:


/*
 Kendali 2 motor DC dengan Motorshield Elmarino
 Pin  9  Enable/Disable
         sinyal PWM akan mengatur kecepatan putaran
         0 Stop - 255 kecepatan maksimum
 
 Pin 10 Motor B -> HIGH=Forward, LOW=Backward
 Pin 11 Motor A -> HIGH=Forward, LOW=Backward 
 Oleh : Aan Darmawan
 Blog : http://valfa.blogspot.com
 Date : 10 Maret 2011  */

void maju(int kecepatan){
  digitalWrite(10,HIGH);
  digitalWrite(11,HIGH);     
  analogWrite(9,kecepatan);
}

void mundur(int kecepatan){
  digitalWrite(10,LOW);
  digitalWrite(11,LOW);     
  analogWrite(9,kecepatan);
}

void henti(void){
  analogWrite(9,0);
}

void putarkiri(int kecepatan){
  digitalWrite(10,HIGH);
  digitalWrite(11,LOW);     
  analogWrite(9,kecepatan);
}

void putarkanan(int kecepatan){
  digitalWrite(10,LOW);
  digitalWrite(11,HIGH);     
  analogWrite(9,kecepatan);
}

void setup() {        
  //Serial.begin(9600);  
  pinMode(10,OUTPUT);  // Kendali Motor A
  pinMode(11,OUTPUT);  // Kendali Motor B
  pinMode(9,OUTPUT);  // Enable Motor (PWM ->Speed)
  delay(1000);
}
int n;
// main program 
void loop() {
  // maju 2 detik
  maju(255); //kecepatan penuh
  delay(2000);
  henti();
  delay(300);
  // mundur 2 detik
  mundur(255); //kecepatan penuh
  delay(2000);
  henti();
  delay(300);
  // putar kiri
  putarkiri(155);  //kecepatan ~60% 
  delay(2000);
  henti();
  delay(300);
  // putar kanan
  putarkanan(155);  //kecepatan ~60% 
  delay(2000);
  henti();
  delay(300);
} 
 
Video Hasil Uji:






Wednesday, February 01, 2012

HASIL WORKSHOP

WORKSHOP ARDUINO IS DONE....! CONGRATS TO ALL PARTICIPANT...... BE SUCCESS...!!
Serius...konsentrasi...santai dan narsis.......