7. Proyek Lain Lain dengan Microcontroller Arduino

  • 0
Description

7. Proyek Lain Lain dengan Microcontroller Arduino

Tags :

Category : aktifasi pemutar audio dengan sensor gas dan ultrasonic di arduino , Belajar Microcontroller Arduino untuk Pemula , Cara Instalasi dan Konfigurasi Microcontroller Arduino , cara membaca kode alamat tombol remote di arduino , Deteksi asap sensor gas MQ2 dengan arduino , Deteksi Kelembaban Tanah memicu kran elektrik dengan arduino , Deteksi Kelembaban Udara dengan Arduino , gerakan servo SG90 otomatis derajat , kendali arah servo SG90 dengan potensiometer , kendali LED dan menampilkan ke LCD dengan arduino , kendali LED dengan bluetooh dan android di arduino , kendali melalui socket tcp/ip dengan esp8266 , komunikasi tcp dan ip melalui ethernet LAN di arduino , membaca koordinat bumi dengan GPS di arduino , Pembuatan Proyek Audio dengan Arduino , Pembuatan Proyek LED dengan Arduino , pemutar lagu MP3 dengan arduino , Pendeteksi Warna dengan Sensor Warna TCS230 dan TCS3200 dengan arduino , Pengenalan Microcontroller Arduino , pengendali alat melalaui SMS dengan arduino , perbedaan stepper dan servo di arduino , perngertian motor stepper dan motor servo , Proyek Digital Potensiometer dengan Arduino , Proyek Kendali Jarak Jauh dengan arduino , Proyek Keypad dengan Arduino , proyek kontrol motor DC dengan arduino , Proyek LCD dan OLED dengan Arduino , Proyek Lingkungan deteksi air hujan dengan arduino , Proyek Relay dengan Arduino , proyek robot keseimbangan dengan sensor gyroscope di arduino , proyek robot penghindar halangan dengan remote bluetooth , Proyek Sensor Jarak , sensor keamanan dengan kartu RFID dengan arduino , Ultrasonic HCSR04 dan Sensor PIR HCSR501 dengan Arduino

7. PROYEK LAIN-LAIN DENGAN MICROCONTROLLER ARDUINO

Pada bagian ini akan dibahas beberapa proyek yang mungkin tidak bisa dikelompokkan menjadi satu bagian khusus, sehingga dinamakan proyek Iain-Iain. Adapun pembahasannya meliputi sensor getaran (vibration sensor), potensiometer digital (rotary encoder) dan sensor pendeteksi warna (colorsensor). Semoga dari pembahasan ini bisa menjadi ide dasar untuk mengembangkan proyek lanjutan yang lebih kompleks.

7.1 Pendeteksi Getaran Dengan Sensor Vibration SW-420

Sensor vibration SW-420 adalah sensor untuk mendeteksi getaran yang mengenai sensor vibration. Adapun modul sensor vibration SW-420 tampak seperti Gambar 7.1. Module sensor terdiri pin VCC yang dihubungkan ke VCC Arduino, pin GND dihubungkan ke GND Arduino dan pin DO (Digital Out) dihubungkan ke pin digital Arduino (posisi bebas, tergantung penentuan di kode programnya).

Gambar 7.1 Sensor Getar SW-420

Skenario proyek yang akan dibuat sederhana saja, yaitu ketika sensor getar mendapat aksi getaran disekitarnya maka LED akan menyala dengan sendirinya.

Kebutuhan Bahan

Bahan Jumlah Nilai Keterangan
Sensor Vibration SW-420 1 pcs Description
Resistor 1 pcs 220 ohm
LED 5MM 1 pcs

Diagram Sketch

Description

Rangkai module sensor getar seperti pada diagram sketch. Module sensor getar terdiri pin VCC yang dihubungkan ke VCC Arduino, pin GND dihubungkan ke GND Arduino dan pin DO (Digital Out) dihubungkan ke pin D9 Arduino.

Kode Program

int vib_pin = 9; // pin sensor vibration

int led_pin = 8; // pin LED

void setup() {

pinMode(vib_pin, INPUT);

pinMode(led_pin, OUTPUT);

}

void loop() {

int val = digitalRead(vib_pin);

if(val ==1)

{

// Jika terdeteksi getaran

digitalwrite(led_pin, HIGH);

delay(1000);

digitalwrite(1ed_pin, LOW);

delay(1000);

} else

digitalwrite(1ed_pin, LOW);

}

Adapun hasil akhir proyek kurang lebih tampak pada Gambar 7.2

Description

Description

    1. Digital Potensiometer (Rotary Encoder)

