CV. ZENTRONIC - Perusahaan Jasa Listrik dan Elektronika

Tampilkan postingan dengan label LCD. Tampilkan semua postingan
Tampilkan postingan dengan label LCD. Tampilkan semua postingan

Senin, 20 Maret 2023

Cara Interface Sensor Gyroscope Accelerometer MPU-6050 dengan Arduino dan LCD

Introduction

Jika Anda pernah mempelajari fisika, Anda pasti tahu bahwa giroskop adalah alat yang umumnya digunakan untuk mengukur posisi sudut. Terutama, digunakan dalam kendaraan. Jika Anda seorang gamer, maka Anda harus memahami istilah ini. Karena beberapa game seluler yang luar biasa menggunakan ini untuk mengontrol pergerakan. Karena mengurangi pekerjaan manual pemain. Oleh karena itu, ponsel yang menggunakan giroskop terbaik sangat diminati.

Oleh karena itu, smartphone menggunakan sensor untuk mengaktifkan giroskop. Juga, giroskop mungkin dari jenis yang berbeda. Namun pada tutorial kali ini kita akan membahas sensor MPU6050. Jadi, kita akan menghubungkan ” Sensor Giroskop Akselerometer MPU-6050 dengan Arduino UNO dan LCD”.



 

 

Prinsip Kerja Sensor Akselerometer Giroskop

Gagasan gaya Coriolis digunakan dalam sensor. Terutama, sensor mengubah laju rotasi menjadi sinyal listrik. Selanjutnya, ia merasakan kecepatan sudut. Juga, mendeteksi kecepatan sudut yang dihasilkan oleh gerakan sensor. Selain itu, mendeteksi getaran yang dihasilkan oleh elemen eksternal dan mengubahnya menjadi sinyal listrik.

 Apa itu Accelerometer?

Merupakan sensor berfungsi untuk mengukur percepatan suatu benda atau objek yang bergerak yang bersifat dynamic maupun static.

Pengukuran dynamic merupakan pengukuran percepatan pada objek benda yang bergerak, sedangkan pengukuran static merupakan pengukuran percepatan objek terhadap gravitasi bumi.

Untuk hal ini accelerometer lebih sering digunakan untuk mengukur sudut kemiringan (tilt) dan secara dasarnya prinsip kerja dari accelerometer yaitu menggunakan prinsip percepatan (acceleration).


 

Apa itu Gyroscope MPU6050

Gyroscope merupakan sensor yang berfungsi untuk menentukan orientasi gerak dengan bertumpu pada roda yang berotasi dengan cepat pada sumbu yang berdasarkan momentum sudut.

Sebelum digunakan, gyro sensor harus dilakukan kalibrasi terlebih dahulu dengan menggunakan bandul. Proses kalibrasi tersebut berfungsi untuk memperoleh nilai faktor kalibrasi.

Gyroscope memiliki keluaran berupa kecepatan sudut dari arah 3 sumbu yaitu, sumbu x yang nantinya akan menjadi sudut phi (kanan dan kiri) dari sumbu y nantinya menjadi sudut theta (atas dan bawah), dan sumbu z nantinya menjadi sudut psi (depan dan belakang).

 

Spesifikasi MPU-6050

MPU-6050 adalah giroskop 3 sumbu dan akselerometer 3 sumbu. Giroskop memperkirakan gravitasi rotasi. Sedangkan akselerometer mengukur ciptaan gravitasi. Jadi, ini menghitung percepatan pada sumbu X, Y, dan Z. Dengan menggunakan nilai akselerometer sensor ini, seseorang dapat menghitung sudut dengan mencoba trigonometri.


 


Code Explanation

  • First, download the libraries MPU5060_tockn.h. You can download the libraries from:

 https://github.com/tockn/MPU6050_tockn

 

Schematic Diagram

 


 

 

 

 

 

 

 

 

Jika Arduino di hubungkan dengan MPU5060 dan LCD 16x2 dengan LCD I2C module.

 * Wiring Diagram (MPU6050 - Arduino)

  VCC  -  5V

  GND  -  GND

  SDA  -  SDA

  SCL  -  SCL

* Wiring Diagram (LCD I2C - Arduino)

  GND  -  GND

  VCC  -  5V

  SDA  -  A4

  SCL  -  A5

 

Coding

#include <MPU6050_tockn.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);

MPU6050 mpu6050(Wire);

void setup() {
  Serial.begin(9600);
  Wire.begin();
  mpu6050.begin();
  mpu6050.calcGyroOffsets(true);

  // initialize the LCD,
  lcd.begin();
  // Turn on the blacklight and print a message.
  lcd.backlight();
  lcd.print("ZENTRONIC");
  delay(5000);  
}

