Showing posts with label Arduino. Show all posts
Showing posts with label Arduino. Show all posts

Tuesday, November 29, 2022

Program Sensor Suhu LM35 Menggunakan Arduino

 

 

Berikut adalah proyek sensor suhu :

1. Persiapan yang diperlukan

  • 1x Arduino 
  • 1x Breadboard  
  • 1x LM35 Sensor Suhu
  • 2x LED hijau 
  • 2x LED kuning 
  • 2x LED merah 
  • 6x Resistor 220ohm 
  • 11x Kabel Jumper 


2. Rancangan 


Penjelasan :

  • Pasang dari GND dan 5V Arduino ke Breadboard.
  • Pasang kaki kiri LM35 ke 5V, kaki kanan LM35 ke GND, kaki tengah LM35 ke pin A0 Arduino.
  • Pasang kaki Positif LED hijau ke pin 2 dan pin 3, LED kuning ke pin 4 dan pin 5, LED merah ke pin 6 dan pin 7 Arduino.
  • Setiap kaki negatif LED dipasang ke GND menggunakan Resistor 220ohm.


3.  pemograman Sensor Suhu LM35, gunakan sketch :

byte lm35= A0;

int nilai;

void setup(){

  Serial.begin(9600);

}

void loop(){

  nilai= analogRead(lm35);

  nilai= nilai*0.488;

  Serial.println(nilai);

  delay(500);

}

Penjelasan:

  • Serial.begin(9600); kode yang digunakan agar Arduino bisa berkomunikasi dengan komputer.
  • nilaiLM35 = analogRead(LM35); menyimpan nilai yang dihasilkan oleh sensor LM35 ke variabel nilaiLM35.
  • nilaiLM35 = nilaiLM35 * 0.488; konversi nilaiLM35 ke celsius dengan dikalikan 0.4888.
  • Serial.println(nilaiLM35); menampilkan hasil dari nilai LM35.


4. Membuat Indikator Suhu dengan menggunakan LED.

Lihat nilai pada sensor suhu LM35, dengan melihat di Serial Monitor. bisa membuka Serial Monitor dengan menekan CTRL+SHIFT+M pada keyboard.  


Catatan : 

Angka 27 adalah nilai Suhu. Jika menyentuh Sensor LM35 dan nilai akan bertambah, karena sensor menerima panas dari suhu tubuh.


5. Tambahkan Code :

int LM35 = A0; // membuat variabel LM35 untuk pin A0 Arduino

int nilaiLM35= 0;   // membuat variabel nilaiLM35 untuk menyimpan nilai sensor

int LED1= 2;         // membuat variabel LED1 untuk Pin 2 digital

int LED2= 3;       // membuat variabel LED2 untuk Pin 3 digital

int LED3= 4;       // membuat variabel LED3 untuk Pin 4 digital

void setup(){

Serial.begin(9600);     // komunikasi serial dari Arduino ke Komputer

pinMode(LED1, OUTPUT);   // mengatur LED1 menjadi OUTPUT

pinMode(LED2, OUTPUT);   // mengatur LED2 menjadi OUTPUT

pinMode(LED3, OUTPUT);   // mengatur LED3 menjadi OUTPUT

}

void loop(){

nilaiLM35 = analogRead(LM35);   // menyimpan nilai dari LM35 ke variabel nilaiLM35

nilaiLM35 = nilaiLM35 * 0.488;   // konversi nilai dari LM35 menjadi Derajat Celcius

Serial.println(nilaiLM35);     // menampilkan nilai dari LM35 ke Serial Monitor

delay(500);                     // memberi jeda sebanyak 500 milidetik

if (nilaiLM35 == 28)       // jika nilaiLM35 sama dengan 28

{

  digitalWrite(LED1, HIGH); // LED1 menyala

  digitalWrite(LED2, LOW);   // LED2 mati

  digitalWrite(LED3, LOW);   // LED3 mati

}

else if (nilaiLM35 == 29)   // jika nilaiLM35 sama dengan 29

{

  digitalWrite(LED1, HIGH); // LED1 menyala

  digitalWrite(LED2, HIGH); // LED2 menyala

  digitalWrite(LED3, LOW);   // LED3 menyala

}

else if (nilaiLM35 == 30)   // jika nilaiLM35 sama dengan 30

{

  digitalWrite(LED1, HIGH); // LED1 menyala

  digitalWrite(LED2, HIGH); // LED2 menyala

  digitalWrite(LED3, HIGH); // LED3 menyala

}

else                       // jika tidak

{

  digitalWrite(LED1, LOW);   // LED1 mati

  digitalWrite(LED2, LOW);   // LED2 mati

  digitalWrite(LED3, LOW);   // LED3 mati

}

}


