Tampilkan postingan dengan label Microcontroller. Tampilkan semua postingan
Tampilkan postingan dengan label Microcontroller. Tampilkan semua postingan

Minggu, 05 Januari 2020

EXPORT DATA DARI DATABASE KE EXCEL VB6 DENGAN MSFlexGrid

Ok Fren Langsung aja ke pokok bahasan ya... Setelah sebelumnya bahas Cara Input Data Ke Database Dengan VB6 .

Langkah pertama silahkan buka VB6 di komputer anda, lalu pilih "Standar EXE".



Maka tamplannya kira-kira seperti ini :


Langkah selanjutnya adalah Klik "Project" ---->> "Pereference" :


Kemudian ceklis component sehingga jadi seperti berikut :



Kemudian Tekan OK, Langkah selanjutnya adalah Tekan "CTRL + T" pada keyborad lalu ceklis pada "Microsoft FlexGrid Control" seperti Berikut :


Lalu Tekan Ok, Kemudian tambahkan 1 buah "MSFlexGrid" dan 2 buah "CommandButton", lalu susun seperti ini :




Untuk CommandButton "Export" Ganti nama menjadi "CmdEksport" dan untuk CommandButton "Close" Ganti dengan "CmdClose", lalu klik double klik pada form dan paste kan kode berikut :

' Author : HARLEY AFANDI DAULAY
' Date : 25-09-2019
' Purpose : https://technoindustri.blogspot.com
' Email : harly.afandi@gmail.com
'-------------------------------------------------
Dim DataKu As New ADODB.Recordset
Dim Baris As Integer

'Untuk Mengatur Tampilan MSFlexGrid1
Sub AktifMSFlexGrid1()
MSFlexGrid1.Cols = 3
MSFlexGrid1.RowHeightMin = 300
'-------------------------------------------------
MSFlexGrid1.Col = 0
MSFlexGrid1.Row = 0
MSFlexGrid1.Text = "NO"
MSFlexGrid1.CellFontBold = True
MSFlexGrid1.ColWidth(0) = 500
MSFlexGrid1.AllowUserResizing = flexResizeColumns
MSFlexGrid1.CellAlignment = flexAlignCenterCenter
'-------------------------------------------------
MSFlexGrid1.Col = 1
MSFlexGrid1.Row = 0
MSFlexGrid1.Text = "NAMA"
MSFlexGrid1.CellFontBold = True
MSFlexGrid1.ColWidth(1) = 2000
MSFlexGrid1.AllowUserResizing = flexResizeColumns
MSFlexGrid1.CellAlignment = flexAlignCenterCenter
'-------------------------------------------------
MSFlexGrid1.Col = 2
MSFlexGrid1.Row = 0
MSFlexGrid1.Text = "ALAMAT"
MSFlexGrid1.CellFontBold = True
MSFlexGrid1.ColWidth(2) = 2500
MSFlexGrid1.AllowUserResizing = flexResizeColumns
MSFlexGrid1.CellAlignment = flexAlignCenterCenter
End Sub

Private Sub CmdClose_Click()
Unload Me
End Sub
Private Sub CmdEksport_Click()
FlexGrid_To_Excel MSFlexGrid1, MSFlexGrid1.Rows, MSFlexGrid1.Cols, 1, "Data Anggota"
DoEvents
End Sub
Private Sub Form_Load()
MSFlexGrid1.Clear
Call AktifMSFlexGrid1

MSFlexGrid1.Rows = 2
Baris = 0
Call KoneksiKu
Set DataKu = New ADODB.Recordset
DataKu.Open "SELECT * FROM anggota ORDER BY nama ASC", _
ConKu, adOpenDynamic, adLockOptimistic

If DataKu.BOF Then
Exit Sub
Else
With DataKu
.MoveFirst
Do While Not .EOF
On Error Resume Next
Baris = Baris + 1
MSFlexGrid1.Rows = Baris + 1
MSFlexGrid1.TextMatrix(Baris, 0) = Baris
MSFlexGrid1.TextMatrix(Baris, 1) = !nama
MSFlexGrid1.TextMatrix(Baris, 2) = !alamat
.MoveNext
Loop
End With
End If
End Sub

Langkah berikutnya buat sebuah module dan pastekan kode berikut :

' Author : HARLEY AFANDI DAULAY
' Date : 25-09-2019
' Purpose : https://technoindustri.blogspot.com
' Email : harly.afandi@gmail.com
'--------------------------------------------------------------
Public ConKu As New ADODB.ConKuection
'Untuk koneksi database ms access pd waktu memasukan data ke dlm database
Public Sub KoneksiKu()
Set ConKu = New ADODB.ConKuection
'Jika menggunakan ms access 2007 keatas pakailah koding berikut:
'ConKu.Open "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & App.Path & "\Database.accdb;"
'ConKu.CursorLocation = adUseClient
ConKu.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Database.mdb"
ConKu.CursorLocation = adUseClient
End Sub

'Prosedur Untuk Eksport
Public Sub FlexGrid_To_Excel(TheFlexgrid As MSFlexGrid, _
TheRows As Integer, TheCols As Integer, _
Optional GridStyle As Integer = 1, _
Optional WorkSheetName As String)

Dim objXL As New Excel.Application
Dim wbXL As New Excel.Workbook
Dim wsXL As New Excel.Worksheet
Dim intRow As Integer ' counter
Dim intCol As Integer ' counter

If Not IsObject(objXL) Then
MsgBox "You need Microsoft Excel to use this function", _
vbExclamation, "Print to Excel"
Exit Sub
End If

On Error Resume Next

' Membuka Excel
objXL.Visible = True
Set wbXL = objXL.Workbooks.Add
Set wsXL = objXL.ActiveSheet

' Nama worksheet
With wsXL
If Not WorkSheetName = "" Then
.Name = WorkSheetName
End If
End With

' Fill worksheet
For intRow = 1 To TheRows
For intCol = 1 To TheCols
With TheFlexgrid
wsXL.Cells(intRow, intCol).Value = _
.TextMatrix(intRow - 1, intCol - 1) & " "
End With
Next
Next

