Diklat Mikrontroler

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.

itung nilai hambatan resistor karena bendanya kecil maka dibuat kode warna, sebab jika ditulis di badannya sulit untuk dibaca !

Diklat Media Pembelajaran dg Komputer

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.

Modul Belajar PLC

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.

Modul Belajar Mikrokontroler

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.

Selasa, 01 Januari 2013

Jam Digital LCD tampilan Jumbo

Rangkaian Simulator dg Proteus :




Code List : ( Bascom AVR )
 '-------------------------------------------------------------------
'Title Block
'Author: Suparnom .Pd
'Date :  Dec 2011
'File name: BigDigitTest.V3
'-------------------------------------------------------------------
$crystal = 8000000                                          'speed of processing
$regfile = "m8535.dat"                                      'our micro
'------------------------------------------------------------------
'setup/configure hardware
Config Porta = Input
Config Portb = Input                                        'switches connected here
Config Pina.4 = Output                                      'backlight


'bascom internal features and functions to make a clock in software

'requires 32,768 Hz crystal on PortC.6 and PortC.7
Config Date = Dmy , Separator = /
Config Clock = Soft , Gosub = Sectic                        'with 1 second interrupt configured
Enable Interrupts                                           'starts the clock

'setup connection of LCD to micro
Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0
Config Lcd = 20 * 4

'these characters are used to build the bigdigits
Deflcdchar 1 , 32 , 32 , 32 , 1 , 3 , 7 , 15 , 31
Deflcdchar 4 , 31 , 15 , 7 , 3 , 1 , 32 , 32 , 32
Deflcdchar 2 , 32 , 32 , 31 , 31 , 31 , 31 , 31 , 31
Deflcdchar 3 , 32 , 32 , 32 , 16 , 24 , 28 , 30 , 31
Deflcdchar 5 , 31 , 31 , 31 , 31 , 31 , 32 , 32 , 32        ' replace [x] with number (0-7)
'Deflcdchar 5 , 1 , 3 , 7 , 15 , 31 , 32 , 32 , 32
Deflcdchar 6 , 31 , 31 , 31 , 31 , 31 , 32 , 32 , 32
Deflcdchar 7 , 1 , 3 , 7 , 15 , 31 , 31 , 31 , 31
Deflcdchar 0 , 31 , 30 , 28 , 24 , 16 , 32 , 32 , 32

'  Harware Aliases
Lcdbacklight Alias Porta.4
Piezo Alias Portb.0

Yel_btn Alias Pinb.3
Red_btn Alias Pinb.4
Blu_btn Alias Pinb.5
Blk_btn Alias Pinb.6
White_btn Alias Pinb.7

'8. initialise hardware
Cls                                                         'Clears screen
Cursor Off                                                  'no cursor to be displayed on lcd
Set Lcdbacklight                                            'turn on LCD backlight

'------------------------------------------------------------------
' Declare Constants
Const Delay_time = 100
'------------------------------------------------------------------
' Declare Variables

Dim Digitpos As Byte
Dim Seccount As Word
Dim I As Byte

' Initialise Variables
Date$ = "22/07/10"                                          'preset time on powerup
Time$ = "13:10:00"
Digitpos = 1
'------------------------------------------------------------------
' 12. Program starts here
Do
    Digitpos = 1
    For I = 0 To 9
        Gosub Show_bigtime                                  'Show_bigdigit
        Waitms 100
    Next
    Gosub Show_smalltime
    Wait 1
    Gosub Show_bigtime
    Wait 1
Loop
'------------------------------------------------------------------
' Subroutines
Show_smalltime:                                             'Display time in small digits so that title
   Locate 2 , 4                                             'and the time can fit in to the lcd.
   Lcd "Time: "
   Lcd Time$ ; ""
Return

Show_bigtime:
   'find the digit in the tens of hours position
   I = _hour / 10                                           'e.g. 19/10 = 1 (byte arithmentic!!)
   Digitpos = 1
   Gosub Show_bigdigit
   'find the digit in the units of hours position
   I = _hour Mod 10                                         'e,g. 19mod10 = 9 (finds remainder)
   Digitpos = 5
   Gosub Show_bigdigit

   Locate 2 , 9
   Lcd Chr(5)
   Locate 3 , 9
   Lcd Chr(2)
   'find the digit in the tens of minutes position
   I = _min / 10                                            'e.g. 21/10 = 2 (byte arithmentic!!)
   Digitpos = 11
   Gosub Show_bigdigit
   'find the digit in the units of minutes position
   I = _min Mod 10                                          'e.g 21mod10 = 1 (finds remainder)
   Digitpos = 15
   Gosub Show_bigdigit
   'display the seconds in the bottom corner of the display
   Locate 4 , 19
   If _sec < 10 Then Lcd "0"
   Lcd _sec