Penjelasan :

  • Nilai yang dipakai pada LM35, disesuaikan dengan nilai suhu dilingkungan. Karena suhu disuatu tempat dengan tempat lain bisa saja berbeda 
  • if (nilaiLM35 == 28) kode ini digunakan untuk perintah logika, “jika nilaiLM35 sama dengan 28.” arduino akan menjalankan kode perintah yang ada pada program if ini.
  • else if (nilaiLM35 == 29) tapi jika nilainya ternyata sama dengan 29, maka arduino akan menjalankan kode perintah pada else if.
  • Else tapi jika tidak ada yang sama dengan nilai pada nilai if dan else if, maka arduino akan menjalakan kode perintah pada else.


Baca juga artikel yang berkaitan :


Arduino ESP8266 menggunakan MySQL Pada XAMPP/web hosting - I

 


Arduino + ESP8266 

1. Rangkaian yang digunakan


Diagram :




2. Code

#include "WiFiEsp.h"

 

char ssid[] = "ArduinoMySQL";        // Isi dengan nama profil Wifi

char pass[] = "12345678";            // password wifi

//char server[] = "192.168.123.1";     // alamat access point yang telah terinstall XAMPP local host

char server[] = "semesin.com";     // alamat web hosting

 

char namaVariabel[] = "Variabel";

String text = "";

String Respon = "";

bool responDariServer = false;

 

bool statusKomunikasiWifi = false;

long waktuMulai;

long waktuMintaData = 5000; //minta data setiap 5000ms

 

WiFiEspClient client;

int status = WL_IDLE_STATUS;

 

void setup()

{

  Serial.begin(9600);

  Serial.println("Koneksi arduino dengan mySql menggunakan ESp8266 dan XAMPP");

  Serial.println("Ketik pesan yang akan dikirim (pastikan setting serial ke \"both NL & CR\")");

  Serial.println("http://www.semesin.com/project");

  Serial.println();

 

  Serial1.begin(115200);

  WiFi.init(&Serial1);

 

  // check for the presence of the shield

  if (WiFi.status() == WL_NO_SHIELD) {

    Serial.println("WiFi shield not present");

    // don't continue

    while (true);

  }

 

  // attempt to connect to WiFi network

  while ( status != WL_CONNECTED) {

    Serial.print("Attempting to connect to WPA SSID: ");

    Serial.println(ssid);

    // Connect to WPA/WPA2 network

    status = WiFi.begin(ssid, pass);

  }

 

  // you're connected now, so print out the data

  Serial.println("You're connected to the network");

   

  printWifiStatus();

  waktuMulai = millis();

}

 

void loop()

{

  //tunggu imputan nilai dari untuk dikirim ke server

  while(Serial.available())

  {

    char c = Serial.read();

    if((c != '\r') && (c != '\n'))

    {

      text += c;

    }

    if(c == '\n')

    {

      statusKomunikasiWifi = kirimKeDatabase("dataDariSerial",text);

      text = "";

      waktuMulai = millis();

    }

  }

 

  if(waktuMintaData < millis() - waktuMulai)

  {

    statusKomunikasiWifi = ambilDatabase("perintah");

    waktuMulai = millis();

  }

   

  // periksa respon dari server

  if(statusKomunikasiWifi)

  {

    // if there are incoming bytes available

    // from the server, read them and print them

    while (client.available()) 

    {

      char c = client.read();

      Respon += c;

    }

   

    // if the server's disconnected, stop the client

    if (!client.connected()) {

      Serial.println("Disconnecting from server...");

      client.stop();

      statusKomunikasiWifi = false;

      responDariServer = true;

    }

  }

  // penanganan data yang diretima dari server

  if(responDariServer)

  {

    responDariServer = false;

    //Serial.println(Respon);

    int posisiData = Respon.indexOf("\r\n\r\n");

    String Data = Respon.substring(posisiData+4);

    Data.trim();

 

    String variabel;

    String nilai;

 

    Serial.println("Data dari server");

    posisiData = Data.indexOf('=');

    if(posisiData > 0)

    {

      variabel = Data.substring(0,posisiData);

      nilai = Data.substring(posisiData+1);

   

      //===========Penanganan respon disini

      Serial.print(variabel);

      Serial.print(" = ");

      Serial.println(nilai);

    }

    Respon = "";

  }

}

bool ambilDatabase(String variabel)

