SMK Binawiyata Sragen

  • This is default featured slide 1 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 2 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 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.

Membuat Control Relay dengan Atmega8

Rangkaian Kontrol Relay :

Code List :
$regfile = "m8def.dat"
$crystal = 1000000
$hwstack = 64
$swstack = 64
$framesize = 64
Config Kbd = Portb , Debounce = 150 , Delay = 200
Config Portb = Input
Config Portc = Output
Config Portd = Output
Dim A As Byte
Speaker Alias Pinc.0

Main:
Wait 1
Sound Speaker , 120 , 100
Sound Speaker , 120 , 80

Do
A = Getkbd()
A = Lookup(a , Read_key)
If A < 12 Then
Select Case A

Case 0:
Sound Speaker , 120 , 20
Goto Main0


Case 1:
Sound Speaker , 120 , 20
Goto Main1


Case 2:
Sound Speaker , 120 , 20
Goto Main2


Case 3:
Sound Speaker , 120 , 20
Goto Main3


Case 4:
Sound Speaker , 120 , 20
Goto Main4


Case 5:
Sound Speaker , 120 , 20
Goto Main5


Case 6:
Sound Speaker , 120 , 20
Goto Main6


Case 7:
Sound Speaker , 120 , 20
Goto Main7


Case 8:
Sound Speaker , 120 , 20
Goto Main8


Case 9:
Sound Speaker , 120 , 20
Goto Main9

Case 11:
Sound Speaker , 120 , 20
Goto Main11

Case 10:
Sound Speaker , 120 , 20
Goto Main10
End Select
End If
Loop
End
'_______________________________________________________________________________
Read_key:
Data 1 , 4 , 7 , 11 , 2 , 5 , 8 , 0 , 3 , 6 , 9 , 10
'_______________________________________________________________________________
Main0:
A = Getkbd()
A = Lookup(a , Read_key)
If A < 12 Then
Select Case A
Case 0 To 9:
Sound Speaker , 120 , 500
Case 11:
Portc.5 = 1
Sound Speaker , 120 , 100
Sound Speaker , 120 , 80
Sound Speaker , 120 , 60
Goto Main
Case 10:
Portc.5 = 0
Sound Speaker , 120 , 60
Sound Speaker , 120 , 80
Sound Speaker , 120 , 100
Goto Main
End Select
End If
jmp main0

Main1:
A = Getkbd()
A = Lookup(a , Read_key)
If A < 12 Then
Select Case A
Case 0 To 9:
Sound Speaker , 120 , 500
Case 11:
Portc.4 = 1
Sound Speaker , 120 , 100
Sound Speaker , 120 , 80
Sound Speaker , 120 , 60
Goto Main
Case 10:
Portc.4 = 0
Sound Speaker , 120 , 60
Sound Speaker , 120 , 80
Sound Speaker , 120 , 100
Goto Main
End Select
End If
jmp main1

Main2:
A = Getkbd()
A = Lookup(a , Read_key)
If A < 12 Then
Select Case A
Case 0 To 9:
Sound Speaker , 120 , 500
Case 11:
Portc.3 = 1
Sound Speaker , 120 , 100
Sound Speaker , 120 , 80
Sound Speaker , 120 , 60
Goto Main
Case 10:
Portc.3 = 0
Sound Speaker , 120 , 60
Sound Speaker , 120 , 80
Sound Speaker , 120 , 100
Goto Main
End Select
End If
jmp main2

Main3:
A = Getkbd()
A = Lookup(a , Read_key)
If A < 12 Then
Select Case A
Case 0 To 9:
Sound Speaker , 120 , 500
Case 11:
Portc.2 = 1
Sound Speaker , 120 , 100
Sound Speaker , 120 , 80
Sound Speaker , 120 , 60
Goto Main
Case 10:
Portc.2 = 0
Sound Speaker , 120 , 60
Sound Speaker , 120 , 80
Sound Speaker , 120 , 100
Goto Main
End Select
End If
jmp main3

Main4:
A = Getkbd()
A = Lookup(a , Read_key)
If A < 12 Then
Select Case A
Case 0 To 9:
Sound Speaker , 120 , 500
Case 11:
Portc.1 = 1
Sound Speaker , 120 , 100
Sound Speaker , 120 , 80
Sound Speaker , 120 , 60
Goto Main
Case 10:
Portc.1 = 0
Sound Speaker , 120 , 60
Sound Speaker , 120 , 80
Sound Speaker , 120 , 100
Goto Main
End Select
End If
jmp main4

