Mengontrol Output pada NodeMCU ESP8266 Dengan Web Server

Mengontrol Output pada NodeMCU ESP8266 Dengan Web Server

pada tulisan ini, kita akan mencoba untuk membuat sebuah web server pada NodeMCU ESP 8266 untuk mengontrol output berupa lampu LED. Dengan menggunakan cara ini, kita dapat mengontrol berbagai macam peralatan yang terhubung dengan NodeMCU ESP8266 dengan menggunakan browser yang terhubung dengan jaringan lokal yang ada dirumah kita.

Langsung saja, kita persiapkan alat dan bahan yang dibutuhkan.

Alat dan Bahan

Alat:

  • Laptop / komputer yang sudah terinstal Arduino IDE
  • Kabel data microUSB untuk mengupload sketch/program ke nodeMCU

Bahan:

  • NodeMCU ESP8266
  • LED
  • Kabel Jumper
  • Breadboard

Skema Rangkaian

langkah berikutnya, kita rangkai NodeMCU ESP8266 dan LED sesuai rangkaian yang ada dibawah ini:

Skema NodeMCU webserver dengan Breadboard
NodeMCU ESP8266LED
D0Anode (+)
GNDCathode (-)

Menginstal Board ESP8266 ke Arduino IDE

Supaya NodeMCU ESP8266 dapat di program dengan menggunakan Arduino IDE, kita perlu menginstal additional board ESP8266 ke dalam aplikasi Arduino IDE dengan cara:

Buka aplikasi Arduino IDE lalu klik File — Preferences…

Pada Tab settings — Additional boards manager URL, copy dan pastekan URL berikut kedalam kotak:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Lalu Klik OK.

Seteleh itu kita ke menu boards manager dan ketikkan ESP8266 pada kotak pencarian. Setelah board ditemukan, instal board esp8266 dengan cara mengklik tombol install.

Tunggu instalasi sampai selesai lalu tutup dan buka kembali aplikasi Arduino IDE untuk memastikan board terinstal dengan baik.

Program / Sketch

Buka kembali Arduino IDE lalu klik File — New Sketch

Ketikkan sketch dibawah ini:

#include <ESP8266WiFi.h>
const char* ssid     = "Wifi_saya";
const char* password = "1234567890";

WiFiServer server(80);

String header;

String outputState = "off";

const int ledPin = 5;

unsigned long currentTime = millis();
unsigned long previousTime = 0; 
const long timeoutTime = 2000;

void setup() {
  Serial.begin(115200);
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, LOW);
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected.");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
  server.begin();
}