void loop() {

  mpu6050.update();
  Serial.print("angleX : ");
  Serial.print(mpu6050.getAngleX());
  Serial.print("  angleY : ");
  Serial.print(mpu6050.getAngleY());
  Serial.print("  angleZ : ");
  Serial.println(mpu6050.getAngleZ());
 
  lcd.clear();// clearn previous values from screen
  lcdDisplay(
             // to print X:
             0, // character 0  
             0, // line 0
             "X:",

             // to print AngleX
             2, // character 2
             0, // line 0
             mpu6050.getAngleX()
             );

  lcdDisplay(
             // to print Y:
             8, // character 13
             0, // line 0
             "Y:",

             // to print AngleY
             10, // character 0
             0, // line 1
             mpu6050.getAngleY()
             );  

  lcdDisplay(
             // to print Z:
             0, // character 7
             1, // line 1
             "Z:",

             // to print AngleZ
             2, // character 9
             1, // line 0
             mpu6050.getAngleZ()
             );                         
   delay(100);
}// loop end

void lcdDisplay(int tc, int tr, String title, int vc, int vr, float value)
{
   lcd.setCursor (tc,tr);
   lcd.print(title);
   
   lcd.setCursor (vc,vr);
   lcd.print(value);
 
}

Penjelasan Cara Kerja


 

Pertama, sambungkan Sensor Giroskop Akselerometer MPU-6050 dengan Arduino UNO. Kedua, Salin dan tempel kode di atas ke Arduino IDE Anda. Unggah kode di Arduino UNO. Jalankan serial monitor pada baud rate 9600 atau lihat parameter di LCD-nya. Dan, tekan tombol reset. Pindahkan sensornya. Ubah orientasinya. Anda dapat melihat pembacaan percepatan dan rotasi yang berbeda.  


 

Jumat, 20 Januari 2023

Cara Sederhana Program LCD 16x2 dengan Arduino

 

Dalam tutorial Arduino ini kita akan belajar bagaimana menghubungkan dan menggunakan LCD (Liquid Crystal Display) dengan Arduino. Layar LCD seperti ini sangat populer dan banyak digunakan di banyak proyek elektronik karena sangat bagus untuk menampilkan informasi sederhana, seperti data sensor, namun harganya sangat terjangkau.

Apa itu Tampilan Karakter LCD?

Tampilan karakter LCD adalah jenis tampilan unik yang hanya dapat menampilkan karakter ASCII individu dengan ukuran tetap. Dengan menggunakan karakter individu ini maka kita dapat membentuk sebuah teks.

Jika kita melihat lebih dekat pada tampilan, kita dapat melihat bahwa ada area persegi panjang kecil yang terdiri dari kisi-kisi 5x8 piksel. Setiap piksel dapat menyala satu per satu, sehingga kami dapat menghasilkan karakter dalam setiap kisi.



Jumlah area persegi panjang menentukan ukuran LCD. LCD yang paling populer adalah LCD 16x2, yang memiliki dua baris dengan 16 area persegi panjang atau karakter. Tentu saja, ada ukuran lain seperti 16×1, 16×4, 20×4 dan seterusnya, tetapi semuanya bekerja dengan prinsip yang sama. Juga, LCD ini dapat memiliki latar belakang dan warna teks yang berbeda.

LCD 16 × 2 Pinout

Ini memiliki 16 pin dan yang pertama dari kiri ke kanan adalah pin Ground. Pin kedua adalah VCC yang kita hubungkan dengan pin 5 volt pada Board Arduino. Berikutnya adalah pin Vo tempat kita dapat memasang potensiometer untuk mengontrol kontras tampilan.

Selanjutnya, RS pin atau Register  Select pin digunakan untuk memilih apakah kita akan mengirimkan perintah atau data ke LCD. Misalnya jika pin RS disetel pada keadaan rendah atau nol volt, maka kita mengirimkan perintah ke LCD seperti: atur kursor ke lokasi tertentu, bersihkan layar, matikan layar dan sebagainya. Dan ketika pin RS di set pada status High atau 5 volt kita sedang mengirimkan data atau karakter ke LCD.



Berikutnya adalah pin R/W yang memilih mode apakah kita akan membaca atau menulis ke LCD. Di sini mode tulis jelas dan digunakan untuk menulis atau mengirim perintah dan data ke LCD. Mode baca digunakan oleh LCD itu sendiri saat menjalankan program yang tidak perlu kita bahas dalam tutorial ini.

 