{

  Serial.println();

  Serial.println("Starting connection to server...");

  // if you get a connection, report back via serial

  if (client.connect(server, 80)) {

    Serial.println("Connected to server");

    // Make a HTTP request

    client.print("GET /arduino_mysql/keArduino.php?variabel=");

    client.print(variabel);

    client.println(" HTTP/1.1");

    client.print("Host: ");

    client.println(server);

    client.println("Connection: close");

    client.println();

 

    long _startMillis = millis();

    while (!client.available() and (millis() - _startMillis < 2000));

 

    return true;

  }

  return false;

}

 

bool kirimKeDatabase(String namaVariabel, String nilai)

{

  Serial.println();

  Serial.println("Starting connection to server...");

  // if you get a connection, report back via serial

  if (client.connect(server, 80)) {

    Serial.println("Connected to server");

    // Make a HTTP request

 

    // parameter 1

    client.print("GET /arduino_mysql/dariArduino.php?");

    client.print("variabel=");

    client.print(namaVariabel);

     

    // parameter 2 dan selanjutnya

    client.print("&");

    client.print("nilai=");

    client.print(nilai);

     

    client.println(" HTTP/1.1");

    client.print("Host: ");

    client.println(server);

    client.println("Connection: close");

    client.println();

 

    return true;

  }

  return false;

}

void printWifiStatus()

{

  // print the SSID of the network you're attached to

  Serial.print("SSID: ");

  Serial.println(WiFi.SSID());

 

  // print your WiFi shield's IP address

  IPAddress ip = WiFi.localIP();

  Serial.print("IP Address: ");

  Serial.println(ip);

 

  // print the received signal strength

  long rssi = WiFi.RSSI();

  Serial.print("Signal strength (RSSI):");

  Serial.print(rssi);

  Serial.println(" dBm");

 

  IPAddress gateway = WiFi.gatewayIP();

  Serial.print("gateway:");

  Serial.print(gateway);

  Serial.println(" ");

}






Contoh Program Serial Java & Arduino Dengan RXTX

 


1. Arduino 

1.1. Rancangan



1.2. Code 

int potPin = A0;

int potValue;

void setup() {

  // put your setup code here, to run once:

  Serial.begin(9600);

}

void loop() {

  // put your main code here, to run repeatedly:

  potValue = analogRead(potPin);

  Serial.print(potValue);

  Serial.print(",");

  delay(15);

}


2. Java

2.1. Konfigurasi RXTX

2.1.1. Download library RXTX dari websitenya : link download

2.1.2. Extract file zip yang telah didownload

2.1.3. Copy file rxtxSerial.dll dan rxtxParallel.dll ke folder C:\Program Files\java\jre7\bin

2.1.4. Copy file RXTXcomm.jar ke direktori C:\Program Files\java\jre7\lib\ext


2.2. Code 

package com.sad301.exc;


import gnu.io.CommPort;

import gnu.io.CommPortIdentifier;

import gnu.io.SerialPort;

import gnu.io.SerialPortEvent;

import gnu.io.SerialPortEventListener;


import java.awt.event.ItemEvent;

import java.awt.event.ItemListener;

import java.io.IOException;

import java.io.InputStream;

import java.util.ArrayList;

import java.util.Enumeration;

import java.util.List;


import javax.swing.ComboBoxModel;

import javax.swing.GroupLayout;

import javax.swing.JComboBox;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

import javax.swing.JToggleButton;

import javax.swing.SwingUtilities;

import javax.swing.UIManager;

import javax.swing.event.ListDataListener;

import javax.swing.text.DefaultCaret;