Return
Show_bigdigit:
   If I = 0 Then Gosub Disp0
   If I = 1 Then Gosub Disp1
   If I = 2 Then Gosub Disp2
   If I = 3 Then Gosub Disp3
   If I = 4 Then Gosub Disp4
   If I = 5 Then Gosub Disp5
   If I = 6 Then Gosub Disp6
   If I = 7 Then Gosub Disp7
   If I = 8 Then Gosub Disp8
   If I = 9 Then Gosub Disp9
Return

Disp0:
    'line 1
    Locate 1 , Digitpos
    Lcd Chr(1)
    Lcd Chr(2)
    Lcd Chr(3)
    'line 2
    Locate 2 , Digitpos
    Lcd Chr(255)
    Lcd " "
    Lcd Chr(255)
    'line 3
    Locate 3 , Digitpos
    Lcd Chr(255)
    Lcd " "
    Lcd Chr(255)
    'line 4
        Locate 4 , Digitpos
    Lcd Chr(4)
    Lcd Chr(6)
    Lcd Chr(0)

Return

Disp1:
   'line 1
   Locate 1 , Digitpos
   Lcd " "
   Lcd Chr(1)
   Lcd " "
   'line 2
   Locate 2 , Digitpos
   Lcd Chr(5)
   Lcd Chr(255)
   Lcd " "
   'line 3
   Locate 3 , Digitpos
   Lcd " "
   Lcd Chr(255)
   Lcd " "
   'line 4
   Locate 4 , Digitpos
   Lcd Chr(6)
      Lcd Chr(6)
   Lcd Chr(6)
Return


Disp2:
   'line 1
   Locate 1 , Digitpos
   Lcd Chr(1)
   Lcd Chr(2)
   Lcd Chr(3)
   'line 2
   Locate 2 , Digitpos
   Lcd Chr(6)
   Lcd " "
   Lcd Chr(255)
   'line 3
   Locate 3 , Digitpos
   Lcd Chr(7)
   Lcd Chr(6)
   Lcd Chr(0)
   'line 4
   Locate 4 , Digitpos
   Lcd Chr(6)
   Lcd Chr(6)
   Lcd Chr(6)
Return
Disp3:
   'line 1
    Locate 1 , Digitpos
    Lcd Chr(1)
    Lcd Chr(2)
    Lcd Chr(3)
   'line 2
    Locate 2 , Digitpos
    Lcd " "
    Lcd Chr(2)
    Lcd Chr(255)
   'line 3
    Locate 3 , Digitpos
    Lcd " "
    Lcd " "
    Lcd Chr(255)
   'line 4
    Locate 4 , Digitpos
    Lcd Chr(4)
    Lcd Chr(6)
    Lcd Chr(0)
Return

Disp4:
   'line 1
   Locate 1 , Digitpos
   Lcd Chr(2)
   Lcd " "
   Lcd " "
   'Line 2
   Locate 2 , Digitpos
   Lcd Chr(255)
   Lcd " "
   Lcd Chr(255)
   'line 3
   Locate 3 , Digitpos
   Lcd Chr(255)
   Lcd Chr(255)
   Lcd Chr(255)
   Locate 4 , Digitpos
   Lcd "  "
   Lcd Chr(6)
Return

Disp5:
   'line 1
   Locate 1 , Digitpos
   Lcd Chr(2)
   Lcd Chr(2)
   Lcd Chr(2)
   'line 2
   Locate 2 , Digitpos
   Lcd Chr(255)
   Lcd Chr(2)
   Lcd Chr(2)
   'line 3
   Locate 3 , Digitpos
   Lcd Chr(2)
   Lcd " "
   Lcd Chr(255)
   'line 4
    Locate 4 , Digitpos
    Lcd Chr(4)
    Lcd Chr(6)
    Lcd Chr(0)
Return

Disp6:
   'line 1
   Locate 1 , Digitpos
   Lcd Chr(1)
   Lcd Chr(2)
   Lcd Chr(3)
   'Line 2
   Locate 2 , Digitpos
   Lcd Chr(255)
   Lcd Chr(2)
   Lcd Chr(3)
      'line 3
   Locate 3 , Digitpos
   Lcd Chr(255)
   Lcd " "
   Lcd Chr(255)
   'line 4
    Locate 4 , Digitpos
    Lcd Chr(4)
    Lcd Chr(6)
    Lcd Chr(0)
Return