' Format Tampilan Excel
For intCol = 1 To TheCols
wsXL.Columns(intCol).AutoFit
wsXL.Range("a1", Right(wsXL.Columns(TheCols).AddressLocal, _
1) & TheRows).AutoFormat GridStyle
Next
End Sub


Ok... Sampai tahap ini kita sudah selesai untuk aplikasi VB6 nya, Langkah berikut nya adalah membuat sebuah database "Microsoft Acces", Buka MS Acces di PC anda lalu buat sebuah database dan pilih "Create blank database" format ".mdb", selanjutnya buat sebuah tabel dengan nama "anggota" dengan nama field seperti berikut :


silahkan isi data sesuai keinginan sobat, atau klik link berikut untuk tutorial sebelumnya Cara Input Data Ke database Acces Dengan VB6, ok langkah selanjutnya adalah simpan dan Tutup Database, lalu kembali ke project VB6 sobat, lalu tekan F5 untuk Run Project, maka Hasilnya kira-kira seperti ini :



Nah silhkan klik tombol export...Bagaimana sobat Blogger? Mudah Bukan? Ok deh kalo begitu untuk kali ini sampai disini dl ya, untuk pertanyaan mengenai TItorial ini silahkan berkomentar! 
Buat temen-temen yang mau copas silahkan aja ya, tapi mohon sertakan link sumber .... :)

Terima Kasih 
Harley Daulay

INPUT DATA KE DATABASE DENGAN VB6

Langkah pertama silahkan buka VB6 di komputer anda, lalu pilih "Standar EXE".




Maka tampilannya kira-kira seperti ini :



tambahkan 2 buah "TextBox", 2 buah "CommandButton", 2 Buah Label, lalu susun seperti ini :





Langkah Berikutnya klik double klik pada form dan paste kan kode berikut :

' Author : Harley Afandi Daulay
' Date : 25-09-2019
' Purpose : https://technoindustri.blogspot.com
' Email : harly.afandi@gmail.com
'---------------------------------------------------
Public kon As New ADODB.Connection
Public DataKu As New ADODB.Recordset
Private Sub Command1_Click()
If Text1 = "" Or Text2 = "" Then
MsgBox "Data Belum Lengkap...!", vbInformation, "Informasi"
Else
Dim SQLTambah As String
SQLTambah = "insert into anggota (Nama,Alamat) values ('" _
& Text1 & "','" & Text2 & "')"
kon.Execute SQLTambah
Text1 = ""
Text2 = ""
MsgBox "Data Berhasil di Input"
End If
End Sub
Private Sub Command2_Click()
End
End Sub

Private Sub Form_Activate()
Set kon = New ADODB.Connection
Set DataKu = New ADODB.Recordset
kon.Open "provider=Microsoft.jet.oledb.4.0;data source=" & App.Path & "\Database.mdb"
End Sub


Ok... Sampai tahap ini kita sudah selesai untuk aplikasi VB6 nya, Langkah berikut nya adalah membuat sebuah database "Microsoft Acces", Buka MS Acces di PC anda lalu buat sebuah database dan pilih "Create blank database" format ".mdb", selanjutnya buat sebuah tabel dengan nama "anggota" dengan nama field seperti berikut :


Langkah selanjutnya adalah Simpan Database dan kemudian tutup, selanjutnya kembali ke Project VB6 sobat, Tekan F5 untuk Running Project, Hasilnya Kira-kira seperti ini :


Nah silhkan isi data pada textbox lalu tekan simpan untuk menyimpan data, maka otomatis data akan tersimpan di database, Ok Sobat Mudah kan? kalau masih kurang paham boleh bertanya di komentar, Terima kasih sudah berkunjung.... :)

Oh iyaa, Kalo sobat juga butuh "Cara Export Data Dari Database Ke Excel" sobat bisa kunjungi artikel Cara Export Data Dari Database Ke Excel.

Terima Kasih
Harley Daulay

Sabtu, 23 Januari 2016

Bahas Pemrograman PLC





Bahasa Pemrograman PLC

Berdasarkan Standart Internasional IEC-61131-3, bahasa pemrograman PLC ada 5 macam yaitu :
  1. Ladder Diagram (LD)
  2. Function Block Diagram (FBD)
  3. Sequential Function Chart (SFC)
  4. Structure Text (ST)
  5. Instruction List (IL)
Tidak semua PLC support kelima bahasa pemrograman diatas. Ada yang hanya support LD saja, ada juga yang support LD, FBD,SFC,ST tergantung dari PLC yang kita pakai.

Berikut bahasa pemrograman yang digunakan oleh beberapa merek PLC :
  • Allen bradley PLC-5 & SLC-500  : Ladder Diagram (LD)
  • Allen bradley Logix 5000 family  : Ladder Diagram (LD), Function Block Diagram (FBD), Sequential Function Chart (SFC), Structure Text (ST)
  • Omron CX-Programmer V8.1 : Ladder Diagram (LD), Function Block Diagram (FBD), Sequential Function Chart (SFC)
  • Schneider : Ladder Diagram (LD), Function Block Diagram (FBD), Sequential Function Chart (SFC)
  • Siemens :  Ladder Diagram (LD), Function Block Diagram (FBD), Sequential Function Chart (SFC), Instruction List (IL)

Belaja Dan Terus Belajar!

Harley Daoelay


Sumber : https://duniakarya.wordpress.com/

Merk Dan Type PLC




Merek dan Type PLC
Saat ini banyak merek serta type PLC yang dipakai di industri. Masing masing PLC memiliki kelebihan dan kekurangan tersendiri. Tinggal pilih saja bedasarkan kebutuhan serta tebal kantong anda. Berikut beberapa merek serta type PLC yang banyak dipakai di industri :

1.   Allen Bradley

Jenis Type PLC Gambar
Logix-5 Family PLC-5  
Logix-500 Family SLC-500  
  Micrologix  
Logix-5000 Family ControlLogix  
  CompactLogix  
  FlexLogix  


2.   Siemens

Jenis Type PLC Gambar
Micro PLC S7-200  
  S7-1200  
Modular PLC S5-115U  
  S7-300  
  S7-400  
     



3. Omron

Jenis Type PLC Gambar
Micro PLC CPM1A  
  CP1E  
  CP1L  