void loop(){
  WiFiClient client = server.available();   

  if (client) {                             
    Serial.println("New Client.");          
    String currentLine = "";                
    currentTime = millis();
    previousTime = currentTime;
    while (client.connected() && currentTime - previousTime <= timeoutTime) { 
      currentTime = millis();         
      if (client.available()) {             
        char c = client.read();             
        Serial.write(c);                    
        header += c;
        if (c == '\n') {                    
          if (currentLine.length() == 0) {
            client.println("HTTP/1.1 200 OK");
            client.println("Content-type:text/html");
            client.println("Connection: close");
            client.println();
            
            if (header.indexOf("GET /5/on") >= 0) {
              Serial.println("GPIO 5 on");
              outputState = "on";
              digitalWrite(ledPin, HIGH);
            } else if (header.indexOf("GET /5/off") >= 0) {
              Serial.println("GPIO 5 off");
              outputState = "off";
              digitalWrite(ledPin, LOW);
            } 
            
            client.println("<!DOCTYPE html><html>");
            client.println("<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">");
            client.println("<link rel=\"icon\" href=\"data:,\">");
            client.println("<style>html { font-family: Helvetica; display: inline-block; margin: 0px auto; text-align: center;}");
            client.println(".button { background-color: #B0DAFF; border: none; color: white; padding: 16px 40px;");
            client.println("text-decoration: none; font-size: 30px; margin: 2px; cursor: pointer;}");
            client.println(".button2 {background-color: #FEFF86;}</style></head>");
            
            client.println("<body><h1>NodeMCU Webserver</h1>");
            
            client.println("<p>GPIO 5 - State " + outputState + "</p>");
            if (outputState=="off") {
              client.println("<p><a href=\"/5/on\"><button class=\"button\">Hidupkan</button></a></p>");
            } else {
              client.println("<p><a href=\"/5/off\"><button class=\"button button2\">Matikan</button></a></p>");
            } 
               
            client.println("</body></html>");
            
            client.println();
            break;
          } else { 
            currentLine = "";
          }
        } else if (c != '\r') {  
          currentLine += c;      
        }
      }
    }
    header = "";
    client.stop();
    Serial.println("Client disconnected.");
    Serial.println("");
  }
}

Meng-upload Sketch / program ke NodeMCU

Jika sketch telah selesai di ketikkan, maka langkah berikutnya adalah mengupload sketch yang telah selesai tadi ke mikrokontroler NodeMCU ESP 8266. Untuk itu, langkah-langkah yang harus dilakukan adalah:

Pertama, hubungkan kabel USB dari laptop ke NodeMCU ESP8266.

Setelah itu, di kotak pemilihan board dan port, kita pilih board NodeMCU 1.0 (ESP-12E Module) dan port nya sesuai dengan port yang sedang aktif. Tekan OK lalu klik tombol UPLOAD lalu tunggu sampai selesai

Upload bisa dikatakan berhasil jika tampilan output nya seperti gambar dibawah ini

Langkah berikutnya, kita buka serial monitor untuk mengetahui apakah modul NodeMCU ESP8266 telah terhubung ke wifi dan melihat alamat IP.

Setelah IP address sudah didapatkan, kita buka browser pada HP atau laptop kita, lalu pada address bar kita ketikkan IP address sesuai yang terlihat di serial monitor.

Jika ketika tombol “hidupkan” ditekan atau di klik, maka LED yang terhubung ke NodeMCU ESP8266 akan hidup dan tombol akan berubah menjadi “matikan”

Demikianlah tulisan hari ini, semoga tulisannya gampang dimengerti dan semoga tulisannya juga bermanfaat.

Mengontrol servo dengan Potensiometer

Mengontrol servo dengan Potensiometer

Setelah memahami cara mengontrol LED dengan menggunakan potensiometer, kita lanjutkan lagi pembahasan kita ke peragaan berikutnya yaitu mengontrol motor servo dengan potensiometer.

Seperti yang telah kita ketahui sebelumnya, motor servo adalah sejenis motor yang dapat bergerak dan berhenti kearah sudut tertentu. untuk mengatur derajat yang diinginkan , kita harus menuliskan angka 0-180 didalam fungsi Servo.write. Contohnya:

void loop(){
Servo.write(90);
}

Untuk peragaan kali ini, kita akan menggunakan putaran potensiometer untuk memutar lengan servo kearah yang kita inginkan. Jika kita putar potensiometer ke kanan maka servo akan bergerak ke kanan dan begitu juga sebaliknya.

Gambar Rangkaian

ArduinoServoPotensiometer
D6pin signal (kabel oranye)
A0wiper (pin signal)
5Vpin power (kabel merah)pin masuk
GNDpin GND (kabel coklat)pin keluar

Coding

Langkah pertama dalam menulis kode untuk peragaan ini adalah menuliskan variabel-variabel untuk servo dan potensiometer, selain itu jangan lupa menambahkan library servo dengan cara mengetikkan #include <servo.h>.

#include <Servo.h> 
//potensiometer
int potPin = A0;
int nilaiPot;

//servo

int servoPin = 6;

Servo myservo;

Berikutnya, kita aktifkan pin digital 6 untuk mengontrol servo dengan mengetikkan servo.attach(servoPin); didalam void setup().

void setup() {
    myservo.attach(servoPin);
}

Selanjutnya pada void loop(), kita tuliskan program untuk membaca nilai analog dari potensiometer terlebih dahulu

nilaiPot = analogRead(potPin);

Selanjutnya, kita akam mengkonversi nilai analog yang dibaca tadi menjadi derajat putaran pada servo

int angle = map(nilaiPot,0,1023,0,180);

fungsi map () diatas akan merubah nilai antara 0 – 1023 pada potensiometer menjadi nilai antara 0-180. Setelah itu, kita ketikkan fungsi pembacaan servo dengan mengetikkan:

myservo.write(angle);

Jika semua baris program telah diketikkan dengan benar dan telah berhasil di upload, maka hasilnya akan terlihat seperti video dibawah ini

keseluruhan program diatas dapat kita lihat dibawah ini:

#include <Servo.h> 
//potensiometer
int potPin = A0;
int nilaiPot;

//servo
int servoPin = 6;
Servo myservo;

void setup()
{
  myservo.attach(servoPin);
}

void loop()
{
  nilaiPot = analogRead(potPin);
  int angle = map(nilaiPot,0,1023,0,180);
  myservo.write(angle);
}

Bagaimana? mudah kan?
Selamat berkarya

Mengontrol LED dengan potensiometer

Mengontrol LED dengan potensiometer

Sebelumnya sudah kita sudah membahas tentang cara membaca tegangan/nilai analog yang berasal dari potensiometer. Untuk tulisan hari ini, kita akan memperagakan bagaimana mengolah hasil pembacaan nilai analog dari potensiometer dan menggunakannya untuk mengontrol output pada barisan LED.

Perhatikan rangkaian berikut:

Pada peragaan ini kita akan mengontrol 6 buah LED berdasarkan hasil pembacaan nilai analog yang terbaca dari potensiometer, dimana setiap LED akan menyala satu persatu sejalan dengan putaran potensiometer. Semakin jauh putaran potensiometer, semakin banyak LED yang akan hidup.

Langkah Kerja

Setelah kita merangkai seluruh komponen seperti gambar diatas, bukalah kembali program pembacaan nilai potensiometer yang telah dipelajari pada tulisan sebelumnya atau jika tidak ada, maka ketikkan program dibawah ini.

int potPin = A0;
int nilaiPot;

void setup() {
  Serial.begin(9600);
}

void loop() {
  nilaiPot = analogRead(potPin);
  Serial.println(nilaiPot);
  delay(100);
}

Untuk dapat mengontrol LED, kita harus melakukan modifikasi pada program diatas dengan menambahkan variabel untuk LED:

int potPin = A0;
int nilaiPot;

//Pin LED
int led1 = 2;
int led2 = 3;
int led3 = 4;
int led4 = 5;
int led5 = 6;
int led6 = 7;

Pada fungsi setup ( ), tambahkan baris-baris program untuk mengaktifkan pin 2 sampai 6 sebagai OUTPUT.

void setup() {
  Serial.begin(9600);
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);
  pinMode(led6, OUTPUT);
}