Main5:
A = Getkbd()
A = Lookup(a , Read_key)
If A < 12 Then
Select Case A
Case 0 To 9:
Sound Speaker , 120 , 500
Case 11:
Portd.0 = 1
Sound Speaker , 120 , 100
Sound Speaker , 120 , 80
Sound Speaker , 120 , 60
Goto Main
Case 10:
Portd.0 = 0
Sound Speaker , 120 , 60
Sound Speaker , 120 , 80
Sound Speaker , 120 , 100
Goto Main
End Select
End If
jmp main5
'www.bargh20.com
Main6:
A = Getkbd()
A = Lookup(a , Read_key)
If A < 12 Then
Select Case A
Case 0 To 9:
Sound Speaker , 120 , 500
Case 11:
Portd.1 = 1
Sound Speaker , 120 , 100
Sound Speaker , 120 , 80
Sound Speaker , 120 , 60
Goto Main
Case 10:
Portd.1 = 0
Sound Speaker , 120 , 60
Sound Speaker , 120 , 80
Sound Speaker , 120 , 100
Goto Main
End Select
End If
jmp main6

Main7:
A = Getkbd()
A = Lookup(a , Read_key)
If A < 12 Then
Select Case A
Case 0 To 9:
Sound Speaker , 120 , 500
Case 11:
Portd.2 = 1
Sound Speaker , 120 , 100
Sound Speaker , 120 , 80
Sound Speaker , 120 , 60
Goto Main
Case 10:
Portd.2 = 0
Sound Speaker , 120 , 60
Sound Speaker , 120 , 80
Sound Speaker , 120 , 100
Goto Main
End Select
End If
jmp main7

Main8:
A = Getkbd()
A = Lookup(a , Read_key)
If A < 12 Then
Select Case A
Case 0 To 9:
Sound Speaker , 120 , 500
Case 11:
Portd.3 = 1
Sound Speaker , 120 , 100
Sound Speaker , 120 , 80
Sound Speaker , 120 , 60
Goto Main
Case 10:
Portd.3 = 0
Sound Speaker , 120 , 60
Sound Speaker , 120 , 80
Sound Speaker , 120 , 100
Goto Main
End Select
End If
jmp main8

Main9:
A = Getkbd()
A = Lookup(a , Read_key)
If A < 12 Then
Select Case A
Case 0 To 9:
Sound Speaker , 120 , 500
Case 11:
Portd.4 = 1
Sound Speaker , 120 , 100
Sound Speaker , 120 , 80
Sound Speaker , 120 , 60
Goto Main
Case 10:
Portd.4 = 0
Sound Speaker , 120 , 60
Sound Speaker , 120 , 80
Sound Speaker , 120 , 100
Goto Main
End Select
End If
jmp main9

Main11:
Wait 3
A = Getkbd()
A = Lookup(a , Read_key)
If A = 11 Then
Sound Speaker , 120 , 100
Sound Speaker , 120 , 80
Sound Speaker , 120 , 60
Portc.5 = 1
Portc.4 = 1
Portc.3 = 1
Portc.2 = 1
Portc.1 = 1
Portd.0 = 1
Portd.1 = 1
Portd.2 = 1
Portd.3 = 1
Portd.4 = 1
Goto Main
Else
Goto Main
End If

Main10:
Wait 3
A = Getkbd()
A = Lookup(a , Read_key)
If A = 10 Then
Sound Speaker , 120 , 60
Sound Speaker , 120 , 80
Sound Speaker , 120 , 100
Portc.5 = 0
Portc.4 = 0
Portc.3 = 0
Portc.2 = 0
Portc.1 = 0
Portd.0 = 0
Portd.1 = 0
Portd.2 = 0
Portd.3 = 0
Portd.4 = 0
Goto Main
Else
Goto Main
End If
Share:

Menampilkan data dari database ke Combo Box (PHP)

Combo Box, sekilas pernah mendengar istilah tersebut atau mungkin pernah menemui dan bahkan menggunakannya seperti pada form-form pendaftaran di web (Contoh Gambar 1 – sign up form pada halaman facebook), tapi apa sih sebenarnya combo box itu ?? berikut adalah pengertian dari istilah combo box (di kutip dari wikipedia) “A combo box is a commonly used graphical user interface widget (or control). It is a combination of a drop-down list or list box and a single-line textbox, allowing the user to either type a value directly into the control or choose from the list of existing options.“


Gambar 1. Contoh combo box pada form pendaftaran facebook

Selain pada aplikasi berbasis web (web based application), combo box juga dapat kita temui pada aplikasi yang dibangun dengan menggunakan bahasa program lainnya terutama pada aplikasi visual, sebut saja delphi (nama sebenarnya) atau visual basic. Pada aplikasi tersebut juga terdapat komponen combo box yang fungsi nya kurang lebih sama dengan combo box yang kita temui pada aplikasi berbasis website. Gambar 2 menunjukkan contoh komponen combo box pada program delphi.

 Gambar 2. Contoh komponen combo box pada Borland Delphi.
 
Selanjutnya kita akan membuat sebuah antar muka aplikasi berbasis web, dengan sebuah combo box yang akan menampilkan list data dari database. 