Basic PLC CJ1M  
  CQM1H  
Modular CJ1H/CJ1G  
  CS1H/CS1G  
     

4.   Schneider

Jenis Type PLC Gambar
Micro PLC Modicon M340  
Machine Control PLC Modicon Premium  
Process Control PLC Modicon Quantum  
Programmable Controller Twido  
Smart Relay Zelio  
     

5.    Mitsubishi

Jenis Type PLC Gambar
Compact PLC MELSEC FX3UC  
  MELSEC FX3G  
  MELSEC FX1N  
  MELSEC FX1S  
Modular PLC Q-Series Q00UJCPU  
Process Control Q12PHCPU  
     


Selain merek dan tipe PLC yang telah disebutkan diatas, masih banyak lahi merek dan tipe PLC lainnya seperti GE Fanuc, NAIS, dsb.


Salam
Harley Daoelay


Sumber : https://duniakarya.wordpress.com

Belajar PLC (Programmable Logic Control) Dasar




 Sebelum Lebih jauh mempelajari PLC (Programmable Logic Control), ada baiknya kita mengenal terlebih dahulu apa itu PLC, Nah untuk Lebih jelasnya saya berikan sedikit penjelasan.

Pengertian PLC
Programmable Logic Controllers (PLC) adalah komputer elektronik yang mudah digunakan (user friendly) yang memiliki fungsi kendali untuk berbagai tipe dan tingkat kesulitan yang beraneka ragam
Definisi Programmable Logic Controller menurut Capiel (1982) adalah : sistem elektronik yang beroperasi secara dijital dan didisain untuk pemakaian di lingkungan industri, dimana sistem ini menggunakan memori yang dapat diprogram untuk penyimpanan secara internal instruksi-instruksi yang mengimplementasikan fungsi-fungsi spesifik seperti logika, urutan, perwaktuan, pencacahan dan operasi aritmatik untuk mengontrol mesin atau proses melalui modul-modul I/O digital maupun analog.
Berdasarkan namanya konsep PLC adalah sebagai berikut :

1. Programmable, menunjukkan kemampuan dalam hal memori untuk menyimpan program yang telah dibuat yang dengan mudah diubah-ubah fungsi atau kegunaannya.

2. Logic, menunjukkan kemampuan dalam memproses input secara aritmatik dan logic (ALU), yakni melakukan operasi membandingkan, menjumlahkan, mengalikan, membagi, mengurangi, negasi, AND, OR, dan lain sebagainya.

3. Controller, menunjukkan kemampuan dalam mengontrol dan mengatur proses sehingga menghasilkan output yang diinginkan.


PLC ini dirancang untuk menggantikan suatu rangkaian relay sequensial dalam suatu sistem kontrol. Selain dapat diprogram, alat ini juga dapat dikendalikan, dan dioperasikan oleh orang yang tidak memiliki pengetahuan di bidang pengoperasian komputer secara khusus. PLC ini memiliki bahasa pemrograman yang mudah dipahami dan dapat dioperasikan bila program yang telah dibuat dengan menggunakan software yang sesuai dengan jenis PLC yang digunakan sudah dimasukkan.
Fungsi dan kegunaan PLC sangat luas. Dalam prakteknya PLC dapat dibagi secara umum dan secara khusus.

Secara umum fungsi PLC adalah sebagai berikut:

1. Sekuensial Control. PLC memproses input sinyal biner menjadi output yang digunakan untuk keperluan pemrosesan teknik secara berurutan (sekuensial), disini PLC menjaga agar semua step atau langkah dalam proses sekuensial berlangsung dalam urutan yang tepat.

2. Monitoring Plant. PLC secara terus menerus memonitor status suatu sistem (misalnya temperatur, tekanan, tingkat ketinggian) dan mengambil tindakan yang diperlukan sehubungan dengan proses yang dikontrol (misalnya nilai sudah melebihi batas) atau menampilkan pesan tersebut pada operator.

3. Shutdown System
Prinsip kerja sebuah PLC adalah menerima sinyal masukan proses yang dikendalikan lalu melakukan serangkaian instruksi logika terhadap sinyal masukan tersebut sesuai dengan program yang tersimpan dalam memori lalu menghasilkan sinyal keluaran untuk mengendalikan aktuator atau peralatan lainnya.


Peralatan yang Berhubungan dengan PLC

Peralatan Analog
Contoh dari peralatan analog baik input maupun output adalah sebagai berikut :
INPUT
  • Flow transmitters
  • Pressure transmitters
  • Temperature transmitters
  • Position transmitters
  • Level transmitters
OUTPUT
  • Electric motor drives
  • Analog meters
  • Chart data recorders
  • Process controllers
  • Variable speed drives

Peralatan Digital
Contoh dari peralatan digital baik input maupun output adalah sebagai berikut :
INPUT
  • Selector Switch
  • Temperature Switch
  • Flow Switch
  • Level Switch
  • Pushbutton
  • Motor starter contacts
  • Limit Switch
  • Pressure Switch
  • Relay Contact
OUTPUT
  • Annunciator
  • Alarm light
  • Electric fan
  • Indicating light
  • Electric valve
  • Alarm horn
  • Selenoid valve 
  • Motor starters


Nah sekarang udah paham kan,,,? untuk lebih mengerti lagi saya akan bahas lebih detail lagi di postingan berikutnya,,,!
Selamat Belajar dan Bereksperimen!

Harley Daoelay


Sumber : https://duniakarya.wordpress.com/

Minggu, 10 Januari 2016

7Segment Display Dengan ARDUINO PROMINI

 
 
 
 
 
Komponen Yang diutuhkan :



Berikut Schematicnya :
















Dan Berikut Scriptnya :

