Buku-buku elektronika

Teori membawa kita dari benturan sana-sini, yuk baca buku.

Skema dan PCB

Cari skema rangkaian? atau dengan layout? Disini tempatnya.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

Jumat, 20 November 2015

Membuat RUNNING LED menggunakan Arduino [Simulation & Syntax Program]

Percobaan kali ini adalah membuat RUNNING LED, yakni sebuah rangkaian LED yang disusun sebanyak lima buah dimana LED akan menyala bergantian dari kiri ke kanan dan dari kanan ke kiri. Kontrol gerakan LED dilakukan dengan menggunakan dua push button.
Perlu diperhatikan bahwa push button dirangkai menggunakan resistor pull down. Jadi ketika tombol ditekan, maka akan menghasilkan logika HIGH, dan ketika dilepas akan menghasilkan logika LOW.

Script Program

/* Program Running LED
Percobaan 3 Mikrokontroler
*/
                            // Pengaturan output menggunakan Array
int ledpins[]={2,3,4,5,6};  // Port Output yang digunakan hanya lima dari port 2 ke 5
int i=0;
int val=0;                  // Variabel untuk menyimpan data
int state=0;
int val1=0;
int state1=0;
int old_val=0;
int old_val1=0;

void setup()
{                               // inisialisasi output
  for(int i=0; i<5; i++)        // jika i kurang dari lima maka nilai i ditambah 1
  pinMode(ledpins[i], OUTPUT);
  pinMode(9, INPUT);            // Tombol Kiri ke kanan
  pinMode(10,INPUT);            // Tombol Kanan ke kiri
  Serial.begin(9600);
}

void loop()
{
  val=digitalRead(9);      // Membaca tombol dan memasukkannya ke variabel agar bisa di interlock
  val1=digitalRead(10);
 
  if((val==HIGH) && (old_val==LOW)){      // Jika tombol kiri ke kanan ditekan maka
    state=1-state;                        // state akan bernilai satu, dan jika state bernilai satu dan tombol ditekan maka state bernilai 0
  delay(10);                              // delay digunakan untuk mencegah bouncing
  }
  old_val=val;                            // old val digunakan untuk mencegah bouncing juga
 
  if((val1==HIGH) && (old_val1==LOW)){
    state1=1-state1;
  delay(10);
  }
  old_val1=val1;

  if (state==1)
  //(digitalRead(9)==HIGH)
{
  i++;               // tambah i satu per  satu
  while(i==5){i=0;} 
  Serial.println(i);
  digitalWrite(ledpins[i],HIGH);
  delay(200);
  digitalWrite(ledpins[i],LOW);
}

if (state1==1)
//(digitalRead(10)==HIGH)
{
  while(i==0){i=5;}
  Serial.println(i);
  i--;
  digitalWrite(ledpins[i],HIGH);
  delay(200);
  digitalWrite(ledpins[i],LOW);
}
}

Selasa, 17 November 2015

Mengendalikan Putaran Motor DC, searah jarum jam dan berlawanan arah jarum jam. [Simulation and Syntax Program]

Untuk mengendalikan sebuah motor DC agar bergerak searah jarum jam (ClockWise) dan berlawanan arah jarum jam (CounterClockWise) dapat dilakukan dengan menggunakan Arduino dan bantuan driver. Driver digunakan karena suplai arus output dan tegangan yang dihasilkan oleh Arduino tidak terlalu besar. Pada umumnya sebuah motor DC membutuhkan arus dan tegangan yang cukup tinggi, jika port output Arduino langsung dihubungkan ke motor, Arduino mungkin bisa rusak.

Pada rangkaian ini, terdapat dua tombol yang bekerja untuk mengendalikan motor DC. Ketika rangkaian ini dijalankan, motor DC dalam keadaan mati. Motor DC akan berputar jika salah satu tombol ditekan, dan jika ingin memeberhentikan motorDC tekan tombol yang sama.

Script Program:
/* Program Mengendalikan MOTOR DC
Clockwise dan Counter Clockwise
Percobaan ke empat
Driver menggunakan relay*/

// Membuat variable untuk interlock
int state=0;
int state1=0;
int val=0;
int val1=0;
int old_val=0;
int old_val1=0;

void setup()
{
  // Inisialisai Input dan Output
  pinMode(12, OUTPUT);   // Pin motor berputar clockWise
  pinMode(13, OUTPUT);   // Pin Motor berputar counter clockwise
  pinMode(11,INPUT);     // Pin untuk tombol CW
  pinMode(10,INPUT);     // Pin untuk tombol CCW
  Serial.begin (9600);
}

void loop()
{
  val=digitalRead(10);
  val1=digitalRead(11);
 
  if ((val==HIGH)&&(old_val==LOW)) {
    state1=0;
    state=1-state;
    delay(25);
    Serial.print("state=");
    Serial.println(state);
  }
  old_val=val;

  if ((val1==HIGH)&&(old_val1==LOW)){
    state=0;
    state1=1-state1;
    delay(25);
    Serial.print("state1=");
    Serial.println(state1);
  }
  old_val1=val1;
 
  // Motor berputar CCW
  if(state==1){
    digitalWrite(13,HIGH);}
    else
    {digitalWrite(13,LOW);
  }

  // Motor berputar CW
  if(state1==1){
    digitalWrite(12,HIGH);
  }
  else
    {digitalWrite(12,LOW);
}
}