Langkah berikutnya, kita akan membagi nilai maksimal yang terbaca dari potensiometer sesuai dengan jumlah LED yaitu:

1023 / 6 = 107.5

Hasil pembagian diatas kemudian kita gunakan sebagai acuan untuk menghidupkan dan mematikan barisan LED dengan ketentuan setiap LED akan hidup satu persatu setiap kelipatan 107. dengan demikian kita bisa menuliskan program untuk led ke 1 sebagai berikut:

int hasilBagi = 1023/6;

if(nilaiPot>hasilBagi){
   digitalWrite(led1, HIGH);
}
else {
   digitalWrite(led1, LOW);

Program diatas jika diterjemahkan akan berbunyi “jika nilai potensiometer lebih dari hasil bagi, maka hidupkan led ke-1”. Dengan demikian, untuk led ke 2 dan seterusnya, nilaiPot bisa kita kalikan dengan urutan LED. perhatikan kode program dibawah ini:

if(nilaiPot>hasilBagi*2){
   digitalWrite(led2, HIGH);
}
else {
   digitalWrite(led2, LOW);

if (nilaiPot>hasilBagi*3) {
   digitalWrite (led3, HIGH);
}
else {
   digitalWrite(led2, LOW);
//dst

Setelah semua program diketik sampai selesai, akan terlihat seperti video dibawah ini:

untuk kode program yang lebih lengkap, bisa dilihat dibawah ini:

Coding

int potPin = A0;
int nilaiPot;

//Pin LED
int led1 = 2;
int led2 = 3;
int led3 = 4;
int led4 = 5;
int led5 = 6;
int led6 = 7;

void setup() {
  Serial.begin(9600);
  
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);
  pinMode(led6, OUTPUT);
}

void loop() {
  nilaiPot = analogRead(potPin);
  Serial.println(nilaiPot);
  delay(100);
  
  int hasilBagi = 1023/6;
  
  if(nilaiPot>hasilBagi){
   digitalWrite(led1, HIGH);
  }
  else {
    digitalWrite(led1,LOW);
  }
  
  if(nilaiPot>hasilBagi*2){
   digitalWrite(led2, HIGH);
  }
  else {
    digitalWrite(led2,LOW);
  }
  
  if (nilaiPot>hasilBagi*3) {
   digitalWrite (led3, HIGH);
  }
  else {
    digitalWrite(led3,LOW);
  }
  
  if (nilaiPot>hasilBagi*4) {
   digitalWrite (led4, HIGH);
  }
  else {
    digitalWrite(led4,LOW);
  }
  
  if (nilaiPot>hasilBagi*5) {
   digitalWrite (led5, HIGH);
  }
  else {
    digitalWrite(led5,LOW);
  }
  
  if (nilaiPot>hasilBagi*6) {
   digitalWrite (led6, HIGH);
  }
  else {
    digitalWrite(led6,LOW);
  }
}

NB: Untuk membalik pembacaan nilai dari 0-1023 ke 1023-0, bisa kita lakukan dengan cara membalik kaki yang terhubung dengan 5v dan GND

Selamat memperagakan

Membaca nilai Potensiometer dengan menggunakan Arduino

Membaca nilai Potensiometer dengan menggunakan Arduino

Potensiometer merupakan salah satu jenis resistor yang dapat diubah-ubah nilainya (Resistor Variabel). Potensiometer memiliki 3 buah kaki dan sebuah pemutar khusus untuk menentukan besar resistansi. Potensiometer sering digunakan untuk mengatur tegangan pada suatu rangkaian karena potensiometer bekerja dengan prinsip rangkaian pembagi tegangan.

Rangkaian Potensiometer dengan Arduino

Kita bisa menggunakan potensiometer sebagai input untuk mengatur berbagai komponen elektonik seperti LED dan motor dengan bantuan Arduino sebagai kontrolernya. Arduino akan digunakan untuk membaca nilai tegangan pada potensiometer lalu berdasarkan pembacaan nilai tegangan tersebut, Arduino memberi perintah output ke komponen output misalnya LED dan motor.

Sebelum kita mengontrol output dengan Arduino dan potensiometer, terlebih dahulu kita akan mempelajari cara kerja potensiometer yang dirangkaikan dengan Arduino dengan menggunakan serial monitor.

Gambar Rangkaian

Coding

int potPin = A3;
int nilaiPot;

void setup() {
  Serial.begin(9600);
}

void loop() {
  nilaiPot = analogRead(potPin);
  Serial.println(nilaiPot);
  delay(100);
}

Jika program sudah di upload, maka hasilnya akan seperti video berikut ini

Dari video diatas terlihat output pada serial monitor menunjukkan angka antara 0-1023 atau sebaliknya. mengapa demikian?

Arduino melalui pin analog (A0-A5) akan membaca tegangan antara 0-5 V dan merubahnya ke suatu nilai antara 0-1023. Jika tegangan yang terbaca pada potensiometer adalah 5V, maka Arduino akan menampilkan nilai 1023. Sebaliknya, jika nilai tegangan yang terbaca adalah 0V maka Arduino akan menampilkan nilai 0 pada serial monitornya. Nilai pada serial monitor akan berangsur-angsur berkurang ketika potensiometer diputar dan tegangan yang terbaca menurun sampai ke nilai 0.

Kita bisa melakukan pengukuran dengan multimeter untuk membuktikan keterangan diatas. Perhatikan video dibawah ini

Demikianlah cara membaca nilai potensiometer dan menampilkannya ke serial monitor. Dengan pengetahuan ini, kita bisa membuat berbagai macam project Arduino dengan menggunakan potensiometer.

Motor Servo dan Cara Mengontrolnya dengan Arduino

Motor Servo dan Cara Mengontrolnya dengan Arduino

Motor servo adalah salah satu jenis motor yang sering digunakan untuk membuat perangkat robotik. Motor servo memiliki keunikan tersendiri dibandingkan dengan motor DC biasa karena motor servo dapat berputar antara 0 – 180 derajat untuk tipe positional dan 0-360 derajat untuk yang bertipe continuous selain itu motor servo ini juga sangat akurat sehingga sering digunakan untuk sebagai penggerak lengan robot yang membutuhkan keakuratan posisi dalam mengambil atau meletakkan barang.

Menghubungkan Arduino dengan Servo

Sebelum menghubungkan motor servo ke Arduino, ada baiknya kita memperhatikan spesifikasi servo yang akan kita gunakan. Servo dengan spesifikasi dibawah 250 mA bisa langsung diberi tenaga dari pin power 5 volt yang terdapat pada Arduino, sedangkan servo yang memiliki kebutuhan arus diatas 250 mA harus di supply dengan menggunakan power supply terpisah. Untuk kabel signal (biasanya berwarna oranye) pada servo kita hubungkan ke salah satu pin digital Arduino yang memiliki kemampuan PWM (~). Perhatikan gambar berikut

Rangkaian servo dengan supply langsung ke Arduino
Rangkaian servo dengan power supply eksternal

Coding

#include <Servo.h> 

int servoPin = 9;

Servo myservo;

void setup() {
    servo.attach(servoPin);
}

void loop() {
    myservo.write(0);
    delay (2000);
    myservo.write(45);
    delay(1000);
    myservo.write(90);
    delay(1000);
    myservo.write(135);
    delay(1000);
    myservo.write(180);
    delay(1000);
}

Keterangan Program

#include <Servo.h> 

menambahkan library “Servo” kedalam sketch yang sedang ditulis

int servoPin = 9;

Memasukkan nomor pin yang digunakan kedalam variabel “servoPin”. nama variabel bisa disesuaikan dengan jumlah pin yang terhubung dengan servo. Misalnya, int servoPin1, int servoPin2, int servoPin3, dst.

Servo myservo;

memberikan nama object untuk setiap servo yang digunakan. jika servo yang digunakan lebih dari 1 maka bisa dibuat object name myservo1, myservo2, myservo3 dst.

servo.attach(servoPin);

Menghubungkan servo yang akan di kontrol oleh Arduino

myservo.write(45);

Menggerakkan servo kearah yang diinginkan. angka yang terdapat didalam kurung adalah posisi putaran servo. jika servo ingin digerakkan sejauh 90 derajat makan ketikkan myservo.write(90);

Jika program sudah berhasil di upload ke Arduino, maka hasilnya akan terlihat seperti video dibawah ini

Gimana? mudahkan?
selamat mencoba ya….

Mengukur jarak dengan sensor ultrasonik dan indikator LED

Mengukur jarak dengan sensor ultrasonik dan indikator LED

Pada tulisan sebelumnya, kita sudah mencoba untuk mengukur jarak dengan sensor ultrasonik (HC-SR04) yang outputnya ditampilkan melalui serial monitor. Kali ini kita akan mencoba untuk membuat alat pengukur jarak dengan menggunakan sensor yang sama dan menggunakan lampu LED sebagai indikatornya.

Cara kerja alat

Alat pengukur jarak ini akan mengukur jarak benda terhadap sensor ultrasonic dan menampilkan hasil pengukurannya lewat deretan lampu LED. Semakin dekat suatu benda dengan Sensor ultrasonik, semakin banyak lampu LED yang akan hidup.

Skema Rangkaian

Coding

untuk coding nya sama dengan program pada tulisan terdahulu tentang mengukur jarak dengan sensor ultrasonik (HC-SR04), hanya saja kita perlu melakukan penyesuaian dan menambahkan beberapa baris fungsi logika untuk menghidupkan LED berdasarkan jarak yang terbaca oleh Arduino.

int led1=2;
int led2=3;
int led3=4;
int led4=5;
int led5=6;

int trigpin = 10;
int echopin = 9;
long durasi;
long jarak;

void setup() {
  pinMode(led1,OUTPUT);
  pinMode(led2,OUTPUT);
  pinMode(led3,OUTPUT);
  pinMode(led4,OUTPUT);
  pinMode(led5,OUTPUT);

  pinMode(trigpin,OUTPUT);
  pinMode(echopin,INPUT);
}

void loop() {
  digitalWrite(trigpin, LOW);
  delayMicroseconds(5);
  digitalWrite(trigpin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigpin, LOW);

  durasi = pulseIn(echopin,HIGH);
  jarak = (durasi/2) / 29.1;

  if (jarak<30){
    digitalWrite (led1, HIGH);
  }
  else{
    digitalWrite(led1,LOW);
  }

  if (jarak<40){
    digitalWrite (led2, HIGH);
  }
  else{
    digitalWrite(led2,LOW);
  }

if (jarak<50){
    digitalWrite (led3, HIGH);
  }
  else{
    digitalWrite(led3,LOW);
  }

if (jarak<60){
    digitalWrite (led4, HIGH);
  }
  else{
    digitalWrite(led4,LOW);
  }

if (jarak<70){
    digitalWrite (led5, HIGH);
  }
  else{
    digitalWrite(led5,LOW);
  }
}

Setelah program berhasil di upload, maka hasilnya akan terlihat seperti video dibawah ini:

Dari tampilan video diatas, terlihat bahwa semakin dekat suatu objek dengan sensor ultrasonik, maka semakin banyak lampu LED yang menyala.
Bagaimana? mudah kan?

Mengukur Jarak Dengan Sensor Ultra Sonic (HC-SR04)

Mengukur Jarak Dengan Sensor Ultra Sonic (HC-SR04)

HC-SR04 (Modul Sensor Ultra Sonik)

Modul HC-SR04 adalah modul yang digunakan untuk mengukur jarak dengan menggunakan gelombang ultra sonik.

Cara Kerja Modul

HC-SR04 terdiri dari 2 bagian utama yaitu pemancar gelombang suara dan penerima gelombang suara. Pada saat diberi tegangan, bagian pemancar akan memancarkan gelombang suara ultrasonik dan dan bagian penerima akan menunggu pantulan gelombang suara yang kembali akibat terhalang dengan benda padat. Waktu yang dibutuhkan oleh gelombang ultrasonic untuk berjalan dan memantul kembali lalu di konversi/di ubah menjadi jarak dengan persamaan jarak, waktu dan kecepatan.

Rangkaian Arduino dengan HC-SR04 (sensor ultrasonic)

ArduinoHC-SR04
D8Trig
D9Echo
5VVCC
GNDGND

Coding

int trigpin = 8;
int echopin = 9;
long durasi;
long jarak;

void setup() {
  Serial.begin(9600);
  pinMode(trigpin,OUTPUT);
  pinMode(echopin,INPUT);
}

void loop() {
  digitalWrite(trigpin, LOW);
  delayMicroseconds(5);
  digitalWrite(trigpin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigpin, LOW);

  durasi = pulseIn(echopin,HIGH);
  jarak = (durasi/2) / 29.1;

  Serial.print(jarak);
  Serial.println(" cm");
  delay(500);
}

langkah selanjutnya adalah mengupload kode yang telah kita tulis ke Arduino lalu mencoba hasilnya dengan melihat tampilan output pada serial monitor.
Selamat mencoba

Digital Input / Output pada Arduino

Digital Input / Output pada Arduino

Pada tulisan ini kita akan membahas tentang cara memfungsikan pin-pin digital pada Arduino sebagai pin input dan output. Pembahasan pada tulisan ini akan mencakup 3 fungsi program dalam Arduino yaitu : pinMode ( ), digitalWrite ( ), dan digitalRead ( ).

Fungsi pinMode ( )

pinMode berfungsi untuk mengkonfigurasikan pin digital sebagai input atau output. Pin digital yang di konfigurasikan sebagai input akan membaca value atau nilai yang diberikan oleh sensor, sebaliknya jika di konfigurasikan sebagai output, maka pin digital akan memberikan sinyal keluaran HIGH atau LOW kepada komponen/modul misalnya LED atau motor.

pinMode biasa dituliskan didalam void setup() karena biasanya hanya digunakan 1 kali saja

Syntax penulisan pinMode adalah:

pinMode (pin, mode);

Keterangan:

pinModemengkonfigurasikan atau mengatur pin menjadi I/O
pinnomor pin yang akan di konfigurasikan
modekonfigurasi pin sebagai INPUT atau OUTPUT

Contoh penggunaan:

//menjadikan pin 13 sebagai output

void setup(){
    pinMode (13, OUTPUT);
} 
//menjadikan pin 13 sebagai input

void setup(){
     pinMOde (13, INPUT);
}

Selain INPUT dan OUTPUT, terdapat mode INPUT_PULLUP yang akan kita bahas pada tulisan selanjutnya

Fungsi digitalWrite ( )

digitalWrite berfungsi untuk memberikan value atau nilai output HIGH atau LOW kepada salah satu pin digital Arduino. Nilai HIGH dan LOW ini bisa disamakan dengan ON dan OFF pada sebuah saklar, dimana HIGH berarti ON atau memberi tegangan 5V pada pin dan LOW berarti OFF yaitu memberikan tegangan sebesar 0V pada pin.

Untuk menggunakan digitalWrite, maka sebelumnya pin harus dikonfigurasikan sebagai OUTPUT dengan fungsi pinMode

Syntax penulisan digitalWrite adalah

digitalWrite(pin,value);

Keterangan:

digitalWritememberikan nilai output HIGH atau LOW pada pin
pinnomor pin
valueoutput HIGH atau LOW

Contoh Penggunaan

//menghidupkan LED yang terhubung dengan pin 13

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

void loop(){
    digitalWrite(13, HIGH);
}
//menghidup matikan LED yang terhubung pin 13
void setup() {
    pinMode (13,OUTPUT);
}

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

Fungsi digitalRead ( )

digitalRead berfungsi untuk membaca nilai HIGH atau LOW dari sebuah pin digital. hasil pembacaan digital ini nantinya akan digunakan untuk menentukan tindakan yang harus dikerjakan oleh mesin yang kita buat. untuk menggunakan fungsi ini, pin digital harus di set sebagai INPUT melalui fungsi pinMode.

Syntax penulisan digitalRead adalah

digitalRead(pin)

Keterangan

digitalReadmembaca nilai digital (HIGH atau LOW) pada sebuah pin
pinnomor pin

Contoh Penggunaan digitalRead

/membaca nilai sensor yang dipasangkan ke pin 9 dan menampilkan hasil pembacaan di serial monitor

void setup(){
   Serial.begin (9600);
   pinMode(9, INPUT);
}

void loop(){
    int nilai = digitalRead(9);
    Serial.print(nilai)
}

Sampai disini dulu tulisan nya ya…

Semoga bermanfaat dan jangan kalau ada yang mau ditanyakan silahkan ketikkan pertanyaan kamu di kolom komentar.

Arduino : Arduino IDE

Arduino : Arduino IDE

Apa itu Arduino IDE?

Arduino tidak dapat langsung digunakan tanpa di program terlebih dahulu. Untuk itu, dibutuhkan software yang dapat digunakan untuk memprogram Arduino agar dapat digunakan.

Arduino IDE adalah software untuk menulis program / sketch yang berupa perintah-perintah pembacaan input maupun perintah output kepada Arduino. Software ini bisa kita download langsung di situs resmi arduino yaitu arduino.cc/en/software

Saat ini terdapat 2 jenis software Arduino IDE yaitu Arduino IDE 2.0 dan Arduino IDE 1.8.X. Arduino IDE 2.0 memiliki banyak fitur baru diantaranya fitur auto-complete yang memudahkan kita mengetikkan perintah dan fungsi, sedangkan Arduino IDE 1.8.X adalah IDE arduino versi lama yang sangat ringan sehingga bisa dijalankan di komputer yang berusia cukup tua. Selain menggunakan IDE yang terinstal di komputer, kita juga menggunaka Arduino Web Editor untuk membuat program Arduino.

Antarmuka Arduino IDE 2.0.2

Antarmuka Arduino 1.8.x

untuk penggunaan software arduino IDE, kita akan pelajari sambil mempelajari cara pengendalian Arduino pada tulisan-tulisan berikutnya. Sekian dari saya, terima kasih dan semoga bermanfaat

Arduino : Apa itu arduino?

Arduino : Apa itu arduino?

Arduino adalah sebuah papan sirkuit tunggal yang digunakan untuk membuat prototype (purwarupa) elektronika terutama otomasi dan robotika.

Arduino sendiri terdiri dari 2 bagian pokok yaitu :

  • Hardware :Arduino board (papan sirkuit arduino)
  • Software : Arduino IDE (Integrated Development Environment atau software untuk memprogram Arduino.

Arduino Board

Arduino adalah papan sirkuit elektronik yang menggunakan sebuah microcontroller atau kendali mikro sebagai otak-nya. Selain microcontoller, Arduino juga sudah memiliki port power sebagai tempat masuknya arus listrik, port USB untuk mengupload program, dan pin-pin I/O yang dapat digunakan untuk membaca sensor dan melakukan perintah kontrol.

Arduino Uno

Bagian-Bagian Dari Arduino

1. Port USB

Port USB pada arduino berfungsi sebagai penghubung antara Arduino dengan komputer atau laptop untuk mengupload program. Selain itu, port USB ini juga berfungsi sebagai sumber tegangan 5 Volt yang cukup untuk menyalakan arduino.

2. Power Socket

Power Socket berfungsi sebagai penghubung antara sumber tegangan eksternal baik berupa baterai atau adaptor dengan Arduino. Sumber tegangan yang direkomendasikan adalah antara 5 Volt – 9 Volt DC. Berapapun tegangan yang diberikan dari sumber eksternal nantinya akan di ubah menjadi tegangan 5 Volt oleh regulator tegangan.

3. Mikrokontroler

Mikrokontroler adalah otak dari Arduino ini. Mikrokontroler adalah sejenis chip atau IC (Integrated Circuit) yang berfungsi sebagai pembaca sinyal input, memproses data nya dan mengontrol output. Cara kerja mikrokontroler ini mirip dengan cara kerja komputer pada umumnya namun lebih sederhana. Arduino UNO menggunakan mikrokontroler ATmega 328p sebagai otaknya dan Arduino Mega menggunakan ATmega 2560.

berikut ini adalah spesifikasi standar ATMega 328p:

Jumlah Pin28
RAM2 KB
Flash Memory (untuk menyimpan program)32 KB
EEPROM1 KB

4. Pin Power

Power pin pada Arduino Uno terdapat pada sisi kiri sejajar dengan pin analog input. blok pin ini terdiri dari 6 pin konektor yaitu:

Reset : Digunakan untuk melakukan reset atau menghidupkan ulang Arduino dari awal lagi. Untuk menggunakan pin reset ini, kita harus menghubungkannya ke GND atau 0 V dengan bantuan switch momentary.

3.3 V dan 5 V : pin ini memiliki tegangan masing-masing 3.3 V dan 5 V yang dapat digunakan untuk memberi tegangan ke sensor maupun ke perangkat output. berfungsi mirip dengan kutub positif pada baterai.

GND : pin ini adalah pin ground atau 0 V atau mirip dengan kutub negatif pada baterai.

5. Pin Analog Input

Pin analog input adalah pin yang berlabel A0 sampai A5. Pin ini berfungsi untuk mengukur besar tegangan atau beda potensial yang berasal dari sensor analog. Nilai pembacaan tegangan ini nantinya bisa digunakan dalam pembuatan alat kontrol nantinya.

Walaupun kelompok pin ini disebut Analog In yang memang diperuntukkan membaca nilai-nilai analog (tegangan) namun pin ini juga dapat digunakan sebagai pin digital sebagai input maupun output.

6. Pin Digital

Kelompok pin yang berikutnya adalah Pin digital. Pin digital ditandai dengan angka 0 – 13 pada Arduino UNO. Pin ini berfungsi sebagai input dan output. Pin digital akan memiliki tegangan sebesar 5 V ketika di fungsikan sebagai output dan memiliki kemampuan membaca nilai-nilai digital yang berasal dari sensor ketika di fungsikan sebagai input.

Sebagai output (keluaran), pin digital memiliki sifat yang sama dengan sebuah saklar, yaitu akan memiliki tegangan 5 V ketika di aktifkan dan sebaliknya akan bertegangan 0 V jika dinonaktifkan. Dengan tegangan 5V, pin digital ini bisa mensupply arus sebesar 40 mA.

Itulah tadi bagian-bagian dari sebuah Arduino, sebenarnya masih banyak lagi komponen-komponen lainnya yang perlu untuk kita ketahui, namun kita bisa mengenalinya sambil mempelajari materi-materi berikutnya. Sampai jumpa di tulisan-tulisan berikutnya, semoga bermanfaat.