Studi Kasus :
Sebelum menginjak ke studi kasus menggunakan database, terlebih dahulu kita bahas sejenak proses pembuatan combo box dengan php, dengan list / option yang sudah kita tentukan sendiri (Tidak berasal dari database).
CODE :

<select name="pilihan">
<option value="belum milih" selected>-Silahkan Pilih makanan Kesukaan Anda-</option>
<option value="sate">Sate</option>
<option value="soto">Soto</option>
<option value="nasi goreng">Nasi Goreng</option>
<option value="nasi pecel">Nasi Pecel</option>
</select>

RESULT :
Selanjutnya kita buat combo box dengan pilihan list / option yang berasal dari database. Studi kasus : Disini saya memiliki database atau basis data anggota ludruk, kemudian kita tampilkan data anggota ludruk tersebut ke combo box pada halaman website yang akan kita buat.
Sederhana saja sih studi kasus nya, namanya juga contoh

Database Structure :
Sebagai contoh, isikan beberapa nama pada tabel anggota_ludruk, pada kolom nama
Code :
Buat koneksi ke database :
<?php
$host = "localhost"; // db host
$username = "root";  // db username
$password = "123456"; // db password
$db = "combo";  // db name

// Melakukan koneksi ke database
mysql_connect($host,$username,$password) or die("Koneksi gagal");
mysql_select_db($db) or die("Database tidak bisa dibuka");
?>
Tampil anggota ke combo :
<?php
include"koneksi.php";

echo "<select name='anggota'>";
$tampil=mysql_query("SELECT * FROM anggota_ludruk ORDER BY id");
echo "<option value='belum milih' selected>- Pilih Anggota Ludruk -</option>";

while($w=mysql_fetch_array($tampil))
{
    echo "<option value=$w[nama] selected>$w[nama]</option>";        
}
 echo "</select>";
?>
Result :
Share:

Membuat User Online Sederhana Pada Halaman Website (PHP)

Seringkali  kita menjumpai sebuah aplikasi (khususnya aplikasi web) seperti facebook, yahoo, gmail, dlsb. Dimana terdapat list atau daftar pengguna / user yang sedang online saat sesi berlangsung. Pada artikel ini, akan diulas sedikit tentang cara pembuatan aplikasi tersebut secara sederhana. Sebenarnya ada beberapa cara untuk menampilkan data user yang sedang online saat sesi sedang berlangsung, salah satunya dapat menggunakan session atau dapat juga menggunakan parameter baru (istilah saya sendiri lho). Parameter baru yang seperti apa sih ? kok seumur-umur di dunia perwebsite’an baru dengar kali ini. Yah, mungkin itu hanya sekedar istilah saja, maklum penulis mempelajari ini semua dengan cara otodidak dengan bantuan internet. Ok, Let’s start…..

Untuk memudahkan, akan saya bagi menjadi 3 bagian utama :
  1. Bagian Login, yang berfungsi untuk mengetahui siapa yang boleh mengakses aplikasi tsb, apakah user atau bukan. Disini juga akan dilakukan pencocokan user-id dan password user.
  2. Bagian User Log, Apabila berhasil melewati bagian pertama, data user akan di simpan ke dalam basis data (data yang di simpan meliputi : jam login, hari atau tanggal login, nama user, dan status login). Status login inilah yang saya istilahkan parameter baru.
  3. Bagian Penampil, Berfungsi untuk menampilkan siapa saja user yang sedang mengakses sistem (user online) mengacu pada status user.
Ok dehh, selanjutnya langsung ke proses pembuatannya :

Step 1
Buat Database dan Tabel-nya, seperti gambar berikut (hanya contoh) :
Database Name : user_online ; Tabel Name : user & log

Gambar 1. Struktur Tabel user

Gambar 2. Struktur Tabel log
Step 2
Proses pembuatan Halaman Login / Login Page (index.php)


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<script language="javascript">
function validasi(form){
if (form.username.value == ""){
alert("Anda belum mengisikan Username.");
form.username.focus();
return (false);
}

if (form.password.value == ""){
alert("Anda belum mengisikan Password.");
form.password.focus();
return (false);
}
return (true);
}
</script>

<meta http-equiv="content-type" content="text/html;charset=UTF-8">
<head>
<title>LOGIN</title>
</head>
<body>
<form name="login" action="cek_login.php" method="POST" onSubmit="return validasi(this)">

<br /><br /><br /><br />
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><div align="center">
<table cellpadding="0" cellspacing="0">
<tr>
<td height="25">Username :</td>
<td> &nbsp;&nbsp;
<input type="text" name="username"  /></td></tr>
<tr><td height="30">Password :</td>
<td> &nbsp;&nbsp;
<input type="password" name="password" /></td></tr>

<tr><td colspan="2"><div align="right">
<input name="submit"  type="submit" value="LOGIN" /></div></td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</form>

</body>
</html>
Step 3
Membuat koneksi ke database (koneksi.php)
Source Code :