/*
 6-13-2011
 Spark Fun Electronics 2011
 Nathan Seidle
 
 This code is public domain but you buy me a beer if you use this and we meet someday (Beerware license).
 
 4 digit 7 segment display:
 http://www.sparkfun.com/products/9483
 Datasheet: 
 http://www.sparkfun.com/datasheets/Components/LED/7-Segment/YSD-439AR6B-35.pdf

 This is an example of how to drive a 7 segment LED display from an ATmega without the use of current limiting resistors.
 This technique is very common but requires some knowledge of electronics - you do run the risk of dumping too 
 much current through the segments and burning out parts of the display. If you use the stock code you should be ok, but 
 be careful editing the brightness values.
 
 This code should work with all colors (red, blue, yellow, green) but the brightness will vary from one color to the next
 because the forward voltage drop of each color is different. This code was written and calibrated for the red color.

 This code will work with most Arduinos but you may want to re-route some of the pins.

 7 segments
 4 digits
 1 colon
 =
 12 pins required for full control 
 
 */

int digit1 = 11; //PWM Display pin 1
int digit2 = 10; //PWM Display pin 2
int digit3 = 9; //PWM Display pin 6
int digit4 = 6; //PWM Display pin 8

//Pin mapping from Arduino to the ATmega DIP28 if you need it
//http://www.arduino.cc/en/Hacking/PinMapping
int segA = A1; //Display pin 14
int segB = 3; //Display pin 16
int segC = 4; //Display pin 13
int segD = 5; //Display pin 3
int segE = A0; //Display pin 5
int segF = 7; //Display pin 11
int segG = 8; //Display pin 15

void setup() {                
  pinMode(segA, OUTPUT);
  pinMode(segB, OUTPUT);
  pinMode(segC, OUTPUT);
  pinMode(segD, OUTPUT);
  pinMode(segE, OUTPUT);
  pinMode(segF, OUTPUT);
  pinMode(segG, OUTPUT);

  pinMode(digit1, OUTPUT);
  pinMode(digit2, OUTPUT);
  pinMode(digit3, OUTPUT);
  pinMode(digit4, OUTPUT);
  
  pinMode(13, OUTPUT);
}

void loop() {
  
  //long startTime = millis();

  displayNumber(millis()/1000);

  //while( (millis() - startTime) < 2000) {
  //displayNumber(1217);
  //}
  //delay(1000);  
}

//Given a number, we display 10:22
//After running through the 4 numbers, the display is left turned off

//Display brightness
//Each digit is on for a certain amount of microseconds
//Then it is off until we have reached a total of 20ms for the function call
//Let's assume each digit is on for 1000us
//If each digit is on for 1ms, there are 4 digits, so the display is off for 16ms.
//That's a ratio of 1ms to 16ms or 6.25% on time (PWM).
//Let's define a variable called brightness that varies from:
//5000 blindingly bright (15.7mA current draw per digit)
//2000 shockingly bright (11.4mA current draw per digit)
//1000 pretty bright (5.9mA)
//500 normal (3mA)
//200 dim but readable (1.4mA)
//50 dim but readable (0.56mA)
//5 dim but readable (0.31mA)
//1 dim but readable in dark (0.28mA)

void displayNumber(int toDisplay) {
#define DISPLAY_BRIGHTNESS  500

#define DIGIT_ON  HIGH
#define DIGIT_OFF  LOW

  long beginTime = millis();

  for(int digit = 4 ; digit > 0 ; digit--) {

    //Turn on a digit for a short amount of time
    switch(digit) {
    case 1:
      digitalWrite(digit1, DIGIT_ON);
      break;
    case 2:
      digitalWrite(digit2, DIGIT_ON);
      break;
    case 3:
      digitalWrite(digit3, DIGIT_ON);
      break;
    case 4:
      digitalWrite(digit4, DIGIT_ON);
      break;
    }

    //Turn on the right segments for this digit
    lightNumber(toDisplay % 10);
    toDisplay /= 10;

    delayMicroseconds(DISPLAY_BRIGHTNESS); //Display this digit for a fraction of a second (between 1us and 5000us, 500 is pretty good)

    //Turn off all segments
    lightNumber(10); 

    //Turn off all digits
    digitalWrite(digit1, DIGIT_OFF);
    digitalWrite(digit2, DIGIT_OFF);
    digitalWrite(digit3, DIGIT_OFF);
    digitalWrite(digit4, DIGIT_OFF);
  }

  while( (millis() - beginTime) < 10) ; //Wait for 20ms to pass before we paint the display again
}