Berikutnya adalah pin E yang memungkinkan penulisan ke register, atau 8 pin data berikutnya dari D0 ke D7. Jadi melalui pin ini kita mengirimkan data 8 bit saat kita menulis ke register atau misalnya jika kita ingin melihat huruf besar terakhir A pada tampilan kita akan mengirimkan 0100 0001 ke register sesuai dengan tabel ASCII. Dua pin terakhir A dan K, atau anoda dan katoda adalah untuk lampu belakang LED.

Lagi pula, kita tidak perlu terlalu khawatir tentang cara kerja LCD, karena Library LCD menangani hampir semuanya. Dari situs web resmi Arduino Anda dapat menemukan dan melihat fungsi Library yang memungkinkan penggunaan LCD dengan mudah. Kita dapat menggunakan Library dalam mode 4 atau 8 bit. Dalam tutorial ini kita akan menggunakannya dalam mode 4 bit, atau kita hanya akan menggunakan 4 dari 8 pin data.

Cara Menghubungkan Arduino ke LCD – Wiring Diagram

Inilah cara kita perlu menghubungkan layar LCD 16x2 ke papan Arduino.



Arduino LCD Code

Berikut adalah kode sederhana yang dapat digunakan untuk menjelaskan prinsip kerja Library Liquid Crystal.

/*

* Tutorial Cara Sederhana Program LCD 16x2

*

* Created by Lucky M Malik

* www.zentronic.co.id

*

*/

 

#include <LiquidCrystal.h> // Termasuk Liquid Crystal Library.

LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Buat objek LCD. Parameters: (rs, enable, d4, d5, d6, d7).

 

void setup() {

 lcd.begin(16,2); // Initial interface ke layar LCD, dan spek. dimensinya (Lebar dan Tinggi).

}

 

void loop() {

 lcd.print("ZENTRONIC"); // cetak "Arduino" di LCD.

 delay(3000); // tunda 3 detik.

 lcd.setCursor(2,1); // set kursor-nya.

 lcd.print("LCD TUTORIAL");

 delay(3000);

 lcd.clear(); // Bersihkan Layar LCD.

 lcd.blink(); // Tampilkan blinking di Layar.

 delay(4000);

 lcd.setCursor(7,1);

 delay(3000);

 lcd.noBlink(); // Matikan blinking di Layar.

 lcd.cursor(); // Menampilkan kursor di Layar yang akan ditulis.

 delay(4000);

 lcd.noCursor(); // Sembunyikan kursor di Layar.

 lcd.clear(); // Bersihkan Layar LCD.

}

Deskripsi kode:

 

Hal pertama yang perlu kita lakukan adalah memasukkan Liquid Crystal Library. Kita bisa melakukannya seperti ini: Sketch > Include Library > Liquid Crystal. Kemudian kita harus membuat objek LCD. Parameter objek ini harus berupa nomor pin Input Digital Board Arduino masing-masing ke pin LCD sebagai berikut: (RS, Enable, D4, D5, D6, D7). Dalam pengaturan kita harus menginisialisasi antarmuka ke LCD dan menentukan dimensi tampilan menggunakan fungsi begin().

Dalam loop kami menulis program utama kami. Menggunakan fungsi print() kami mencetak pada LCD.

lcd.print("Arduino"); // Mencetak "Arduino" di LCD

Fungsi setCursor() digunakan untuk mengatur lokasi di mana teks selanjutnya yang ditulis ke LCD akan ditampilkan.

lcd.setCursor(2,1); // Mengatur lokasi di mana teks berikutnya yang ditulis ke LCD akan ditampilkan

Fungsi blink() digunakan untuk menampilkan kursor yang berkedip dan fungsi noBlink() untuk mematikan.

lcd.blink(); //Menampilkan kursor LCD yang berkedip

Fungsi cursor() digunakan untuk menampilkan kursor garis bawah dan fungsi noCursor() untuk mematikan. Menggunakan fungsi clear() kita dapat membersihkan layar LCD.

 

Kesimpulan

Jadi, kami telah membahas hampir semua yang perlu kami ketahui tentang menggunakan LCD dengan Arduino. Tampilan Karakter LCD ini sangat berguna untuk menampilkan informasi untuk banyak proyek elektronik. Dalam contoh di atas saya menggunakan LCD 16x2, tetapi prinsip kerja yang sama berlaku untuk ukuran lain dari tampilan karakter ini.


 

Saya harap Anda menikmati tutorial ini dan belajar sesuatu yang baru. Jangan ragu untuk mengajukan pertanyaan apa pun di bagian komentar di bawah ini.

Arduino – LM35 Temperature Sensor

  Sensor Suhu seri LM35 adalah perangkat suhu sirkuit terpadu presisi dengan tegangan keluaran yang berbanding lurus dengan suhu Celcius. ...