Disp7:
   'line 1
   Locate 1 , Digitpos
   Lcd Chr(1)
   Lcd Chr(2)
   Lcd Chr(3)
   'line 2
   Locate 2 , Digitpos
   Lcd "  "
   Lcd Chr(255)
   'line 3
   Locate 3 , Digitpos
   Lcd "  "
   Lcd Chr(255)
   'line 4
   Locate 4 , Digitpos
   Lcd "  "
   Lcd Chr(4)
Return

Disp8:
    'line 1
    Locate 1 , Digitpos
    Lcd Chr(1)
    Lcd Chr(2)
    Lcd Chr(3)
    'line 2
    Locate 2 , Digitpos
    Lcd Chr(255)
    Lcd Chr(2)
    Lcd Chr(255)
    'line 3
    Locate 3 , Digitpos
    Lcd Chr(255)
    Lcd " "
    Lcd Chr(255)
    'line 4
    Locate 4 , Digitpos
    Lcd Chr(4)
    Lcd Chr(6)
    Lcd Chr(0)
Return
Disp9:
   'line 1
   Locate 1 , Digitpos
   Lcd Chr(1)
   Lcd Chr(2)
   Lcd Chr(3)
   'line 2
   Locate 2 , Digitpos
   Lcd Chr(255)
   Lcd " "
   Lcd Chr(255)
   'line 3
   Locate 3 , Digitpos
   Lcd Chr(4)
   Lcd Chr(6)
   Lcd Chr(255)
   'line 4
   Locate 4 , Digitpos
   Lcd Chr(4)
   Lcd Chr(6)
   Lcd Chr(0)
Return


Sectic:
   Incr Seccount
Return

Jumat, 28 Desember 2012

Simulator Pengendali Motor DC Putar kanan Kiri

Pada artikel kali ini saya posting sebuah simulator pengendali motor DC dengan Proteus untuk :
  1. Putar kanan
  2. Putar Kiri
  3. Stop
  4. Overload
dilengkapi dengan tampilan LCD 2 x 16 yang dapat melihat kondisi jalannya program :
Gambar Rangkaianya lengkap :

List Code Bascom AVR :
$regfile = "m8535.dat"
$crystal = 4000000

Declare Sub Kanan()
Declare Sub Kiri()
Declare Sub Berhenti()
Declare Sub Ol()
Declare Sub Siap()

Ddrc.0 = 0 : Portc.0 = 1
Ddrc.1 = 0 : Portc.1 = 1
Ddrc.2 = 0 : Portc.2 = 1
Ddrc.3 = 0 : Portc.3 = 1
Ddrc.4 = 0 : Portc.4 = 1

Portb = 8

Config Portb = Output
Config Portc = Input
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
Cursor Off

Locate 1 , 1
Lcd "  MOTOR READY  "
Locate 2 , 1
Lcd "BINA ELEKTRONIKA"
Wait 2



Do
If Pinc.0 = 0 And Portb = 8 Then
Locate 1 , 1
Lcd "MOTOR SEDANG    "
Locate 2 , 1
Lcd "PUTAR KANAN >>> "
Gosub Kanan
End If

If Pinc.1 = 0 And Portb = 8 Then
Locate 1 , 1
Lcd "MOTOR SEDANG    "
Locate 2 , 1
Lcd "PUTAR KIRI <<<  "
Gosub Kiri
End If

If Pinc.2 = 0 Then
Locate 1 , 1
Lcd "MOTOR BERHENTI "
Locate 2 , 1
Lcd "               "
Gosub Berhenti
End If

If Pinc.3 = 0 Then
Locate 1 , 1
Lcd "WADUH OVERLOAD "
Locate 2 , 1
Lcd "SILAHKAN RESET "
Gosub Ol
End If

If Pinc.4 = 0 Then
Locate 1 , 1
Lcd "MOTOR SIAP     "
Locate 2 , 1
Lcd "DIJALANKAN     "
Gosub Siap
End If

Loop

Kanan:
Portb = 2
Waitms 0.3
Return

Kiri:
Portb = 1
Waitms 0.3
Return

Berhenti:
Portb = 8
Waitms 0.3
Return

Ol:
Portb = 4
Waitms 0.3
Return

Siap:
Portb = 8
Waitms 0.3
Return

End

Selamat mencoba dan semoga bermanfaat ......

Selasa, 20 Maret 2012

Demo Nokia 3530L

Rangkaian :


Kontrol LCD yang digunakan :
PCF8833    - Nokia 6100/6610/6610i
S1D15G14 - Nokia 3530/3510i/3595
PCF8814    - Nokia 1100

Download: Nokia LCDs - Proteus VSM Models.zip
(MODELS + LIBRARY + some demos)