Prinsip kerja rotary encoder serupa dengan potensiometer analog, tetapi rotary encoder berkerja secara digital. Rotary encoder dapat berputar ke kanan atau ke kiri tanpa batasan berhenti, tidak seperti potensiometer analog yang memiliki keterbatasan putaran (Gambar 7.5). Rotary encoder bisa pula difungsikan sebagai tombol push button. Untuk mengetahui lebih detil bagaimana prinsip kerja rotary encoder, silahkan kunjungi https://howtomechatronics.com/ tutorials/Arduino/rotary-encoder-works-use-Arduino/.

Terdapat dua macam encoder yang banyak beredar, yaitu rotary encoder itu sendiri dan modul rotary encoder yang telah disertai dengan resistor pull-up’ seperti tampak pada Gambar 7.3 dan Gambar 7.4.Jika Anda hanya menggunakan rotary encoder tanpa modul, maka Anda harus menambahkan dua resitor pull-up dengan skema seperti tampak pada Gambar 7.6

Gambar 7.4. Modul Gambar 7.5. Modul
Gambar 7.3. Rotary Encoder Rotary Encoder (Digital Rotary Encoder (Analog
(Digital Potensiometer) Potensiometer) Potensiometer)

Gambar 7.6 Rotary Encoder Disertai 2 Resistor Pull-Up 10K Ohm

Rotary encoder memiliki 5 kaki yang terdiri dari CLD (Clock), DT (Data), SW (Switch/Skalar), VCC dan GND.

Skenario proyek adalah menghidupkan LED yang terkesan berjalan dari kiri ke kanan atau sebaliknya, dimana hanya satu LED dari enam LED yang bisa menyala. Jika LED yang menyala berada di posisi paling kanan (LED 6), sedangkan rotary terus diputar ke kanan, maka LED akan menyala dari urutan pertama lagi. Sebaliknya jika LED yang menyala di posisi paling kiri (LED 1), sedangkan rotary terus diputar ke kiri, maka LED akan menyala dari urutan keenam. Jika rotary encoder ditekan atau difungsikan sebagai tombol saklar, maka semua LED akan menyala secara berlahan dari kiri ke kanan dan mati secara berlahan dari kanan ke kiri.

Kebutuhan Bahan

Bahan Jumlah Nilai

Keterangan

Modul Rotary Encoder 1 pcs
Res;stor 6 pcs 330 ohm
LED SMM 6 pcs

Diagram Sketch

Kode program membutuhkan library rotary encoder Rotary.h yang dapat di download di https://github.com/brianIow/Rotary dan library Button.h yang dapat di download https://github.com/JChristensen/JC_Button. Kemudian install kedua library dari menu Sketch Include Library Add .ZIP Library Arduino seperti cara sebelumnya.

Kode Program

#include <JC_Button.h>

#include <Rotary.h>

#define pinCLK 2 #define pinDT 3 #define pinSW 4

Button tombolSW(pinSW);

Rotary r= Rotary(pinCLK,pinDT);

uint8_t urutan=1;

void setup() {

pinMode(5, OUTPUT);

pinMode(6, OUTPUT);

pinMode(7, OUTPUT);

pinMode(8, OUTPUT);

pinMode(9, OUTPUT);

pinMode(10, OUTPUT);

digitalwrite(5, HIGH);

tombolsw.begin();

}

void loop() {

// Rotary encoder sebagai saklar push button

tombolsw.read();

if (tombolSW.wasReleased())

{

// Matikan semua LED

for (int i = 5; i <= 10;i++) {

digitalwrite(i, LOW);

}

delay(2000);

}

// Hidupkan semua LED dari kiri ke kanan

for (int i =5; i<=10;i++){

digitalwrite(i, HIGH);

delay(200);

}

delay(1000); // tunda 1 detik

// Matikan semua LED dari kanan ke kiri

for(int i=10;i>=5;i–){

digitalwrite(i, LOW);

delay(200);

}

delay(1000); // tunda 2 detik

// Hanya menghidupkan LED pertama

digitalwrite(5, HIGH);

urutan=1;

}

unsigned char result = r.process();

if (result m= DIR_CW){

// putar kanan

if (urutan <= 6) {

urutan++; // tambahkan urutan dengan 1

}else {

urutan =1; // kembalikan ke urutan 1

} else if (result==DIR_CCW){

// putar kiri (DIR_CCW)

if(urutan >=1){

urutan–; // kurangi urutan dengan 1

}else{

urutan = 6; // kembalika ke urutan 6

}

}

LEDHidup(urutan); // panggil fungsi LEDHidup

}

void LEDHidup(uint8_t item){

for(int i=5;i<=10;i++){

digitalwrite(i, LOW); // matikan semua LED

}

// item ditambah 4 karena pin LED dimulai dari 5

// hidupkan LED ini saja

digitalwrite(item + 4, HIGH);

}

Hasil akhir proyek sepert tampak pada Gambar 7.7

Description

Gambar 7.7 Hasil Akhir Proyek Rotary Encoder