public class SerialExc extends JFrame implements SerialPortEventListener {


/**

 * 

 */

private boolean isOpened;

private byte[] buffer = new byte[1024];

private static final long serialVersionUID = 1L;

private InputStream in;

private JComboBox<String> cbCommPortId;

private JTextArea taData;

private JToggleButton bConnect;

private SerialPort serialPort;


public static void main(String[] args) throws Exception {

String laf = UIManager.getSystemLookAndFeelClassName();

UIManager.setLookAndFeel(laf);

SerialExc sx = new SerialExc();

sx.setVisible(true);

}


public SerialExc() {

SwingUtilities.invokeLater(new Runnable() {

@Override

public void run() {

createGUI();

}

});

}


@SuppressWarnings("unchecked")

private void createGUI() {

Enumeration<CommPortIdentifier> portEnum = CommPortIdentifier.getPortIdentifiers();

CBModelCommPortId model = new CBModelCommPortId(portEnum);


JLabel lPort = new JLabel("Pilih Port :");

cbCommPortId = new JComboBox<String>(model);

cbCommPortId.setSelectedIndex(0);

bConnect = new JToggleButton("Connect");

bConnect.addItemListener(new ItemListener() {

@Override

public void itemStateChanged(ItemEvent arg0) {

int stateChange = arg0.getStateChange();

switch(stateChange) {

case ItemEvent.SELECTED :

startConnection();

break;

case ItemEvent.DESELECTED :

stopConnection();

break;

}

}

});


taData = new JTextArea();

DefaultCaret caret = (DefaultCaret)taData.getCaret();

caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);

JScrollPane spData = new JScrollPane(taData);


GroupLayout l = new GroupLayout(getContentPane());

l.setAutoCreateGaps(true);

l.setAutoCreateContainerGaps(true);

l.setHorizontalGroup(l.createSequentialGroup()

.addGroup(l.createParallelGroup()

.addGroup(l.createSequentialGroup()

.addComponent(lPort)

.addComponent(cbCommPortId)

.addComponent(bConnect)

)

.addComponent(spData)

)

);

l.setVerticalGroup(l.createSequentialGroup()

.addGroup(l.createParallelGroup(GroupLayout.Alignment.BASELINE)

.addComponent(lPort)

.addComponent(cbCommPortId)

.addComponent(bConnect)

)

.addComponent(spData)

);


setTitle("SerialExc");

setSize(200, 200);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setLocationRelativeTo(null);

getContentPane().setLayout(l);

}


private void startConnection() {

try {

String portId = (String)cbCommPortId.getSelectedItem();

CommPortIdentifier commPortId = CommPortIdentifier.getPortIdentifier(portId);

CommPort commPort = commPortId.open(getClass().getName(), 2000);

if(commPort instanceof SerialPort) {

serialPort = (SerialPort)commPort;

serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);

isOpened = true;

in = serialPort.getInputStream();

serialPort.addEventListener(this);

serialPort.notifyOnDataAvailable(true);

}

}

catch(Exception exc) {

taData.append(exc.toString()+"\n");

bConnect.setSelected(false);

}

}


private void stopConnection() {

if(isOpened) {

serialPort.close();

serialPort.removeEventListener();

}

}


@Override

public void serialEvent(SerialPortEvent arg0) {

// TODO Auto-generated method stub

int data;

try {

int len = 0;

while((data=in.read()) > -1) {

if(data==',') {

break;

}

buffer[len++] = (byte)data;

}

taData.append(new String(buffer, 0, len) + "\n");

}

catch(IOException exc) {

taData.append(exc.toString() + "\n");

}

}

}


class CBModelCommPortId implements ComboBoxModel<String> {

private String selectedItem;

private List<String> items;

public CBModelCommPortId(Enumeration<CommPortIdentifier> arg0) {

this.items = getCommPortIdNames(arg0);

}

@Override

public void addListDataListener(ListDataListener l) {

// TODO Auto-generated method stub


}

@Override

public String getElementAt(int index) {

// TODO Auto-generated method stub

return items.get(index);

}

@Override

public int getSize() {

// TODO Auto-generated method stub

return items.size();

}

@Override

public void removeListDataListener(ListDataListener l) {

// TODO Auto-generated method stub

}

@Override

public Object getSelectedItem() {

// TODO Auto-generated method stub

return (String)this.selectedItem;

}

@Override

public void setSelectedItem(Object arg0) {

// TODO Auto-generated method stub

this.selectedItem = (String)arg0;

}

private List<String> getCommPortIdNames(Enumeration<CommPortIdentifier> arg0) {

List<String> temp = new ArrayList<>();

while(arg0.hasMoreElements()) {

CommPortIdentifier commPortId = arg0.nextElement();

if(commPortId.getPortType()==CommPortIdentifier.PORT_SERIAL) {

temp.add(commPortId.getName());

}

}

return temp;

}

}


Baca juga artikel yang berkaitan :


Wednesday, November 18, 2020

Menghubungkan Arduino UNO dengan Komputer

Setelah mengenal Board Arduino, hal lain yang perlu diketahui adalah bagaimana memasukkan logic kedalam IC atau bagaimana melakukan programming. Untuk dapat memprogram Board Arduino, perlu software untuk melakukan programming dan menghubungkannya dengan PC atau laprop.

Arduino sudah menyediakan IDE yang cukup mudah dipakai. Untuk download IDE silakan kunjungi website resmi Arduino : https://www.arduino.cc/en/software

Setelah selesai mendownload IDE Arduino, lalu lakukan installasi, 