//Given a number, turns on those segments
//If number == 10, then turn off number
void lightNumber(int numberToDisplay) {

#define SEGMENT_ON  LOW
#define SEGMENT_OFF HIGH

  switch (numberToDisplay){

  case 0:
    digitalWrite(segA, SEGMENT_ON);
    digitalWrite(segB, SEGMENT_ON);
    digitalWrite(segC, SEGMENT_ON);
    digitalWrite(segD, SEGMENT_ON);
    digitalWrite(segE, SEGMENT_ON);
    digitalWrite(segF, SEGMENT_ON);
    digitalWrite(segG, SEGMENT_OFF);
    break;

  case 1:
    digitalWrite(segA, SEGMENT_OFF);
    digitalWrite(segB, SEGMENT_ON);
    digitalWrite(segC, SEGMENT_ON);
    digitalWrite(segD, SEGMENT_OFF);
    digitalWrite(segE, SEGMENT_OFF);
    digitalWrite(segF, SEGMENT_OFF);
    digitalWrite(segG, SEGMENT_OFF);
    break;

  case 2:
    digitalWrite(segA, SEGMENT_ON);
    digitalWrite(segB, SEGMENT_ON);
    digitalWrite(segC, SEGMENT_OFF);
    digitalWrite(segD, SEGMENT_ON);
    digitalWrite(segE, SEGMENT_ON);
    digitalWrite(segF, SEGMENT_OFF);
    digitalWrite(segG, SEGMENT_ON);
    break;

  case 3:
    digitalWrite(segA, SEGMENT_ON);
    digitalWrite(segB, SEGMENT_ON);
    digitalWrite(segC, SEGMENT_ON);
    digitalWrite(segD, SEGMENT_ON);
    digitalWrite(segE, SEGMENT_OFF);
    digitalWrite(segF, SEGMENT_OFF);
    digitalWrite(segG, SEGMENT_ON);
    break;

  case 4:
    digitalWrite(segA, SEGMENT_OFF);
    digitalWrite(segB, SEGMENT_ON);
    digitalWrite(segC, SEGMENT_ON);
    digitalWrite(segD, SEGMENT_OFF);
    digitalWrite(segE, SEGMENT_OFF);
    digitalWrite(segF, SEGMENT_ON);
    digitalWrite(segG, SEGMENT_ON);
    break;

  case 5:
    digitalWrite(segA, SEGMENT_ON);
    digitalWrite(segB, SEGMENT_OFF);
    digitalWrite(segC, SEGMENT_ON);
    digitalWrite(segD, SEGMENT_ON);
    digitalWrite(segE, SEGMENT_OFF);
    digitalWrite(segF, SEGMENT_ON);
    digitalWrite(segG, SEGMENT_ON);
    break;

  case 6:
    digitalWrite(segA, SEGMENT_ON);
    digitalWrite(segB, SEGMENT_OFF);
    digitalWrite(segC, SEGMENT_ON);
    digitalWrite(segD, SEGMENT_ON);
    digitalWrite(segE, SEGMENT_ON);
    digitalWrite(segF, SEGMENT_ON);
    digitalWrite(segG, SEGMENT_ON);
    break;

  case 7:
    digitalWrite(segA, SEGMENT_ON);
    digitalWrite(segB, SEGMENT_ON);
    digitalWrite(segC, SEGMENT_ON);
    digitalWrite(segD, SEGMENT_OFF);
    digitalWrite(segE, SEGMENT_OFF);
    digitalWrite(segF, SEGMENT_OFF);
    digitalWrite(segG, SEGMENT_OFF);
    break;

  case 8:
    digitalWrite(segA, SEGMENT_ON);
    digitalWrite(segB, SEGMENT_ON);
    digitalWrite(segC, SEGMENT_ON);
    digitalWrite(segD, SEGMENT_ON);
    digitalWrite(segE, SEGMENT_ON);
    digitalWrite(segF, SEGMENT_ON);
    digitalWrite(segG, SEGMENT_ON);
    break;

  case 9:
    digitalWrite(segA, SEGMENT_ON);
    digitalWrite(segB, SEGMENT_ON);
    digitalWrite(segC, SEGMENT_ON);
    digitalWrite(segD, SEGMENT_ON);
    digitalWrite(segE, SEGMENT_OFF);
    digitalWrite(segF, SEGMENT_ON);
    digitalWrite(segG, SEGMENT_ON);
    break;

  case 10:
    digitalWrite(segA, SEGMENT_OFF);
    digitalWrite(segB, SEGMENT_OFF);
    digitalWrite(segC, SEGMENT_OFF);
    digitalWrite(segD, SEGMENT_OFF);
    digitalWrite(segE, SEGMENT_OFF);
    digitalWrite(segF, SEGMENT_OFF);
    digitalWrite(segG, SEGMENT_OFF);
    break;
  }
}

Selamat Bereksperimen!
Harley Daoelay


Sumber : http://diffusionht.blogspot.co.id/2012/04/arduino-4-digit-7-segment-display.html









Jam Digital LCD 2x16 Dengan ARDUINO

Sebenernya sudah lama pengen ngapdet materi ginian. Alhamdulillah sekarang diberi kesempatan menyapa teman semua dengan satu materi aplikasi Arduino : “Membuat Jam Digital  LCD 2x16”.
Sebagai pewaktunya kita ambil RTC (Real Time Clock) tipe DS1307 keluaran Dallas. Datasheet bisa nanya mbah gugel dimana nyimpennya.
Ok, kita rangkai Arduinonya :


Rangkaian Jam Digital Arduino
Oya, untuk koneksi pin SDA dan SCL di Arduino bisa tengok keterangan berikut :
pin SDA dan SCL Arduino

pin SDA dan SCL Arduino
Programnya nggak banyak juga :

#if defined(ARDUINO) && ARDUINO >= 100
#include “Arduino.h”
#else
#include “WProgram.h”
#endif
#include <Wire.h>
#include <DS1307.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
void setup()
{
  Serial.begin(9600);
  lcd.begin(16, 2);
  lcd.print(”  Jam Digital   “);
  lcd.setCursor(0,1);
  lcd.print(” ARDUINO UNO R3″);
  delay(2000);
  lcd.clear();  
  RTC.stop();
  RTC.set(DS1307_SEC,1);        //set the seconds
  RTC.set(DS1307_MIN,23);     //set the minutes
  RTC.set(DS1307_HR,12);       //set the hours
  RTC.set(DS1307_DOW,4);       //set the day of the week
  RTC.set(DS1307_DATE,1);       //set the date
  RTC.set(DS1307_MTH,3);        //set the month
  RTC.set(DS1307_YR,14);         //set the year
  RTC.start();
}
void loop()
{
  lcd.clear();
  lcd.print(RTC.get(DS1307_HR,true));
  lcd.print(“:”);
  lcd.print(RTC.get(DS1307_MIN,false));
  lcd.print(“:”);
  lcd.print(RTC.get(DS1307_SEC,false));
  lcd.setCursor(0,1);
  lcd.print(RTC.get(DS1307_DATE,false));
  lcd.print(“/”);
  lcd.print(RTC.get(DS1307_MTH,false));
  lcd.print(“/”);
  lcd.print(RTC.get(DS1307_YR,false));
  delay(1000);
}

Tampilan di LCD berupa jam dan tanggal.

Selamat bereksperimen !
Harley Daoelay


Sumber : http://inkubator-teknologi.com/membuat-jam-digital-dengan-arduino/

Bahsa Dasar C ARDUINO






Pendahuluan
Untuk  installasi   software  dan board arduino bisa baca disini  atau disumbernya langsung disini.
Semua bahasa perograman  terdiri dari
  1. ekspresi,
  2. statemen,
  3. blok statemen
  4. blok fungsi
Ekspresi  adalah kombinasi operand dan operator  contoh  2+3 ,  X > Y   dst…    2,3,X dan Y adalah operand  sedangkan  + dan > adalah operator .
Statemen adalah  instruksi lengkap dalam bahasa C diakhiri dgn tanda  ;  (titik koma)   contoh :  A= 2+3;
Statemen dan ekspresi C arduino  indentik dengan ANSI-C , Struktur Program C Arduino  minimal terdiri dari dua fungsi yaitu setup() dan loop().
arduinosketch  
Fungsi setup() dijalankan pertama  kali  setiap board  arduino dihidupkan  sedangkan fungsi loop() dijalankan terus menerus selama board arduino hidup.  Pada program  standar C ANSI  fungsi yg pertama dijalankan adalah fungsi main()  pada C arduino  adalah fungsi setup().
berikut ini struktur minimal C Arduino :
//setup digunakan untuk inisialisasi variable, mode pin dll
void setup() 
{
statement
} 