Tampilan LCD menggunakan Mikro ATMega8535 dan Bahasa BASCOM-AVR

Belajar menggunakan LCD dengan ATMega8535 tidaklah sulit, dengan menggunakan bahasa Bascom AVR hal ini menjadi mudah dilakukan terutama bagi pemula. Berikut adalah rangkaian konfigurasi pin pada mikro ATMega8535 dan contoh program yang dapat dicoba. Selamat Mencoba.

Gambar Rangkaian :

Rangkaian Tampilan LCD.

List program :
$regfile = "m8535def.dat"
$crystal = 4000000

Enable Interrupts
Config Portd = Output
Config Lcd = 16 * 2
Config Lcdpin = Pin , Rs = Portd.4 , E = Portd.5 , Db4 = Portd.0
Config Lcdpin = Pin , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3

Config Date = Mdy , Separator = /
Config Clock = Soft

Date$ = "11/26/08"
Time$ = "08:16:00"
'-----------------------
Cls
Do
Locate 1 , 1
Lcd "Tanggal:" ; Date$
Locate 2 , 1
Lcd "Pukul:" ; Time$
Loop
End

Counter 2 Digit dengan Frekuensi 1 Hz

Beberapa teman sering bertanya "Bagai mana caranya membuat Jam Digita atau Stopwatch?"
kok Jam Digital atau Stopwatch? karena prinsip dasar dari keduanya adalah sama. Sebetulnya untuk membuat Jam Digital ataupun Stopwatch kita harus mengetahui bahan-bahan yang akan kita gunakan. misalnya menggunakan IC TTL atau mikrokontroler.
Disini saya hanya akan menunjukan rangkaian yang menggunakan IC TTL, karena IC TTL merupakan dasar dari IC Logika. Berbeda dengan mikrokontroler yang lebih ditekankan pada aplikasi programnya.

Pada artikel berikut ini saya tidak menjelaskan sistem dari Jam Digital atau Stopwatch secara keseluruhan, tetapi hanya dasar-dasar dari rangkaian pembangun saja. Jadi saya hanya menjelaskan rangkaian Counter 2 Digit dengan frekuensi 1Hz. Dan hanya menekankan pada rangkaian Couter saja. Dibawah ini merupakan Rangkaian Couter 2 Digit yang di buat menggunakan IC counter 74HC393 sebagai komponen utama. Di dalam IC 74HC393 terdapat 2 buah counter yang bisa kita gunakan sebagai penghitung satuan dan puluhan, sehingga bisa menghasilkan 2 Digit. Untuk satuannya kita akan mengatur supaya menghitung dari 0-9, sedangkan untuk puluhan kita atur supaya menghitung dari 0-5. Hal ini supaya hasil akhir dari perhitungan adalah dari 0-59 yang akhirnya nanti dapat membentuk hitungan detik. Sedangkan menit dan jam dapat memodifikasi rangkaian tersebut sedemikian rupa sehingga menjadi rangkaian kompleks.
Gambar 1. Rangkaian Counter 2 Digit dengan IC 74HC393

Sumber Clock atau Frekuensi yang saya gunakan adalah berasal dari FG(Function Generator), supaya rangkaian lebih terlihat sederhana. Jika ingin menggunakan sumber Clock yang ingin selalu tarpasang dengan rangkaian, dapat mengginakan rangakain Multivibrator yang menggunakan IC NE555 atau dari kristal.
Clock digunakan sebagai masukan ke Clock pada IC 74HC393 blok ke-1 (U1:A) yang di gunakan sebagai penghitung satuan. output dari IC 74HC393 blok ke-1 (U1:A) digunakan sebagai input ke IC 74HC47 (BCD) sebagai pengkonversi data biner menjadi desimal. Agar satuan hanya menghitung sampai angka 9, maka gunakan gerbang AND (U4) untuk me-reset sekaligus segbagai sumber clock untuk blok counter berikutnya. masukan garbang AND (U4) adalah dari Q1dan Q3 supaya pada hitungan sepuluh IC 74HC393 blok ke-1 (U1:A) reset dan hitungan akan mengulang dari 0.

Clock yang masuk ke IC74HC393 blok ke-2 (U1:B) akan meng-count Blok ke-2 tersebut sehingga menghasilkan hitungan yg sama dengan Blok ke-1. Agar Blok ke-2 hanya menghitung sampai hitungan ke-5, maka digunakan gerbangAND (U5) sebagai pengontrol yang akan me-reset counter blok ke-2. Masukan gerbang AND (U5) adalah dari Q1 dan Q2 supaya pada hitungan ke-6 blok ke-2 akan reset. Sehingga hitungan akan dimulai kembali dari 00.

Footer Widget 3