7.3 Pendeteksi Warna Dengan Color Sensor TCS230/TCS3200

Sensor warna TCS230/TCS3200 bekerja dengan bantuan array 8×8 photodiodes. Kemudian dari pembacaan dioda tersebut dikonversi (arus-ke-frekuensi) menjadi gelombang digital dengan frekuensi berbanding lurus terhadap intensitas cahaya. Akhirnya Arduino akan membaca output gelombang persegi

tersebut menjadi warna yang dideteksi. Sebagai ilustrasi tampak pada Gambar 7.8

Description

Gambar 7.8 Cara Kerja Sensor Warna TCS3200

Jika sensor TCS3200 dilihat dari dekat maka akan tampak sensor memiliki tiga jenis photodiode yang berbeda warna, terdiri dari 16 filter warna hijau, 16 filter warna biru, 16 filter warna merah serta 16 tak berwarna (tanpa filter) seperti tampak pada Gambar 7.9.

Gambar 7.9 Inti Sensor TCS3200 (Sumber: https://howtomechatronics.com/)

Setiap 16 photodiodes terhubung secara paralel, jadi dengan menggunakan dua pin kontrol S2 dan S3 kita dapat memilih mana dari mereka yang akan dibaca. Jika kita ingin mendeteksi warna merah, maKa kita bisa menggunakan 16 foto merah yang difilter dengan menyetel dua pin S2/S3 ke tingkat logika LOW sesuai dengan tabel di bawah ini.

S0 S1 Penskalaan Output Freq.
LOW LOW Power Down
LOW HIGH 2%
HIGH LOW 20%
HIGH HIGH 100%
S2 S3 Jenis Photodiode
LOW LOW Merah
LOW HIGH Biru
HIGH LOW Clear
HIGH HIGH Hijau

Sensor TCS3200 memiliki dua pin kontrol, SO dan Sl yang digunakan untuk menskalakan frekuensi output. Frekuensi dapat diskalakan ke tiga nilai preset yang berbeda dari 100%, 20% atau 2%. Fungsi penskalaan frekuensi ini

memungkinkan keluaran sensor dioptimalkan untuk berbagai penghitung frekuensi atau mikrokontroler.

Kita akan membuat proyek sensor warna TCS3200 sederhana yaitu bagaimana menampilkan nilai komposisi warna RGB (Merah, Hijau, Biru) dari warna yang terdeteksi dengan Skala 0 sampai 255, kemudian nilai tersebut akan ditampilkan ke Serial Monitor. Sebagai bahan pengujian, kita perlu mencetak beberapa warna berbeda pada kertas A4 untuk dideteksi oleh sensor warna TCS3200. Anda dapat memperolehnya di https://www.materialpalette.com/ seperti tampak pada Gambar 7.10.

Gambar 7.10 Contoh Warna (Sumber: https://www.materialpalette.com/)

Kebutuhan Bahan

Bahan Jumiah Nilai Keterangan
Modul Sensor Warna TCS3200 1 pcs
Modul LCD 16×2 1 pcs

Description

Kode Program

#include <Wire.h>

#include <LiquidCrystal_I2C.h>

#define S0 4

#define S1 5

#define S2 6

#define S3 7

#define sensorOut 8

// Inisialisasi library

// Atur alamat LC pada 0x27 untuk tampilan LCD 16 karakter 2 baris

LiquidCrystal_I2C lcd(0x27, 16, 2);

unsigned int merahFreq = 0, hijauFreq = 0, biruFreq =0;

void setup(){

lcd.init(); // Inisialisasi LCD

lcd.backlight(); // Menghidupkan backlight

pinMode(S0, OUTPUT);

pinMode(S1, OUTPUT);

pinMode(S2, OUTPUT);

pinMode(S3, OUTPUT);

pinMode(sensorOut,INPUT);

// Pensklaan frekwensi menjadi 20%

digitalwrite(Sø, HIGH);

digitalwrite(S1, LOW);

Serial.begin(9600);

}

void loop(){

// Pengaturan photodiode filter warna merah

digitalwrite(S2, LOW);

digitalwrite(S3, LOW);

// Membaca frekwensi output

merahFreq = pulseIn(sensorOut, LOW, 25000) / 2;

// Pengaturan photodiode filter warna hijau

digitalwrite(S2, HIGH);

digitalwrite(S3, HIGH);

// Membaca frekwensi output

hijauFreq = pulseIn(sensorout, LOW, 25000) /2;

// Pengaturan photodiode filter warna biru

digitalwrite(S2, LOW);

digitalwrite(S3, HIGH);

// Membaca frekwensi output

biruFreq = pulseIn(sensorout, LOW, 25000)/ 2;

// Printing the value on the serial monitor

Serial.println(“R=”+ String(merahFreq) +“ G=”+ String(hijauFreq)+“B=”+

String(biruFreq));

lcd.clear();

lcd.setCursor(0, 0);

lcd.print(“Komposisi Warna”);

Icd.setCursor(θ,1);

lcd.print(“M=”+String(merahFreq)+“H=”+ String(hijauFreq)+“B=”+

String(biruFreq));

delay(1000);

}

Selanjutnya jalankan programnya untuk melakukan kalibrasi warna. Perhatikan hasil di layar Serial Monitor. Ambil contoh warna biru saja, maka akan terlihat nilai terendah dan tertinggi seiring dengan perubahan jarak antara sensor dengan objek warna yang dideteksi.

Description

Dari sini Anda melakukan kalibrasi dan pengskalaan nilai frekwensi warna menjadi nilai RGB (0 sampai 255). Caranya dengan mengambil nilai terkecil mendekati 0 dan nilai terbesar mendekati 255 pada setiap warna dasar (RGB = merah, hijau, biru). Contoh: nilai frekwensi terbesar yaitu 193 berkorespondesi terhadap nilai 0 dan nilai frekwensi terkecil yaitu 93 berkorespondensi terhadap nilai 255, sehingga map-nya menjadi warnaBiru = map(biruFreq, 93, 193, 255, 0);

Lakukan cara yang sama untuk warna merah dan warna hijau, seperti tampak pada Gambar 7.13.

Description

Berikut ini kode program setelah dilakukan mapping warna dari nilai frekwensi menjadi nilai RGB antara 0 sampai 255.

Kode Program

#include <Wire.h>

#include <LiquidCrystal_I2C.h>

#define S0 4

#define S1 5

#define S2 6

#define S3 7

#define sensorOut 8

// Inisialisasi library

// Atur alamat LC pada 0x27 untuk tampilan LCD 16 karakter 2 baris

LiquidCrystal_I2C lcd(0x27, 16, 2);

unsigned int merahFreq = 0, hijauFreq = 0, biruFreq = 0;

unsigned int warnaMerah = 0, warnaHijau =0, warnaBiru = 0;

void setup(){

lcd.init(); // Inisialisasi LCD

lcd.backlight(); // Menghidupkan backlight

pinMode(S0, OUTPUT);

pinMode(S1, OUTPUT);

pinMode(S2, OUTPUT);

pinMode(S3, OUTPUT);

pinMode(sensorout, INPUT);

// Pensklaan frekwensi menjadi 20%

digitalwrite(S0, HIGH);

digitalwrite(S1, LOW);

Serial.begin(9600);

}

void loop() {

// Pengaturan photodiode filter warna merah

digitalwrite(52, LOW);

digitalwrite(S3, LOW);

// Membaca frekwensi output

merahFreq = pulseIn(sensorOut, LOW, 25000) / 2;

// lakukan kalibrasi warna merah

// nilai map pasti berbeda

warnaMerah = map(merahFreq, 74, 250, 255,0);

// Pengaturan photodiode flter warna hijau

digitalwrite(S2, HIGH);

digitalwrite(S3, HIGH);

// Membaca frekwensi output

hijauFreq = pulseIn(sensorout, LOW, 25000) / 2;

// lakukan kalibrasi warna hijau

// nilai map pasti berbeda

warnaHijau = map(hijauFreq, 102, 245, 255, θ);

// Pengaturan photodiode filter warna biru

digitalwrite(S2, LOW);

digitalwrite(S3, HIGH);

// Membaca frekwensi output

biruFreq = pulseIn(sensorOut, LOW, 25000) / 2;

// lakukan kalibrasi warna biru

// nilai map pasti berbeda

warnaBiru = map(biruFreq, 127, 254, 255, θ);

// Printing the value on the serial monitor

Serial.println(“Ra” + String(warnaMerah) +“ G=” + String(warnaHijau) +“ B=”

+String(warnaBiru));

lcd.clear();

lcd.setCursor(0, 0);

lcd.print(“Komposisi Warna”);

lcd.setCursor(0, 1);

lcd.print(“M=”+ String(warnaMerah) +“ H=”+ String(warnaHijau)+“B=”+ String(warnaBiru));

delay(1000);

}

Adapun hasil akhir proyek tampak seperti pada Gambar 7.14

Description

 

 


Leave a Reply

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.

Rahasia Bikin Aplikasi Playstore tidak Pake Coding Seri 02

Rahasia Bikin Aplikasi Playstore tidak Pakai Coding Seri 01

ebook murah dan berkualitas. banyak diskonnya. beli segera!!!

TAS MOBIL MULTIFUNGSI

Location

Visitor

0379464
Hari ini : 246
Kemarin : 338
Bulan ini : 4428
Total Kunjungan : 379464
Who's Online : 2
error: Content is protected !!