<?php
// -- Host, Username dan Password Database
$host = "localhost";//db-host
$username = "root";//db-user
$password = "123456";//db-password
$db = "user_online";//db-name

// Melakukan koneksi ke database
mysql_connect($host,$username,$password) or die("Koneksi gagal");
mysql_select_db($db) or die("Database tidak bisa dibuka");
?>
Step 4

Proses Validasi / Pencocokan data user & password ke Database (cek_login.php)

Source Code :
<?php
include "koneksi.php";
function antiinjection($data){
$filter_sql = mysql_real_escape_string(stripslashes(strip_tags(htmlspecialchars($data,ENT_QUOTES))));
return $filter_sql;
}

$username = antiinjection($_POST[username]);
$pass     = antiinjection($_POST[password]);

$login=mysql_query("SELECT * FROM user WHERE username='$username' AND password='$pass'");
$ketemu=mysql_num_rows($login);
$r=mysql_fetch_array($login);

// Apabila username dan password ditemukan
if ($ketemu > 0)
{
session_start();
session_register("username");
session_register("password");

$_SESSION[username]     = $r[username];
$_SESSION[password]     = $r[password];

$jam = date("H:i:s");
$tgl = date("Y-m-d");

mysql_query("INSERT INTO log(username,
tanggal,
jamin,
jamout,
status)
VALUES('$_SESSION[username]',
'$tgl',
'$jam',
'logged',
'online')");

header('location:home.php');
}
else
{
echo "<center><br><br><br><br><br><br><b>LOGIN GAGAL! </b><br>
Username atau Password Anda tidak benar.<br>";
echo "<br>";
echo "<input type=button value='ULANGI LAGI' onclick=location.href='index.php'></a></center>";

}
?>

Step 5

Proses selanjutnya bila login berhasil (home.php)
Source Code :

<?php
include "koneksi.php";
session_start();
if (empty($_SESSION[username]) AND empty($_SESSION[password]))
{
header('location:index.php');
}
else
{
?>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>HOME</title>
<style>
th{
color: #FFFFFF;
font-size: 8pt;
text-transform: uppercase;
text-align: center;
padding: 0.1em;
border-width: 1px;
border-style: solid;
border-color: #969BA5;
border-collapse: collapse;
background-color: #265180;
}
</style>
</head>
<body>                  
<?php                 
echo"
<center>USER ONLINE
<table border=1 width='650' align=center>
<tr><th>No</th><th>Username</th><th>Tanggal Login</th><th>Jam Login</th><th>Jam Logout</th><th>Status</th></tr>";
$sql = mysql_query("SELECT * FROM log ORDER BY no DESC");    
$no=1;
while($d=mysql_fetch_array($sql))
{
echo "<tr><td align=center>$no</td>
<td align=center>$d[username]</td>
<td align=center>$d[tanggal]</td>
<td align=center>$d[jamin]</td>
<td align=center>$d[jamout]</td>";
if($d[status]=='offline')
{
echo"<td style='background-color:red' align=center>OFFLINE</td>";
}      
else
{
echo"<td style='background-color:00ff00' align=center>ONLINE</td>";
}                            
echo"</tr>";
$no++;      
}
echo "</table>";    
echo "<br /><br /><input type=button value='LOGOUT' onclick=location.href='logout.php'></a></center>";    
?>             
</body>
</html>
<?php
}
?>

Step 6

Proses keluar / Logout (logout.php)