Berikutnya adalah menghubungkan Arduino Uno dengan PC atau Laptop untuk Windows7, Vista, or XP:
  • Hubungkan board Arduino Uno, tunggu windows untuk melakukan driver installation. kalau gagal.   
  • Buka control panel windows, lalu buka device manager.
  • Cari Ports (COM & LPT), disana ada port "rduino UNO (COMxx)", click kanan dan pilih "Update Driver Software" option.
    Lalu pilih "Browse my computer for Driver software" option.cari driver file dengan nama "arduino.inf", di folder "Drivers". Folder dapat ditemukan ditempat instal software IDE Arduino.
  • Windows akan menyelesaikan instalasi driver.

Arduino Uno sudah terhubung dengan PC atau laptop. Sekarang dapat mencoba 1 program example yang sudah disediakan untuk memastikan semuanya sudah berjalan, yaitu Blink.
























Setelah sketch terbuka pada windows software Arduino, pilih tipe board Arduino, dalam hal ini adalah Arduino Uno
























Setelah board dipilih, pilih Port yang menghubungkan PC atau laptop dengan Arduino. Lalu tekan tombol Upload pada menu bar diatas.





Setelah program terupload, terlihat di area notifikasi. Maka LED 13 dari Arduino Board akan berkedip-kedip dengan interval 1 second.

Dalam hitungan menit sudah bisa melakukan interfacing terhadap microcontroller dan bisa mencoba program lainnya.



Program Lampu Lalu Lintas Dengan Arduino

Untuk membuat Program Lampu lalu lintas, maka komponen yang diperlukan adalah sebagai berikut.

  • Breadboard
  • LED merah, kuning dan hijau
  • 3x Resistor 150 ohm
  • Kabel jumper

Rangkaian atau Skema












Sketch Lampu Lalu Lintas

// Project 3 - Traffic Lights
int ledDelay = 5000; // delay in between changes
int redPin = 10;
int yellowPin = 9;
int greenPin = 8;
 

