Saturday, March 26, 2011

Vibration Sensor using Piezoelectric on Arduino (Sensor Getar dengan Piezoelectric pd Arduino)

Piezoelectric adalah komponen yang dapat menghasilkan tegangan listrik sebagai respon dari suatu perubahan tekanan mekanik. Dalam proyek ini Piezoelectric digunakan sebagai sensor tekanan mekanik (yang diperoleh dari getaran) dan hasil keluarannya yang berupa tegangan listrik dibaca melalui input analog arduino dan hasilnya dikirim ke komputer melalui serial RS-232, pada komputer data-data ini ditampilkan dalam bentuk grafik sinyal.

Video Demo

Skema rangkaian
 List Program (Arduino)
// Program Deteksi getar dengan Piezoelectric
// Oleh : Aan Darmawan
// valfa.blogspot.com
// maret 2011

/* Keterangan skema:
 * Sambungkan Output Piezo ke pin A0 (Analog input pin 0) Arduino
 * Pin 8 output ke relay , jika nilai getaran mencapai 800, Relay ON
 */

// deklarasi variabel
int mgetar;
int getarPin = 0;

void setup() {
  pinMode(8,OUTPUT);
  // aktifkan serial port
  Serial.begin(9600);
}

void loop() {
  // baca getaran dari A0
  mgetar =analogRead(getarPin);
  //kirim ke serial
  Serial.println(mgetar);
  if(mgetar>=800) //jika getaran cukup keras
  {
    digitalWrite(8,HIGH); // aktifkan relay
    delay(2000); // delay 2 detik
  }
  else digitalWrite(8,LOW);
  delay(30); // berhenti beberapa milidetik
 
List Program Visual Basic 6
 
 
Public x1, y1, x2, y2 As Integer
Private Sub Command1_Click()
  If Command1.Caption = "START" Then
    MSComm1.PortOpen = True
    Timer1.Enabled = True
    Command1.Caption = "STOP"
  Else
    MSComm1.PortOpen = False
    Timer1.Enabled = False
    Command1.Caption = "START"
  End If
  
End Sub

Private Sub Form_Load()
  Timer1.Enabled = False
Timer1.Interval = 30
  x1 = 2
  y1 = 450
  x2 = 2
  y2 = 450
End Sub

Private Sub Form_Paint()
  Form1.DrawWidth = 2
  Form1.PSet (x1, y1), RGB(255, 0, 0)
  Form1.Line (1, 70)-(1, 452), RGB(255, 0, 0)
  Form1.Line (1, 452)-(620, 452), RGB(255, 0, 0)
  For i = 6 To 616 Step 10
    Form1.Line (i, 450)-(i, 455), RGB(255, 0, 0)
  Next i
  For i = 452 To 72 Step -10
    Form1.Line (0, i)-(5, i), RGB(255, 0, 0)
  Next i
  Form1.PSet (x1, y1), RGB(0, 0, 255)
End Sub

Private Sub Timer1_Timer()
  hasil = MSComm1.Input
  If Len(hasil) > 0 Then
    n = Val(hasil)
    If n > 50 Then n = n / 2.273 Else If n > 5 Then n = n * 2
    Text1.Text = n
    y2 = 450 - n
    If y2 <= 186 Then
      y2 = 186
      Form1.Line (x1, y1)-(x2, y2), RGB(255, 0, 0)
    Else
      Form1.Line (x1, y1)-(x2, y2), RGB(0, 0, 255)
    End If
    x1 = x2
    y1 = y2
    x2 = x2 + 1
    If x2 >= 620 Then
      x1 = 2
      x2 = 2
      Form1.Cls
      Form1.PSet (x1, y1), RGB(255, 0, 0)
      Form1.Line (1, 70)-(1, 452), RGB(255, 0, 0)
      Form1.Line (1, 452)-(620, 452), RGB(255, 0, 0)
      For i = 6 To 616 Step 10
        Form1.Line (i, 450)-(i, 455), RGB(255, 0, 0)
      Next i
      For i = 452 To 72 Step -10
        Form1.Line (0, i)-(5, i), RGB(255, 0, 0)
      Next i
      Form1.PSet (x1, y1), RGB(0, 0, 255)
    End If
  End If
End Sub

Friday, March 18, 2011

Temperature Sensor using LM35 and LCD Display on Arduino (Sensor suhu dengan LM35 dan LCD Display pada Arduino)

LM35 adalah IC sensor suhu yang presisi, keluarannya berupa tegangan yang proposional linier terhadap perubahan suhu dalam derajat Celsius. Dalam video ini memperlihatkan aplikasi sensor suhu IC LM35 untuk mengatur Nyala/Padam Kipas, hasil pengukuran dari sensor suhu ditampilkan pada LCD Display 16x2. Jika suhu lebih besar sama dengan 30 derajat Celsius Kipas akan nyala, sebaliknya apabila suhu lebih kecil dari 30 derajat Celsius kipas akan padam.

Demo Video hasil:




Skema Rangkaian:



List Program:

/* Keterangan skema:
 * Sambungkan LCD RS pin ke pin 12 Arduino
 * Sambungkan LCD enable pin ke pin 11 Arduino
 * Sambungkan LCD pins D4 s.d D7 ke pin 5 s.d 2 Arduino
 * Sambungkan LCD +5 dan ground ke pin +5V dan ground Arduino
 * Sambungkan LCD Vo pin ke potensiometer. Guna potensiometer ini adalah untuk mengatur kontras LCD
 * Sambungkan IC LM35 bagian output (Kaki tengah) ke pin A0 (Analog input pin 0) Arduino
 * Pin 13 arduino sebagai output, jika temp >=30 derajat Pin 13 logik 1 
 */

// Program demo LCD

// Gunakan library LCD
#include "LiquidCrystal.h";

// Inisialisasi LCD dan menentukan pin yang dipakai
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
// deklarasi variabel
float tempC;
int tempPin = 0;

void setup() {
  pinMode(13,OUTPUT);
  // Serial.begin(9600);
  // Set jumlah kolom dan baris LCD
  lcd.begin(16, 2);
  // Tulis Temperatur di LCD
  lcd.print("Temperatur:");
}

void loop() {
  // Set cursor ke kolom 0 dan baris 1
  // Catatan: Baris dan kolom diawali dengan 0
  lcd.setCursor(0, 1);
  // baca data dari sensor
  tempC = analogRead(tempPin);
  // konversi analog ke suhu
  tempC = (5.0 * tempC * 100.0)/1024.0;
  // tampilkan ke LCD
  lcd.print(tempC);
  // Serial.println(tempC);
  if(tempC>=30) //jika temperatur >=30 derajat
    digitalWrite(13,HIGH);
  else digitalWrite(13,LOW);
  delay(2000); // berhenti 2 detik untuk menunggu perubahan temperatur
 
 
 
Perlu income tambahan ? coba masuk sini