void loop()
 { 
statement
}
contoh program
// Pin 13  dihubungkan ke  LED pada kebanyakan  Arduino board.
// pin 13 diberi nama led:
int led = 13;
//  setup routine dijalankan sekali saat  arduino direset :
void setup() {
// inisialisasi  pin  digital  13  sbg  output.
pinMode(led, OUTPUT);
}
// loop  melakukan elsekusi berulang:
void loop() {
digitalWrite(led, HIGH); //LED on
delay(1000);
digitalWrite(led, LOW); // LED off
delay(1000);
}
VARIABLE DAN KONSTANTA
Variabel adalah memori penyimpanan data yang nilainya dapat diubah-ubah. variable disimpan di RAM
Konstanta adalah memori penyimpanan data yang nilainya tidak dapat diubah setelah program di compile. Konstanta disimpan di memory program.
VARIABLE SCOPE
Variable dan  konstanta  global  dapat diakses di seluruh bagian program.
Variable  dan konstanta lokal  hanya dapat diakses didalam fungsi tempat dideklarasikannya.
Type Data 
Arduino C mendukung sebagian besar tipe data ANSI C dengan beberapa pengecualian. Variabel adalah sebuah atau beberapa  lokasi  memori yang  diberi nama. Ketika anda mendefinisikan variabel Anda juga harus memberitahu compiler jenis data variable tsb.
Tipe data dari variabel penting karena untuk menentukan berapa banyak byte
memori yg disediakan untuk variabel itu, dan jenis data yang dapat disimpan dalam variabel.  typedata
CONTROL STATEMENT
  • While Loop
while (expression) //selama expresi bernilai true laksanakan perulangan blok statemen dibawahnya.
{
statement1;
statement2;
…..
}
atau jika satement hanya 1 baris statement tdk perlu di berikurung { }
while(expression)
statement;
  • Do/While Loop
do //jalankan statement dibawah ( minimal 1 kali perulangan dilaksanakan) ,
{
statement1;
statement2;

}
while (expression); // jika ekspresi true , jalankan kembali perulangan.
atau jika satement hanya 1 baris
do
statement;
while (expression);
  • For Loop
for (expr1; expr2; expr3) //laksanakan perulangan sebanyak expr2 dimulai dari expr1.
{
statement1;
statement2;

}
atau jika satement hanya 1 baris
for(expr1; expr2; expr3)
statement;
  • If/Else
if (expression) //jika ekspresi bernilai true laksanakan blok statemen dibawahnya
{
statement1;
statement2;

}
atau jika satement hanya 1 baris
if(expression)
statement;
  • SWITCH/CASE
switch (expression)
{
case const1:     // jika expression = const1 eksekusi staement2 dibawahnya
statement1;
statement2;
case const2: // jika expression = const2 eksekusi statemenibawahnya
statement3;
statement4;
case constX: // jika espression=constX eksekusi statemen dibawahnya
statement5;
statement6;
default:
statement7;     // jika ekspression tdk  sama dgn const1,cons2, dan constX
statement8;
}
  • BREAK, CONTINUE,AND GOTO
break, continue, & goto statements digunakan untuk merubah alur eksekusi untuk statement pengulangan for, while, do/while, and switch .
Break
break statement digunakan untuk keluar dari pengulangan for, while, do/while, atau switch . break keluar dari blok pengulangan dimana dia berada saja.
Continue
continue akan menyebabkan program memulai iterasi berikutnya dari statemen pengulangan while,
do/while, atau for loop. continue sama seperti break pengulangan akan berhenti pada point yg dituju (di skip), bedanya continue akan memulai loop lagi, dari atas, sedangkan break memaksa keluar dari loop / pengulangan .
setup()
{
}
loop()
{
int i;
for(i; i<7; i++)
{
if(i==3)
continue;
printf(%d, i )
}
}
OPERATOR DAN EXPRESSI
Operator Penugasan ( “=” )
Setelah variabel telah dideklarasikan, operasi dapat dilakukan pada variable menggunakan operator penugasan (=). Sebuah nilai yang diberikan untuk variabel dapat berupa sebuah konstanta, variabel, atau ekspresi. Sebuah ekspresi dalam bahasa C adalah kombinasi dari operan (pengidentifikasi) dan operator. operaor penugasan antara lain sebagai berikut:
Variable = nilai ,
contoh    nilai_max = 10;
Operator Arithmetic :
Perkalian *
Pembagian /
Modulo %
Penjumlahan +
Pengurangan atau Negasi –
Operator Logika
AND &&
OR ||
Operator relasional
sama dengan ==
tdk sama dengan !=
lebih kecil <
lebih kecil atau sama dengan <=
lebih besar >
lebih besar atau sama dengan >=
increment
++variable atau variable++ artinya variable=variable+1 ,
misal ++X atau X++ artinya X = X+1
perbedaaanya adalah untuk ++X , tambahkan dulu nilai X dgn 1 baru di proses baris kode tsb, sedangkan X++ , proses dulu baris code baru tambahkan nilai X dgn 1
deccrement
–variable atau variable– artinya variable=variable-1 ,
misal –Y atau Y– artinya Y = X-1
perbedaaanya adalah untuk –Y , kurangi dulu nilai Y dgn 1 baru di proses baris kode tsb, sedangkan Y– , proses dulu baris code tsb baru kurangi nilai Y dgn 1
Compound
compound digunakan hanya untuk menyingkat baris expresi saja contoh nya sbb
a += 3; artinya a = a + 3
b -= 3; artinya b = b – 3
c *= 3; artinya c = c * 3
d /= a; artinya d = d / a
a |= 3; artinya a = a OR 3
b &= 3; artinya b = b AND 3
c ^= 3; artinya c = c ^ 3
PORTD &= 3; artinya PORTD = PORTD & 3
kondisonal Expressi
if(expression_A)
expression_B;
else
expression_C;
baris kode diatas bisa digantikan oleh kondisional expressi:
expression_A ? expression_B : expression_C;
contoh : (A > 10) ? x = 5 : x =22;
kondisional expresi diatas artinya sama dengan :
IF(A>10)
{
x=5;
}
Else
{
x= 22
}
..
FUNGSI
yang dimaksud fungsi adalah sebuah blok statement yg melaksanakan tugas tertentu dan bisa
dipakai lebih dari 1 kali di dlm program.
program bahasa C terdiri dari fungsi fungsi dan sebuah program c minimal terdiri dari 1 fungsi .
fungsi setup() dijalankan pertama kali saat program dijalankan.
fungsi terdiri dari dua bagian utama yaitu kepala fungsi dan blok fungsi
berikut ini bentuk umum sebuah fungsi adalah :
type name_fungsi (type paramameter)
{
statement
}
kepala fungsi terdiri dari type return value, nama fungsi , types dan nama parameter(jika ada) .
Statement di block fungsi menyatakan apa yg fungsi harus lakukan.
jika return value atau parameter tdk ada maka typennya ditulis void seperti dibawah ini
void namefungsi (void)
{
statement
}
Structures, Union, dan Data Storage
Digital Input
void pinMode (int pin, int mode)
memerintahkan Arduino apakah pin akan diset sbg digital input atau output. Mode dapat berupa Input atau OUTPUT.
int digitalRead (int pin)
Membaca nilai dari pin digital. Nilai yg didapat dapat berupa 1 atau 0.
void digitalWrite (int pin, int value)
Menulis nilai ke pin digital. Nilai yg ditulis dapat berupa 1 atau 0.
Analog Input
int analogRead (int pin)
Membaca nilai dari pin analog. Nilai yg didapat adalah antara 0 dan 1023.
void analogWrite (int pin, int value)
Menulis nilai analog ke pin. nilai yg ditulis antara 0 dan 255.
Serial communication
Networking
waktu dan tanggal
I2C
SPI
Wireless
LCD Display
Referensi
Beginning Arduino Programming
C Programming for Arduino
Arduino Cook Book