void setup() {
  pinMode(redPin, OUTPUT);
  pinMode(yellowPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
}

void loop() {
  digitalWrite(redPin, HIGH); // turn the red light on
  delay(ledDelay); // wait 5 seconds

  digitalWrite(yellowPin, HIGH); // turn on yellow
  delay(2000); // wait 2 seconds
 

  digitalWrite(greenPin, HIGH); // turn green on
  digitalWrite(redPin, LOW); // turn red off
  digitalWrite(yellowPin, LOW); // turn yellow off
  delay(ledDelay); // wait ledDelay milliseconds
  digitalWrite(yellowPin, HIGH); // turn yellow on
  digitalWrite(greenPin, LOW); // turn green off
  delay(2000); // wait 2 seconds


  
  digitalWrite(yellowPin, LOW); // turn yellow off

  // now our loop repeats
}



Logika programnya seperti ini:
  • nyalakan lampu merah, tunggu 5 detik
  • nyalakan lampu kuning, tunggu 2 detik
  • nyalakan lampu hijau, matikan lampu merah dan kuning lalu tunggu 5 detik
  • nyalakan lampu kuning, matikan lampu hijau, tunggu 2 detik.
  • matikan lampu kuning, dan program kembali ke awal fungsi loop()

Contoh Program Sederhana Arduino

 

Project Arduino Sederhana LED Blink atau Lampu Berkelip

Proyek yang sederhana namun cukup membuka pengertian akan akses pin pada Arduino Uno Board.

Led Blink, program akan mengakses pin 10 dan memerintahkan arduino untuk mengulang blink led. Dengan contoh proyek ini, maka dapat dipelajari beberapa dasar-dasar elektronik dan sketch programming Arduino.


Hal yang diperlukan

Skema

Catatan 
Karena tahap mempelajari arduino dari nol, jadi dishare juga yang  hal-hal yang mungkin terlihat simple bagi para expert. Warna kabel jumper tidak harus sesuai gambar, namun untuk kebiasaan yang baik, usahakan untuk positif gunakan warna merah, untuk ground gunakan hitam. Lubang pada breadboard pun tidak masalah, bisa memasang di lubang yang mana saja. Yang harus betul-betul diperhatikan adalah hubungan antar komponen dan pin pada arduino, harus sesuai gambar.

Sketch

// Project 1 - LED Flasher
int ledPin = 10;


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

void loop() {
  digitalWrite(ledPin, HIGH);
  delay(1000);
  digitalWrite(ledPin, LOW);
  delay(1000);
}


setelah sketch diketik, tekan tombol verivy, bila tidak ada error, tekan tombol upload. 

Pembahasan Sketch

// Project 1 - LED Flasher
Ini adalah komentar baris yang berguna untuk dokumentasi program, kompiler akan mengabaikan bagian ini. Baris komentar berguna bagi programmer agar bisa mengerti maksud program.

int ledPin = 10;
Inisialisasi variable, dalam hal ini inisialisasi variable bernama ledPin dengan type data integer dan nilai 10.

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

Setiap sketch arduino wajib memiliki fungsi setup() dan loop().  Fungsi setup() dipanggil hanya sekali saat pertama kali program berjalan. Fungsi setup() biasanya tempat untuk men-setup hal-hal umum agar program siap dijalankan, seperti setup pin modes, setting serial baud rates, dan lainnya.

Pada sketch Led Blink, fungsi setup hanya memiliki 1 baris perintah yaitu

pinMode(ledPin, OUTPUT);

pinMode fungsi yang berguna untuk memberitahu arduino bahwa pin pada board akan digunakan sebagai input atau output.Dalam baris program diatas,  kita memberitahu arduino untuk menset pin 10 (nilai ledPin adalah 10) sebagai OUTPUT.

void loop() {
  digitalWrite(ledPin, HIGH);
  delay(1000);
  digitalWrite(ledPin, LOW);
  delay(1000);
}


Fungsi loop() function adalah program utama yang dipanggil secara continue selama arduino menyala (dialiri power). Setiap perintah dalam fungsi loop() akan dipanggil satu persatu sampai perintah terakhir dalam blok loop dicapai, lalu Arduino akan kembali ke awal perintah di blok fungsi loop(), sampai Arduino dimatikan atau tombol reset ditekan.

Dalam contoh proyek ini Arduino akan menyalakan led, menunggu selama 1 detik, lalu mematikan led, lalu menunggu 1 detik. Urutan perintah ini akan diulang terus menerus sampai arduino dimatikan atau direset. 

Pengenalan Arduino

Arduino adalah pengendali mikro single-board yang bersifat open-source, diturunkan dari Wiring platform, dirancang untuk memudahkan penggunaan elektronik dalam berbagai bidang. Hardwarenya memiliki prosesor Atmel AVR dan software-nya memiliki bahasa pemrograman tersendiri. Banyak pemula yang belajar mengenal robotika dan elektronika lewat Arduino karena mudah dipelajari. Tapi tidak hanya pemula, para hobbyist atau profesional pun senang mengembangkan aplikasi elektronik menggunakan Arduino. Bahasa yang dipakai dalam Arduino bukan assembler yang relatif sulit, tetapi bahasa C yang disederhanakan dengan bantuan pustaka-pustaka (libraries) Arduino. Arduino juga menyederhanakan proses bekerja dengan mikrokontroler, sekaligus menawarkan berbagai macam kelebihan antara lain:

* Murah – Papan ( perangkat keras ) 

Arduino biasanya dijual relatif murah ( antara 125ribu hingga 400ribuan rupiah ) dibandingkan dengan platform mikrokontroler pro lainnya. Jika ingin lebih murah lagi, tentu bisa dibuat sendiri dan itu sangat mungkin sekali karena semua sumber daya untuk membuat sendiri Arduino tersedia lengkap di website Arduino bahkan di website-website komunitas Arduino lainnya. Tidak hanya cocok untuk Windows, namun juga cocok bekerja di Linux.

* Sederhana dan mudah pemrogramannya 

– Perlu diketahui bahwa lingkungan pemrograman di Arduino mudah digunakan untuk pemula, maupun cukup fleksibel bagi yang sudah tingkat lanjut. 

* Perangkat lunaknya Open Source 

– Perangkat lunak Arduino IDE dipublikasikan sebagai Open Source, tersedia bagi para pemrogram berpengalaman untuk pengembangan lebih lanjut. Bahasanya bisa dikembangkan lebih lanjut melalui pustaka-pustaka C++ yang berbasis pada Bahasa C untuk AVR.

* Perangkat kerasnya Open Source 

– Perangkat keras Arduino berbasis mikrokontroler ATMEGA8, ATMEGA168, ATMEGA328 dan ATMEGA1280 ( yang terbaru ATMEGA2560 ). Dengan demikian siapa saja bisa membuatnya perangkat keras Arduino ini, apalagi bootloader tersedia langsung dari perangkat lunak Arduino IDE-nya. Bisa juga menggunakan breadoard untuk membuat perangkat Arduino beserta periferal-periferal lain yang dibutuhkan.

KELEBIHAN ARDUINO

Tidak perlu perangkat chip programmer karena didalamnya sudah ada bootloadder yang akan menangani upload program dari komputer.
Sudah memiliki sarana komunikasi USB, Sehingga pengguna laptop yang tidak memiliki port serial/RS323 bisa menggunakannya.
Memiliki modul siap pakai ( Shield ) yang bisa ditancapkan pada board arduino. Contohnya shield GPS, Ethernet,dll.

SOKET USB
Soket USB adalah soket kabel USB yang disambungkan ke komputer atau laptop. Yang berfungsi untuk mengirimkan program ke arduino dan juga sebagai port komunikasi serial.

INPUT/OUTPUT DIGITAL DAN INPUT ANALOG
Input/output digital atau digital pin adalah pin pin untuk menghubungkan arduino dengan komponen atau rangkaian digital. misalnya jika ingin membuat LED berkedip, LED tersebut bisa dipasang pada salah satu pin input atau output digital dan ground. komponen lain yang menghasilkan output digital atau menerima input digital bisa disambungkan ke pin pin ini. Input analog atau analog pin adalah pin pin yang berfungsi untuk menerima sinyal dari komponen atau rangkaian analog. contohnya , potensiometer, sensor suhu, sensor cahaya, dll.

CATU DAYA
pin pin catu daya adalah pin yang memberikan tegangan untuk komponen atau rangkaian yang dihubungkan dengan arduino. Pada bagian catu daya ini pin Vin dan Reset. Vin digunakan untuk memberikan tegangan langsung kepada arduino tanpa melalui tegangan pada USB atau adaptor, sedangkan Reset adalah pin untuk memberikan sinyal reset melalui tombol atau rangkaian eksternal.

Baterai / Adaptor
Soket baterai atau adaptor digunakan untuk menyuplai arduino dengan tegangan dari baterai/adaptor 9V pada saat arduino sedang tidak disambungkan ke komputer. Jika arduino sedang disambungkan ke komputer dengan USB, Arduino mendapatkan suplai tegangan dari USB, Jika tidak perlu memasang baterai/adaptor pada saat memprogram arduino.

Papan Arduino





Apa yang ada di papan Arduino?

Ada banyak jenis papan Arduino yang dapat digunakan untuk tujuan yang berbeda. Beberapa papan terlihat sedikit berbeda dari yang di bawah ini, tetapi sebagian besar Arduino memiliki mayoritas komponen yang sama:



















Power (USB / Barrel Jack)

Setiap papan Arduino membutuhkan cara untuk terhubung ke sumber daya. Arduino UNO dapat diaktifkan dari kabel USB yang berasal dari komputer atau catu daya dinding (seperti ini) yang diakhiri dengan jack barel. Pada gambar di atas koneksi USB berlabel (1) dan jack laras diberi label (2).


CATATAN:

JANGAN gunakan catu daya yang lebih besar dari 20 Volt karena akan mengalahkan dan atau karenanya bisa menghancurkan Arduino. Tegangan yang disarankan untuk sebagian besar model Arduino adalah antara 6 dan 12 Volt.


Pin (5V, 3.3V, GND, Analog, Digital, PWM, AREF)

Pin pada Arduino adalah tempat di mana menghubungkan kabel untuk membangun sirkuit  mungkin bersamaan dengan papan tempat memotong dan beberapa kawat. Biasanya memiliki 'header' plastik hitam yang memungkinkan untuk hanya memasukkan kabel tepat ke papan. Arduino memiliki beberapa jenis pin, yang masing-masing dilabeli di papan dan digunakan untuk fungsi yang berbeda.

GND (3): Singkatan dari 'Ground'. Ada beberapa pin GND di Arduino, yang salah satunya dapat digunakan untuk menghubungkan ke sirkuit.

5V (4) & 3.3V (5): Seperti yang diduga, pin 5V memasok daya 5 volt, dan pin 3,3V memasok daya 3,3 volt. Sebagian besar komponen sederhana yang digunakan dengan Arduino berjalan dengan gembira dari 5 atau 3,3 volt.

Digital (7): Di seberang pin analog adalah pin digital (0 hingga 13 pada UNO). Pin ini dapat digunakan untuk input digital ( jika tombol ditekan ) dan output digital ( menyalakan daya LED).

PWM (8): perhatikan tilde (~) di sebelah beberapa pin digital (3, 5, 6, 9, 10, dan 11 pada UNO). Pin ini bertindak sebagai pin digital normal, tetapi juga dapat digunakan untuk sesuatu yang disebut Pulse-Width Modulation (PWM). untuk saat ini, anggap pin ini mampu mensimulasikan output analog ( seperti memudarkan LED masuk dan keluar ).

AREF (9): Singkatan dari Referensi Analog. Sebagian besar waktu Anda dapat meninggalkan pin ini sendirian. Kadang-kadang digunakan untuk mengatur tegangan referensi eksternal (antara 0 dan 5 Volts) sebagai batas atas untuk pin input analog.

Tombol Atur ulang

Sama seperti Nintendo asli, Arduino memiliki tombol reset (10). Menekannya untuk sementara akan menghubungkan pin reset ke ground dan me-restart kode yang dimuat pada Arduino. Ini bisa sangat berguna jika kode tidak berulang, tetapi ingin mengujinya berulang kali. Berbeda dengan Nintendo yang asli, meniup Arduino biasanya tidak memperbaiki masalah.

Indikator Daya LED

Tepat di bawah dan di sebelah kanan kata "UNO" di papan sirkuit, ada LED kecil di sebelah kata 'ON' (11). LED ini akan menyala setiap kali dicolokkan Arduino ke sumber listrik. Jika lampu ini tidak menyala, ada kemungkinan besar ada sesuatu yang salah. Saatnya memeriksa ulang sirkuit 


LED TX RX

TX adalah kependekan dari pengiriman, RX adalah kependekan dari penerimaan. Tanda-tanda ini muncul sedikit di elektronik untuk menunjukkan pin yang bertanggung jawab untuk komunikasi serial. Dalam kasus, ada dua tempat di Arduino UNO di mana TX dan RX muncul - sekali dengan pin digital 0 dan 1, dan kedua kalinya di sebelah TX dan LED indikator RX (12). LED ini akan memberi beberapa indikasi visual yang bagus setiap kali Arduino menerima atau mentransmisikan data ( seperti ketika  memuat program baru ke papan tulis ).

IC utama

Benda hitam dengan semua kaki logam adalah IC, atau Integrated Circuit (13). Anggap saja sebagai otak Arduino. IC utama pada Arduino sedikit berbeda dari jenis papan ke jenis papan, tetapi biasanya dari garis ATmega IC dari perusahaan ATMEL. Ini bisa menjadi penting, karena mungkin perlu mengetahui jenis IC ( bersama dengan jenis papan ) sebelum memuat program baru dari perangkat lunak Arduino. Informasi ini biasanya dapat ditemukan secara tertulis di sisi atas IC. 

Regulator tegangan

Regulator tegangan (14) sebenarnya bukan sesuatu yang dapat atau harus berinteraksi dengan Arduino. Tetapi berpotensi bermanfaat untuk mengetahui bahwa itu ada dan untuk apa itu. Regulator tegangan melakukan apa yang dikatakannya - ia mengontrol jumlah tegangan yang dibiarkan masuk ke papan Arduino. Anggap saja sebagai semacam penjaga gerbang; itu akan mengubah tegangan ekstra yang dapat membahayakan sirkuit. Tentu saja, ia memiliki batasnya, jadi jangan menghubungkan Arduino dengan apa pun yang lebih besar dari 20 volt.


Tips atau clue untuk mempelajari lebih dalam Dasar Program Arduino untuk Pemula , ada tigas tips berikut langkah-langkahnya :


1. Pelajari Mikrokontroller yang ada di papan Arduino, Karena ada banyak tipe mikrokontroller yang di gunakan Arduino, cobalah pelajari tipe ATMEGA328 , dan pelajari bagian-bagian bagaimana mikrokontroller tersebut bekerja , masih bingung bentuk ATMEGA328 .


2. Pelajari lebih dalam Papan Arduino Seperti yang sudah dijelaskan diatas, Belajar Dasar Program Arduino untuk pemula tidak cukup di jenis-jenis Arduino saja, papan (board) juga harus dipelajari lebih mendetail, coba pelajar memorinya konfigurasi pin I/O baik digital maupun analog, coba perhatikan gambar di bawah yang merupakan diagram Arduino




















3. Software Arduino , terutama cara memprogram arduino dalam bahasa C, mengupload program, dan pelajari bagian-bagian aplikasi Arduino IDE (Integrated development Environment) atau Skecth , Aplikasi tersebut akan memudahkan semua hal yang berhubungan dengan software arduino , aplikasi tersebut dapat anda download disitus webnya , 

https://www.arduino.cc/en/software




























Memunculkan Simbol & Emoji Pada OS Mac

  Memunculkan Simbol & Emoji  1. Buka aplikasi Pages / Notes pada Macbook. 2. Klik pada Menubar Edit --> Pilih Emoji and Symbols a...