Source Code :
<?php
include "koneksi.php";
$jam = date("H:i:s");
session_start();                        
mysql_query("UPDATE log SET jamout='$jam',
status='offline'
WHERE username = '$_SESSION[username]' AND jamout='logged' AND status='online'");
session_destroy();
header('location:index.php');
?>
Tamat ¦..

Pada aplikasi diatas masih memiliki beberapa kekurangan, mohon koreksi dari kawan-kawan dan para pembaca yang budiman. Saran kedepannya untuk user online ini akan lebih baik lagi apabila dipadukan dengan AJAX, sehingga user yang baru melakukan proses login dapat diketahui langsung tanpa me-reload atau me-refresh halaman website tersebut.
Share:

Bilingual Website (PHP & MySQL)

Pernahkah teman-teman memanfaatkan fasilitas / tools google translate ? Pasti rata-rata menjawab “Pernah”. Tetapi yang saya maksud disini adalah tools google yang berfungsi untuk menterjemahkan halaman web yang banyak kita temui pada website atau blog pada umumnya, yang menyediakan banyak pilihan bahasa (Multi Language) pada website tersebut. Umumnya berupa widget yang disediakan oleh mbah google untuk selanjutnya dipasang pada halaman webiste atau blog kita (lihat gambar 1). Nah, udah tau kan sekarang ? trus apa hubungannya sama judul artikel diatas ? kan judulnya cuma bilingual alias 2 bahasa, kalau pakai widget google translate kan bisa bermacam-macam bahasa. Kalau sudah begitu ya kembali ke kebutuhan saja, tergantung keinginan si pemilik web tersebut. Tetapi terkadang dengan pemanfaatan widget multi bahasa tersebut memiliki kekurangan, salah satunya adalah beberapa hasil translation yang kurang sesuai sehingga informasi yang akan ditampilkan menjadi kurang relevan. Pada web-web papan atas yang dibangun secara profesional, ternyata jarang kita temui widget multi bahasa tersebut. Mereka lebih cenderung menggunakan translation atau terjemahan yang berasal dari basis data (database) mereka sendiri.

Gambar 1. Widget Google Translate

Diartikel edisi ini saya hanya ingin sekedar share tentang pembuatan website dwi bahasa tersebut. Sebenarnya tidak harus dwi bahasa sih, cm sebagai contoh aja biar ga banyak-banyak bikinnya. Mau pake multi bahasa juga gpp, sama aja prosesnya. Tetapi disini saya memberi contoh yang sangat sederhana sekali lho, mungkin kalau kita terapkan pada website yang komplek tentu kurang effisien. Yaaaah, namanya mencoba kan ga ada salahnya daripada tidak sama sekali.

Ok, kita mulai saja daripada banyak bicara kayak koruptor….hehehe..

Biar beda ama bahasa-bahasa yang tersedia di widget nya si-mbah google, kali ini kita akan membuat sebuah halaman website sederhana dimana terdapat 2 pilihan bahasa yang tersedia, yaitu : Bahasa Indonesia dan Bahasa Jawa. Demonya bisa kawan lihat pada tautan berikut :


Source Code :

<?php
  session_register('bahasa');
  include "koneksi.php";  

  if($_GET['lang'])
  {
    $_SESSION['bahasa']=$_GET['lang'];
    header('location:index.php');
  }
  else
  {
     if(!$_SESSION['bahasa'])
     {
     $_SESSION['bahasa']='indonesia';
     header('location:index.php');
     }
   }

include "".$_SESSION['bahasa'].".php";
?>


Source code diatas merupakan bagian inti yang berfungsi untuk SWITCHING. Hah?? istilah apa lagi tuh ??? itu istilah saya sendiri alias ngawur.com. hahahaha…. Tetapi pada intinya code diatas berfungsi untuk proses peralihan dari bahasa satu ke bahasa lainnya dengan memanfaatkan session.

Ok, dech ga perlu panjang lebar langsung aja download Full Source Code nya Di SINI

Soalnya kalo Sorce nya di tulis semua disini jadi panjang dehhh artikel nya….hahahaha

-Selesai-
Share:

Widget Setup for Blogger

Step 1.
Get your widget code

Go to your Blog's profile on NetworkedBlogs, click the "Get Widget" link. Copy the text in for Option 1.
Screen_shot_2012-01-16_at_5.43.46_PM.png

Step 2.
Navigate to Layout > Page Elements, then click "Add a Gadget"

help_blogger2.png

Step 3.
From the pop-up list, select "HTML/Javascript"

help_blogger3.png

Step 4.
Paste the HTML code you copied from NetworkedBlogs into the text area and click save. 

help_blogger4.png

Step 5.
You're done. You can now verify your blog

Go to your Blog's profile on NetworkedBlogs, click the "Get Widget" link, then press the Verify button.

http://infonetmu.blogspot.com/2011/02/download-kamus-indonesia-inggrisinggris.html
Share:

Stop Watch dengan Atmega32

Rangkaian :
Code List :
'Program Stopwatch
$regfile = "m32def.dat"
$crystal = 12000000

'deklarasi LCD
Config Lcdpin = Pin , Db4 = Portc.5 , Db5 = Portc.4 , Db6 = Portc.3 , Db7 = Portc.2 , E = Portc.6 , Rs = Portc.7
Config Lcd = 16 * 2
Cursor Off
Cls

'Deklarasi variabel
Dim Pengali As Word
Dim Detik_1 As Byte
Dim Detik As Byte
Dim Menit As Byte
Dim Jam As Word
Dim Status As Byte
Dim Status2 As Byte
Dim Status3 As Byte

'konfigurasi timer
Config Timer0 = Timer , Prescale = 256
Config Debounce = 30
'setting porta
Ddra = 0
Porta = 255

'pengaktifan interupsi timer
On Ovf0 Int_timer0

'penggantian nama variabel
Pin_reset Alias Pina.2
Pin_on_off Alias Pina.1
Pin_capture Alias Pina.0

'setting nilai awal variabel
'Pin_reset = 1
'Pin_on_off = 1
'Pin_capture = 1
Status = 0
Status2 = 1


'pengaktifan timer0
Enable Timer0

Do
 If Pin_capture = 0 Then
   Bitwait Pin_capture , Set
   Incr Status2
   Cls
   Locate 1 , 1
   Lcd "BINA ELEKTRONIK"
   Locate 2 , 1
   Lcd Jam ;
   Locate 2 , 3
   Lcd ":" ;
   Locate 2 , 4
   Lcd Menit ;
   Locate 2 , 6
   Lcd ":" ;
   Locate 2 , 7
   Lcd Detik ;
   Locate 2 , 9
   Lcd ":" ;
   Locate 2 , 10
   Lcd Detik_1 ;
   Locate 2 , 12
   Lcd Capture1
 End If
 If Status2 = 2 Then
   Locate 2 , 13
   Lcd "SLIP"
   End If
If Status2 = 2 Then
   Locate 2 , 11
   Lcd "       "
   End If
 If Pin_on_off = 0 Then
   Bitwait Pin_on_off , Set
   Incr Status

 End If

 If Pin_reset = 0 Then
      Pengali = 0
      Detik_1 = 00
      Locate 2 , 1
      Lcd "00"
      Locate 2 , 4
      Lcd "00"
      Locate 2 , 7
      Lcd "00"
      Locate 2 , 10
      Lcd "00"
      Detik = 00
      Menit = 00
      Jam = 00
 End If


 If Status > 2 Then
   Status = 1
 End If

 If Status2 > 2 Then
   Status2 = 1
   Cls
 End If

 If Status = 1 Then Enable Interrupts
 If Status = 2 Then Disable Interrupts

 If Status2 < 2 Then
   Locate 1 , 1
   Lcd "STOPWATCH"
   Locate 2 , 1
   Lcd Jam ;
   Locate 2 , 3
   Lcd ":" ;
   Locate 2 , 4
   Lcd Menit ;
   Locate 2 , 6
   Lcd ":" ;
   Locate 2 , 7
   Lcd Detik ;
   Locate 2 , 9
   Lcd ":" ;
   Locate 2 , 10
   Lcd Detik_1 ;
   End If
 If Status = 2 Then                                         ' tambahan
   Locate 2 , 13                                            ' tambahan
   Lcd "STOP"                                               ' tambahan
   End If                                                   ' tambahan
 If Status = 1 Then                                         ' tambahan
   Locate 2 , 13                                            ' tambahan
   Lcd ">>>>"                                               ' tambahan
 End If



Loop

Int_timer0:
   Incr Pengali
   If Pengali > 0 Then
      Pengali = 0
      Incr Detik_1
   End If
   If Detik_1 > 99 Then
      Detik_1 = 0
      Incr Detik
   End If
   If Detik > 59 Then
      Detik = 0
      Incr Menit
   End If
   If Menit > 59 Then
      Menit = 0
      Incr Jam
   End If
   Return
Share:

Pengendali motor stepper dengan keypad

Rangkaian ;

Code List :

$regfile = "m16def.dat"
$crystal = 1000000

Config Kbd = Portb
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 ,Rs = Portc.0 , E = Portc.1
Config Portd = Output
Config Porta = Input

Dim A As Byte , B As Byte , Key As Byte , C As Byte , D As Byte , E As Byte

Cls
Cursor Off

B = 0
D = 1

Q:
Locate 1 , 1
Lcd "Putaran :"
Locate 2 , 1
Lcd "Kecept  :"
Do
'************Read Keyboard
A = Getkbd()
If A > 15 Then
   Goto Q
Else
   Key = Lookup(a , Dta)
     If Key <= 9 Then
           B = B * 10
           B = B + Key
'*************Direction
          If D = 0 Then Lcd B
                   Waitms 270
               Elseif Key = 10 Then
                   Locate 1 , 11
                   Lcd "Kiri"
                   C = 1
                   D = 0
                   B = 0

               Elseif Key = 11 Then
                  Locate 1 , 11
                  Lcd "Kanan"
                  C = 2
                  D = 0
                  B = 0
'****************reset
               Elseif Key = 13 Then
                  Cls
                  D = 1
                  B = 0
                  Portd.0 = 0
                  Portd.1 = 0
                  Waitms 50
                  Goto Q
'****************Enter key
               Elseif Key = 14 Then
                   If D = 0 Then
                       Select Case C
                          Case 1 : Gosub R
                          Case 2 : Gosub T
                       End Select

                   End If
         End If

End If

Wait 1

Loop

End

Dta:
Data 7 , 8 , 9 , 10 , 4 , 5 , 6 , 11 , 1 , 2 , 3 , 12 , 13 , 0 , 14 , 15

R:
Do
Portd = &B00000001 : Waitms B
Portd = &B00000011 : Waitms B
Portd = &B00000010 : Waitms B
Portd = &B00000110 : Waitms B
Portd = &B00000100 : Waitms B
Portd = &B00001100 : Waitms B
Portd = &B00001000 : Waitms B
Portd = &B00001001 : Waitms B
  If Pina.0 = 1 Then
      Locate 2 , 1
      Lcd "Kecept:"
      B = 0
      Lcd B ; "          "
      Return
  End If

Loop

T:
Do
Portd = &B00001001 : Waitms B
Portd = &B00001000 : Waitms B
Portd = &B00001100 : Waitms B
Portd = &B00000100 : Waitms B
Portd = &B00000110 : Waitms B
Portd = &B00000010 : Waitms B
Portd = &B00000011 : Waitms B
Portd = &B00000001 : Waitms B
   If Pina.0 = 1 Then
       Locate 2 , 1
       Lcd "Kecept:"
       B = 0
       Lcd B ; "          "
       Return
   End If

Loop
Share:

Program menampilkan penekanan tombol dengan display led

Rangkaian :



Code List :
'===================================================
'Program Saklar_1.bas
'Program untuk menampilkan kondisi saklar pada LED
'===================================================
Saklar Alias P2
Led Alias P0
Do
If Saklar = &HFF Then
Led = &HFF
Elseif Saklar = &HFE Then
Led = &HAA
Else
Led = 0
End If
Loop
End
Share:

Counter Up 00 - 99

Skemantik Counter Up 00-99



Souce Codenya :
'****************************************************************
'*  Name    : 59sec_Counter.BAS                                 *
'*  Author  : Likno                                             *
'*  Date    : 25.03.2012                                        *
'*  Version : 1.0.1                                             *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
@ Device Xt_osc , Wdt_off , Pwrt_on , Protect_off

Display Var Word
Counter Var Byte
Doonce Var Bit
Pbup Var Porta.0
Pbdn Var Porta.1

Trisa = 011
Trisb = 000000
Porta = 0
Portb = 0

Doonce = 0
Counter = 0

Hours Var Byte                                             
Minutes Var Byte                                           
Seconds Var Byte                                          
Ticks Var Byte                                             
U_flag Var Byte                                           
T0ie Var Intcon.5                                         
T0if Var Intcon.2                                        
Gie Var Intcon.7                                           
Ps0 Var Option_reg.0                                      
Ps1 Var Option_reg.1                                     
Ps2 Var Option_reg.2                                      
Psa Var Option_reg.3                                     
        ' (0= assigned to oscillator)
T0cs Var Option_reg.5                                     
        ' (1=External PORTA.4)
 Hours = 0                                                 
 Minutes = 0
 Seconds = 0
 Ticks = 0
 U_flag = 1                                               


Gie = 0                                                    
While Gie = 1 : Gie = 0 : Wend                             
Psa = 0                                                 
Ps0 = 1                                                   
Ps1 = 0                                                   
Ps2 = 1                                                    
T0cs = 0                                                   
Tmr0 = 0                                                   
T0ie = 1                                                   
Gie = 1                                                    

On Interrupt Goto Clock_int                                

Main:

    If U_flag = 1 Then                                     
        U_flag = 0                                      
        Counter = Seconds
        Display.byte0 =(counter Dig 1) << 4
        Display.byte1 =(counter Dig 0)
        Display = Display >> 4
        Portb = Display.byte0
    End If

Goto Main



Disable                                                    
Clock_int:
 Ticks = Ticks + 1                                         
 If Ticks <= 61 Then Clock_exit                            

' One second has elasped so update the time variables
 Ticks = 0                                                 
 Seconds = Seconds + 1                                     
 If Seconds >= 60 Then                                     
 Seconds = 0                                               
 Minutes = Minutes + 1                                     
 If Minutes >= 60 Then                                     
 Minutes = 0                                               
 Hours = Hours + 1                                         
 If Hours >= 23 Then                                       
 Hours = 0                                                 
 End If
 End If
 End If
 U_flag = 1                                                

Clock_exit:
 T0if = 0                                                  
Resume                                                     
Enable                                                     

End
Share:

Pengaturan Kecepatan Motor DC Dengan Mikrokontroler dengan BASCOM AVR

Penggunaan motor DC dewasa ini sudah sangatlah umum, salah satu kelebihan motor DC adalah relatif gampang didapat dan mudah diatur kecepatan putarnya. Secara umum pengaturan kecepatan motor DC adalah dengan menggunakan cara analog. Pada artikel kali ini akan dibahas contoh cara mengatur kecepatan motor DC dengan menggunakan mikrokontroller.
Mikrokontroler yang digunakan adalah Tipe AVR dari Atmel seperti mikrokontroler Atmega 8535, 16, 32. Informasi kecepatan motor akan ditampilkan pada modul LCD HD4480. Sedangkan sebagai driver motor menggunakan modul driver motor IC L298.
Cara pengaturan kecepatan yang digunakan adalah dengan menggunakan teknik PWM (Pulse Width Modulation), salah satu teknik untuk mengatur kecepatan motor DC yang umum digunakan. Dengan menggunakan PWM kita dapat mengatur kecepatan yang diinginkan dengan mudah. Teknik PWM untuk pengaturan kecepatan motor adalah, pengaturan kecepatan motor dengan cara merubah-rubah besarnya duty cycle pulsa. Pulsa yang yang berubah ubah duty cycle-nya inilah yang menentukan kecepatan motor. Besarnya amplitudo dan frekuensi pulsa adalah tetap, sedangkan besarnya duty cycle berubah-ubah sesuai dengan kecepatan yang diinginkan, semakin besar duty cylce maka semakin cepat pula kecepatan motor, dan sebaliknya semakin kecil duty cycle maka semakin pelan pula kecepatan motor. Sebagai contoh bentuk pulsa yang dikirimkan adalah seperti pada gambar 1, pulsa kotak dengan duty cycle pulsa 50%. Sedangkan sebagai contoh bentuk pulsa PWM adalah seperti pada gambar 2.
Seperti pada gambar 1, semakin besar duty cycle pulsa kotak, maka semakin lama pula posisi logika high. Jika motor diatur agar berjalan ketika diberi logika high, maka jika memberi pulsa seperti pada gambar 1 diatas, maka motor akan berada pada kondisi “nyala-mati-nyala-mati” sesuai dengan bentuk pulsa tersesebut. Semakin lama motor berada pada kondisi “nyala” maka semakin cepat pula kecepatan motor tersebut. Motor akan berputar dengan kecepatan maksimum jika mendapat pulsa dengan duty cycle 100%. Dengan kata lain motor mendapat logika high terus menerus.
Dengan mengatur besarnya duty cycle pulsa kotak yang dikirimkan, kita dapat mengatur banyaknya logika high yang diberikan pada motor, dengan kata lain mengatur lamanya waktu motor untuk berputar dalam satu periode pulsa. Jika lamanya waktu motor untuk berputar dalam satu periode pulsa ini berubah maka kecepatan purtaran motor juga akan berubah, sesuai dengan duty cycle atau waktu motor untuk berputar dalam satu periode pulsa.
===============================================================
PENGATURAN KECEPATAN MOTOR DC Berbasis Atmega8535
Skema dengan proteus:

Hasil simulasi dengan proteus:

Program Pengaturan Kecepatan Motor DC dengan Bascom AVR

1 $regfile = “m8535.dat”   ’menggunakan Atmega8535 sebagai preprosesor
  2 $crystal = 12000000      ’menggunakan crystal clock 12 MHz
  3 $eeprom                  'menggunakan fasilitas eeprom Atmega8535
  4
  5 ‘—————————inisialisasi lcd————————————
  6
  7 Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.2 , Rs = Portc.0
  8 Config Lcd = 16 * 2 : Cursor Off
  9
 10 ‘—————————inisialisasi pwm———————————–
 11
 12 Config Timer1 = Pwm , Pwm = 10 , Prescale = 64 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up       ‘pwm dengan settingan fast pwm 10 bit
 13
 14 ‘—————————inisialisasi port——————————–
 15
 16 ‘inisialisasi tombol
 17 Config Portb = Input
 18
 19 ‘—————————pull up internal——————————–
 20
 21 Portb.0 = 1
 22 Portb.1 = 1
 23 Portb.2 = 1
 24 Portb.3 = 1
 25 Config Portd = Output
 26alias logika motor
 27 M1a Alias Portd.0
 28 M1b Alias Portd.1
 29 M2a Alias Portd.2
 30 M2b Alias Portd.3
 31
 32 ‘——————————alias——————————————–
 33
 34alias tombol
 35 Sw_ok Alias Pinb.3
 36 Sw_cancel Alias Pinb.2
 37 Sw_down Alias Pinb.1
 38 Sw_up Alias Pinb.0
 39
 40 ‘——————————————————————————-
 41
 42 Dim Pwm As Integer
 43 Dim Pwm_eprom As Eram Integer
 44 Home
 45 Lcd “Fahmizal_dte2006″
 46 Lowerline
 47 Lcd “Cek fungsi PWM”
 48 Wait 1
 49
 50 Do
 51 Pwm = Pwm_eprom
 52 If Sw_up = 0 Then : Incr Pwm : Waitms 10
 53 End If
 54 If Sw_down = 0 Then : Decr Pwm : Waitms 10
 55 End If
 56 If Pwm > 1023 Then : Pwm = 0 : Waitms 10
 57 End If
 58 If Pwm < 0 Then : Pwm = 1023 : Waitms 10
 59 End If
 60 Pwm_eprom = Pwm
 61 Cls
 62
 63 Home
 64 Lcd “tes uji pwm”
 65 Lowerline
 66 Reset M1a
 67 Reset M2a
 68 Set M1b
 69 Set M2b
 70 Pwm1a = Pwm
 71 Pwm1b = Pwm
 72 Lcd “nilai pwm:” ; Pwm1a : Waitms 100
 73 Loop
 74 End
Share:

Jadwal Waktu Sholat

TIME WIB

TV EDUKASI LIVE

Popular Posts

Recent Posts

Pages