Selamat Belajar!
Harley Daoelay

Sumber : https://pccontrol.wordpress.com/dasar-c-arduino/

Belajar Dasar ARDUINO

Bahasa pemrograman Arduino mirip bahasa C yang digunakan pada AVR. Akan tetapi lebih sederhana, dan lebih mudah untuk dipelajari. Ada yang bilang juga bahwa bahasa pemrograman Arduino adalah bahasa processing.

Bagi saya bahasa pemrograman yang digunakan pada Arduino adalah bahasa pemrograman Arduino ;) hehe











Nah pada kelas ini saya ingin mengajak kamu untuk belajar Bahasa Pemrograman Dasarnya. Penting sekali, supaya saat dipembahasan selanjutnya saya kasih kamu contoh program. Kamu sudah bisa memahami dan tidak bingung, karena kamu sudah tahu dasarnya. Ok!

Baiklah kita akan mulai dari:

void setup() {
// semua kode yang disini akan dibaca sekali oleh Arduino
}

void loop() {
//semua kode yang ada disini akan dibaca berulang kali (terus menerus) oleh Arduino
}

Semua kode program yang ada dalam void setup akan dibaca sekali oleh Arduino. Biasanya isinya berupa kode perintah untuk menentukan fungsi pada sebuah pin. Contoh kodenya seperti:

pinMode(13, OUTPUT);               // menentukan pin 13 sebagai OUTPUT
pinMode(3, INPUT);                   // menentukan pin 3 sebagai INPUT

Adapun untuk komunikasi antara Arduino dengan komputer, menggunakan:

Serial.begin(9600);                      // untuk komunikasi Arduino dengan komputer

Semua kode program yang ada di void loop akan dibaca setelah void setup dan akan dibaca terus menerus oleh Arduino. Isinya berupa kode-kode perintah kepada pin INPUT dan OUTPUT pada Arduino. Contoh kodenya seperti:

digitalWrite(13, HIGH);              //untuk memberikan 5V (nyala)  kepada pin 13.
digitalWrite(13, LOW);              //untuk memberikan 0V (mati) kepada pin 13.
analogWrite(3, 225);                //untuk memberikan nilai 225 (setara dengan 5V) kepada pin 3.

Adapun untuk menampilkan nilai pada sebuah sensor di Serial Monitor, bisa menggunaka:

Serial.print(namasensor); //menampilkan nilai sensor yang disimpan di variabel nama sensor

Untuk menampilkan teks, bis menggunakan:

Serial.print("Selamat Datang"); //menampilkan teks Selamat Datang pada Serial Monitor

Dan untuk membuka Serial Monitor sendiri pada Arduino, bisa dengan memilih menu Tools kemudian pilih Serial Monitor. Atau dengan menekan kombinasi CTRL+SHIFT+M di keyboard. Atau bisa juga dengan meng-klik ikon Kaca Pembesar di Arduino, seperti gambar dibawah ini:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 MARI BAHAS LEBIH DETAIL LAGI!
 
CATATAN PADA PROGRAM
Kamu bisa membuat catatan pada program dan tidak akan dibaca oleh Arduino, dengan cara mengetikan // kemudian mengetikan catatannya, seperti:

void loop() {

  // catatan pada baris ini tidak akan dibaca oleh program
}

Tapi pemakaian tanda // hanya berfungsi untuk catatan satu baris saja, jika kamu ingin membuat catatan yang panjang yaitu berupa paragraf. Maka pertama kamu ketikan /* lalu ketikan catatan kamu, dan jika sudah selesai tutup dengan kode */ . Contohnya seperti:

void loop() {

  /* apapun yang kamu mau ketikan disini tidak
     akan dibaca oleh program
     sepanjang apapun kamu mengetiknya
   */


}

KURUNG KURAWAL {}
Digunakan untuk menentukan awal dan akhir dari program. Karena seperti bahasa pemrograman pada umumnya, Arduino membaca mulai dari atas hingga kebawah.

void loop()
{
....program
....program
....program
}

TITIK KOMA ;
Setiap baris kode pada Arduino harus diakhiri dengan tanda ;

void setup(){
pinMode(13, OUTPUT);
}

void loop(){
digitalWrite(13, HIGH);
}

VARIABLES
Variabel adalah kode program yang digunakan untuk menyimpan suatu nilai pada sebuah nama. Yang biasa digunakan diantaranya adalah Integer, Long, Boolean, Float, Character.

int (integer)
Variabel yang paling sering digunakan dan dapat menyimpan data sebesar 2 bytes (16 bits).

long (long)
Biasa digunakan jika nilai datanya lebih besar dari integer. Menggunakan 4 bytes (32 bits).

boolean (boolean)
Variabel yang hanya menyimpan nila TRUE dan FALSE saja. Hanya menggunakan 1 bit saja ;)

float(float)
Digunakan untuk floating point pada nilai decimal. Memory yang digunakan 4 bytes (32 bits).

char(character)
Menyimpan character berdasarkan ASCII kode (contoh: 'A'=65). Menggunakan 1 byte (8 bits).

OPERATOR MATEMATIKA
Digunakan untuk memanipulasi nilai dengan perhitungan matematika sederhana seperti: penjumlahan, pengurangan, sama dengan, dan sebagainya.

=      (sama dengan) (contoh  x=10*2 (x sekarang jadi 20))
%    (persentase) (contoh 12%10 (hasilnya yaitu 2))
+      (penambahan)
-       (pengurangan)
*       (perkalian)
/        (pembagian)

OPERATOR PERBANDINGAN
Digunakan untuk melakukan perbandingan secara logika.

== (sama dengan) contoh: 15 == 10 FALSE atau 15 == 15 TRUE
!=  (tidak sama dengan) contoh: 15 != 10 TRUE atau 15 != 15 FALSE
<   (lebih kecil dari) contoh: 15 < 10 FALSE  atau 12 < 14 TRUE
>   (lebih besar dari) contoh: 15 > 19 TRUE atau 15 > 10 FALSE

STRUKTUR PENGENDALI
Program yang digunakan untuk menentukan sebuah kondisi, dan jika kondisinya sudah terpenuhi maka akan melaksanakan perintah yang sudah ditentukan. Dan saat tidak memenuhi kondisinya juga ada perintah yang dilaksanakan oleh Arduino.


if(kondisi A)
{
  Kode Perintah A
}
else if(kondisi B)
{
  Kode Perintah B
}
else
{
  Kode Perintah C
}

Pertama Arduino akan lihat Kondisi A. Jika terpenuhi, maka akan melaksanakan Kode Perintah A.
Tapi jika TIDAK, Arduino akan lihat Kondisi B. Jika terpenuhi, maka akan melaksanakan Kode Perintah B.
Tapi jika TIDAK juga, maka Arduino akan melaksanakan Kode Perintah C.

for(int i = 0; i < #repeats; i++)
{
  Kode Perintah
}

Kode diatas digunakan saat kita ingin mengulangi kode atau nilai dalam beberapa kali. Penjelasan detailnya nanti akan dibahas ketika mencoba membuat projek, biar lebih mudah dipahami, OK. ;)

KODE DIGITAL
Digunakan untuk pemrograman yang menggunakan Pin Digital pada Arduino.

pinMode( pin, mode);

Kode diatas digunakan untuk seting mode pin. Pin adalah nomer pin yang akan digunakan, kalo kamu pake Arduino Uno, pin Digitalnya dari 0-13. dan mode sendiri bisa berupa INPUT atau OUTPUT.

Contoh:

pinMode(13, OUTPUT);    // artinya pin 13 digunakan sebagai OUTPUT
pinMode(7, INPUT);         // artinya pin 7 digunakan sebagai INPUT

Dan seperti yang sudah saya bilang untuk kode pinMode itu ada didalam void setup.

digitalRead(pin);

Kode diatas digunakan pin INPUT, untuk membaca nilai sensor yang ada pada pin. Dan nilainya hanya terbatas pada 1 (TRUE), atau 0 (FALSE).

Contoh:
digitalRead(13);     // artinya kode akan membaca nilai sensor pada pin 13

Kode digitalRead kita masukan dalam void loop.

digitalWrite(pin, nilai);

Kode diatas digunakan untuk pin OUTPUT yang sudah kita seting apakah akan diberikan HIGH (+5V), atau LOW (Ground).

Contoh:

digitalWrite(13, HIGH);    // artinya pin 13 kita diberi tegangan +5V
digitalWrite(13, LOW);    // artinya pin 13 kita diberi tegangan 0 / Ground

Dan untuk kode digitalWrite tentu saja kita masukan dalam void loop.

analogWrite(pin, nilai);

Meskipun Arduino adalah perangkat digital, tapi kita masih bisa menggunakan fungsi Analognya pada pin Digital Arduino. Tapi hanya beberap pin saja, yang biasa kita sebut PWM (Pulse With Modulation). Pada Arduino Uno memiliki 6 pin PWM, yaitu: 3,5,6,9, 10, dan 11.

Dengan begini nilai yang dihasilkan menjadi bervariasi dari 0-225, itu setara dengan 0-5V.

Contoh:

analogWrite(3, 150);    // artinya pin 3 diberikan nilai sebesar 150

Dan untuk kode analogWrite juga kita masukan dalam void loop.

KODE ANALOG 
Kode analog ini digunakan ketika ingin menggunakan pin Analog pada Arduino. Untuk Arduino Uno pin Analog dari A0-A5. Dan karena ini pin Analog maka hanya bisa kita gunakan sebagai INPUT saja. Dan juga tidak perlu menulis pinMode pada void setup.

analogRead(pin);

Kode diatas digunakan untuk membaca nilai pada sensor Analog. Yaitu antara 0-1024.

Contoh:

analogRead(A0);     // artinya kode akan membaca nilai sensor pada pin AO.

CATATAN: Kode dalam Arduino adalah Case Sensitive. Maksudnya penggunaan huruf kecil atau huruf besar sangat berpengaruh.

Selamat Belajar!
Harley Daoelay




Sumber : http://www.kelasrobot.com/2015/09/belajar-pemograman-dasar-arduino.html