Arduino Uno Ultrasonic Sensor Project

1:21 PM Comment

 

Radar

Apakah kalian tahu? Radar pertama kali dikembangkan sebagai metode untuk mendeteksi pesawat musuh pada Perang Dunia 2. Seiring dengan perkembangan teknologi, saat ini digunakan di berbagai sektor. Sejak beberapa tahun terakhir, telah terjadi kemajuan yang signifikan dalam penggunaan teknologi radar.

Contoh pengunaan sensor ultrasonik yaitu seperti proyek radar Arduino menggunakan Sensor Ultrasonik untuk pendeteksiannya.

Proyek radar Arduino ini biasanya bertujuan untuk mencapai prototipe sistem radar berbasis papan Arduino yang mendeteksi benda diam dan bergerak.

Kata RADAR berarti Radio Deteksi Dan Jangkauan. Radar adalah sistem deteksi objek yang menggunakan gelombang mikro untuk menentukan jangkauan, ketinggian, arah, dan kecepatan objek dalam radius sekitar 100 mil dari lokasinya.

Antena radar mentransmisikan gelombang radio atau gelombang mikro yang memantul dari objek apa pun di jalurnya. Karena itu, kita dapat dengan mudah menentukan objek dalam jangkauan radar.

Gambar di bawah ini menunjukkan proyek radar Arduino.


Arduino Uno Ultrasonic Sensor Project


Water Leavel

Indikator ketinggian air ultrasonik terutama terdiri dari modul ultrasonik HC-SR04, yang digunakan untuk pembacaan jarak non-kontak. Untuk mengukur ketinggian air, letakkan modul ultrasonik di atas tangki secara vertikal ke bawah, sehingga transduser menghadap ke air.


Arduino Uno Ultrasonic Sensor Project

Ketika gelombang merambat dari media udara ke air, sebagian besar gelombang ultrasonik yang ditransmisikan dipantulkan kembali ke modul. Dengan menghitung waktu tempuh gelombang ke permukaan air, Arduino mengubah output modul menjadi satuan panjang yang sesuai dalam centimeter.

Pengukur Tinggi Badan

Kalian semua pernah melihat mesin pengukur tinggi badan di pusat perbelanjaan. Sayangnya, mereka jarang digunakan karena Anda harus membayar untuk menggunakannya. Tapi jangan khawatir, dengan sedikit kesabaran kita bisa membuat mesin pengukur tinggi badan kita sendiri, mempelajari ilmu di baliknya dan mendapatkan beberapa pengalaman DIY.


Arduino Uno Ultrasonic Sensor Project


Disini menggunakan Sensor Ultrasonik untuk mengukur ketinggian. Ultrasonic berisi dua komponen yang tampak bulat yang merupakan speaker ultrasonik. Salah satu mentransmisikan gelombang suara 40khz yang akan memantul (bergema) kembali saat mengenai permukaan padat. Yang lain mendeteksi gema. Dengan mengukur total waktu yang dibutuhkan untuk proses ini, kita dapat mengukur jarak antara sensor dan objek.

Untuk membuat alat pengukur ketinggian, sensor ultrasonik harus ditempatkan di tempat yang tinggi dengan sensor menghadap ke bawah. pastikan tidak ada yang menghalangi sensor dari lantai, dan mengkalibrasi sensor dengan menekan sebuah tombol.

[Lengkap] Urutan Osi Layer Beserta Penjelasannya

3:26 PM Comment

 

[Lengkap] Urutan Osi Layer Beserta Penjelasannya

Apa itu osi layer ?

Model Open System Interconnection (OSI) menjelaskan tujuh lapisan yang digunakan sistem komputer untuk berkomunikasi melalui jaringan. Osi layer merupakan model standar pertama untuk komunikasi jaringan, diadopsi oleh semua perusahaan komputer dan telekomunikasi terbesar pada awal 1980-an

Osi layer merupakan kerangka kerja konseptual yang menggambarkan jaringan atau sistem telekomunikasi yang terdiri dari tujuh lapisan masing-masing dengan fungsi yang berbeda beda.

Model 7 layer OSI masih banyak digunakan, karena membantu memvisualisasikan dan mengkomunikasikan bagaimana jaringan beroperasi, dan membantu mengisolasi dan memecahkan masalah jaringan.

OSI diperkenalkan pada tahun 1983 oleh perwakilan dari perusahaan komputer dan telekomunikasi terbesar, dan diadopsi oleh ISO sebagai standar internasional pada tahun 1984.

7. Application Layer

Lapisan ini digunakan oleh perangkat lunak pengguna, seperti browser web dan sejenisnya. Pada lapisan ke 7 ini menyediakan protokol yang memungkinkan perangkat lunak untuk mengirim dan menerima informasi dan menyajikan data yang dibutuhkan kepada pengguna. Beberapa contoh protokol lapisan aplikasi adalah Hypertext Transfer Protocol (HTTP), File Transfer Protocol (FTP), Post Office Protocol (POP), Simple Mail Transfer Protocol (SMTP), dan Domain Name System (DNS).

6. Presentation Layer

Pada lapisan ini menyiapkan data untuk lapisan ke 7. Pada layer ini mendefinisikan bagaimana dua perangkat harus menyandikan, mengenkripsi, dan mengompresi data sehingga diterima dengan benar dipada layer selanjutnya. Lapisan ini mengambil data yang dikirimkan oleh aplication layer dan mempersiapkannya untuk transmisi melalui session layer.

5. Session Layer

Session layer membuat saluran komunikasi, yang disebut sessions dengan antar perangkat. Lapisan ini bertanggung jawab untuk membuka session, memastikan session tetap terbuka dan berfungsi saat data sedang ditransfer, dan menutupnya saat komunikasi berakhir. Lapisan ini juga dapat mengatur pos pemeriksaan selama transfer data jika session terganggu, perangkat dapat melanjutkan transfer data dari pos pemeriksaan terakhir.

4. Transport Layer

Pada lapisan ini bertugas untuk mengambil data yang ditransfer di session layer dan memecahnya menjadi "segmen" di ujung pergantian layer. Lapisan ini bertanggung jawab untuk merakit kembali segmen di ujung penerima, mengubahnya kembali menjadi data yang dapat digunakan oleh sessioan layer. Transport layer melakukan flow control, mengirimkan data dengan kecepatan yang sesuai dengan kecepatan koneksi perangkat, dan error control, memeriksa apakah data yang diterima salah dan jika tidak akan memintanya kembali.

3. Network layer

Lapisan jaringan memiliki dua fungsi utama. Salah satunya adalah memecah segmen menjadi paket jaringan, dan memasang kembali paket di sisi penerima. Fungsi yang lainnya adalah merutekan paket dengan menemukan jalur terbaik melintasi jaringan fisik. Lapisan ini menggunakan alamat jaringan (biasanya alamat Protokol Internet) untuk merutekan paket ke node tujuan.

2. Data Link Layer

Lapisan data link membuat dan mengakhiri koneksi antara dua node yang terhubung secara fisik di jaringan. Lapisan ini memecah paket menjadi bingkai dan mengirimkannya dari sumber ke tujuan. Lapisan ini terdiri dari dua bagian Logical Link Control (LLC), yang mengidentifikasi protokol jaringan, melakukan pemeriksaan kesalahan dan menyinkronkan frame, dan Media Access Control (MAC) yang menggunakan alamat MAC untuk menghubungkan perangkat dan menentukan izin untuk mengirim dan menerima data.

1. Physical Layer

Lapisan fisik bertanggung jawab atas kabel fisik atau koneksi nirkabel antara node jaringan. Lapisan ini mendefinisikan konektor, kabel listrik atau teknologi nirkabel yang menghubungkan perangkat, dan bertanggung jawab untuk transmisi data mentah..

Membuat Bel Cerdas Cermat Sederhana Untuk Pemula

11:07 AM Comment

 

Membuat Bel Cerdas Cermat Sederhana Untuk Pemula

Bel cerdas cermat banyak digunakan pada lomba lomba disekolah atau pada masyarakat, bel ini difungsikan untuk mengetahui siapa yang terlebih dahulu memencet bel dan akan menjawab pertanyaan dari moderator. Pada artikel kali ini akan membahas mengenai cara membuat bel cerdas cermat paling sederhana dengan menggunakan relay DPDT. Komponen yang digunakan pada pembuatan bel cerdas cermat ini cukup mudah ditemuka di toko komponen elektronika misalnya

  • Relay DPDT 5V
  • Button
  • Buzzer
  • Led
  • Baterai sebagai catu daya

Untuk rangkaian bel cerdas cermat dapat dilihat pada gambar dibawah ini


Membuat Bel Cerdas Cermat Sederhana Untuk Pemula

Pada relay DPDT diatas terdapat 8 kaki rangkai relay sesuai pada gambar diatas kemudian fungsi led pada rangkaian diatas digunakan untuk mengetahui siapa yang terlebih dahulu memencet tombol bel, karena cara kerja dari bel cerdas cermat diatas jika salah satu tombol ditekan led akan hidup dan maka led pada tombol lainnya tidak akan hidup, tambahkan juga buzzer yang dihubungkan pada kabel merah dan hitam pada LED untuk menambahkan suara pada bel cerdas cermat, untuk power pada rangkaian ini menggunakan baterai atau dapat juga menggunakan adaptor

[Lengkap] Bagian - Bagian Komputer dan Fungsinya

7:13 PM Comment

Kali ini akan membahas mengenai bagian – bagian komputer beserta fungsinya, komputer dibagai menjadi due yaitu perangkat keras atau hardware dan perangkat lunak atau software, hardware juga terdiri dari beberapa komponen yaitu internal hardware dan eksternal hardware.

[Lengkap] Bagian -  Bagian Komputer dan Fungsinya

Internal hardware terdiri dari :

  • Motherboard : Merupakan komponen yang menampung atau tempat unit pemrosesan pusat (CPU) dan perangkat keras internal penting lainnya dan berfungsi sebagai hub pusat yang dijalankan oleh semua komponen perangkat keras lainnya.
  • CPU / Processor : Adalah otak dari komputer yang memproses dan mengeksekusi instruksi digital dari berbagai program, kecepatan clocknya menentukan kinerja dan efisiensi komputer dalam memproses data.
  • Random Access Memory (RAM) : Perangkat keras fisik di dalam komputer yang menyimpan data sementara. Hal ini biasanya ditemukan di slot memori motherboard. Perannya adalah sebagai "memori kerja" komputer untuk informasi yang dibuat oleh program, secara umum semakin cepat RAM, semakin cepat kecepatan pemrosesan di mana memori memindahkan data ke komponen lain.
  • Hard disk : Perangkat penyimpanan fisik yang menyimpan data permanen dan sementara dalam format yang berbeda, termasuk program, OS, file perangkat, foto, dll.
  • Heatsink : Perangkat keras pasif yang menarik panas dari komponen untuk mengatur/mengurangi suhunya guna membantu memastikan komponen tersebut terus berfungsi dengan baik. Biasanya, heat sink dipasang langsung di atas CPU / processo, karena processor komponen yang menghasilkan panas paling banyak di antara komponen internal lainnya.
  • Network interface card (NIC) : NIC adalah papan sirkuit atau chip yang memungkinkan komputer terhubung ke jaringan, juga dikenal sebagai adaptor jaringan atau adaptor jaringan area lokal, biasanya mendukung koneksi ke jaringan Ethernet.

Eksternal hardware terdiri dari input dan output.

Dibawah ini merupakan beberapa contoh input hardware :

  • Mouse : perangkat untuk menggerakkan kursor di sekitar layar komputer dan memungkinkan interaksi dengan objek di layar. Terdapat mouse yang kabel atau nirkabel.
  • Keyboard : perangkat input yang menampilkan keyset QWERTY standar yang memungkinkan user memasukkan teks, angka, atau karakter khusus.
  • Mikrofon : perangkat yang menerjemahkan gelombang suara menjadi sinyal listrik dan mendukung komunikasi audio berbasis komputer.
  • Kamera : perangkat yang menangkap gambar visual dan mengirimkannya ke komputer atau melalui komputer ke jaringan yang terhubung
  • Touchpad : perangkat input, eksternal atau bawaan laptop, yang digunakan untuk mengontrol penunjuk pada layar tampilan. Ini biasanya merupakan alternatif untuk mouse eksternal.
  • USB flash drive : perangkat penyimpanan eksternal yang dapat dilepas yang menggunakan memori flash dan antarmuka dengan komputer melalui port USB.

Contoh output hardware yaitu :

  • Monitor : perangkat output yang mirip dengan layar TV yang menampilkan informasi, dokumen, atau gambar yang dihasilkan oleh perangkat komputasi.
  • Printer : membuat data elektronik berupa softfile dari komputer menjadi bentuk hardfile atau bentuk fisik yang dapat dirasakan.
  • Speaker : perangkat output audio eksternal yang terhubung ke komputer untuk menghasilkan output suara.

Headphone, earphone, earbud. Mirip dengan speaker, perangkat ini menyediakan output audio yang hanya dapat didengar oleh satu pendengar.

Perangkat keras mengacu pada komponen nyata komputer atau sistem pengiriman yang menyimpan dan menjalankan instruksi tertulis yang disediakan oleh perangkat lunak. Perangkat lunak adalah bagian tidak berwujud dari perangkat yang memungkinkan pengguna berinteraksi dengan perangkat keras dan memerintahkannya untuk melakukan tugas-tugas tertentu. Perangkat lunak komputer mencakup hal-hal berikut:

  • OS atau operating system
  • program yang mengontrol fungsi komputer tertentu
  • aplikasi yang biasanya melakukan operasi pada data yang disediakan pengguna.

Karena perangkat lunak dan perangkat keras bergantung satu sama lain untuk memungkinkan komputer menghasilkan keluaran yang berguna, perangkat lunak harus dirancang untuk bekerja dengan baik dengan perangkat keras.

Kehadiran perangkat lunak berbahaya, atau malware, seperti virus, Trojan horse, spyware, dan worm, dapat berdampak besar pada program komputer dan OS sistem. Perangkat keras tidak terpengaruh oleh malware.

Namun, malware dapat memengaruhi sistem dengan cara lain. Misalnya, ia dapat menghabiskan sebagian besar memori komputer atau bahkan mereplikasi dirinya sendiri untuk mengisi hard drive perangkat. Ini memperlambat komputer dan juga dapat mencegah program yang sah berjalan. Malware juga dapat mencegah pengguna mengakses file di penyimpanan perangkat keras komputer..

Penjelasan Internet of Things (IoT) & Contohnya

1:40 PM Comment

 

Penjelasan Internet of Things (IoT) & Contoh Penerapannya

Apa itu Internet of Thing (IoT) ?

Internet of Things (IoT) yaitu gambaran jaringan objek fisik “sesuatu” yang disematkan dengan sensor, perangkat lunak, dan teknologi lainnya untuk tujuan menghubungkan dan bertukar data dengan perangkat dan sistem lain melalui internet. Perangkat IoT ini berkisar dari benda-benda rumah tangga biasa hingga alat-alat industri yang canggih. Dengan lebih dari 7 miliar perangkat IoT yang terhubung saat ini, para ahli memperkirakan jumlah ini akan tumbuh menjadi 22 miliar pada tahun 2025.

Kenapa  Internet of Things (IoT) penting pada saat ini?

Selama beberapa tahun terakhir, IoT telah menjadi salah satu teknologi terpenting abad sekarang. Sekarang kita dapat menghubungkan benda sehari-hari seperti peralatan dapur, mobil, termostat, monitor bayi ke internet melalui perangkat yang disematkan.

Melalui komputasi berbiaya rendah, cloud, data besar, analitik, dan teknologi seluler, hal-hal fisik dapat berbagi dan mengumpulkan data dengan intervensi manusia yang minimal. Di dunia yang sangat terhubung ini, sistem digital dapat merekam, memantau, dan menyesuaikan setiap interaksi antara hal-hal yang terhubung. Dunia fisik bertemu dengan dunia digital dan mereka akan saling bekerja sama.

Contoh penerapan IoT dalam industri

IoT dalam bidang industri mengacu pada penerapan teknologi IoT dalam pengaturan industri, terutama yang berkaitan dengan instrumentasi dan kontrol sensor dan perangkat yang menggunakan teknologi cloud. Pada saat ini industri telah menggunakan komunikasi mesin ke mesin (M2M) untuk mencapai otomatisasi dan kontrol secara nirkabel. Tetapi dengan munculnya cloud dan teknologi seperti such as analytics and machine learning, industri dapat mencapai tahapan otomatisasi baru dan dengan itu menciptakan pendapatan dan model bisnis baru. IoT terkadang disebut sebagai gelombang keempat revolusi industri, atau Industri 4.0. Berikut ini adalah beberapa contoh umum untuk IoT skala industri:

Smart manufacturing, Smart city Dan masih banyak lagi kegunaan IoT dalam industri.

Contoh projek IoT yang bisa kita buat sendiri yaitu:

Smart Home

Smart Home merupakan proyek IoT yang paling banyak dicari. Smart home yaitu proyek otomatisasi rumah berbasis IoT bertujuan untuk mengotomatisasi fungsi peralatan dan objek rumah tangga melalui Internet. Semua benda rumah tangga yang terhubung melalui jaringan IoT dapat dikontrol dan dioperasikan melalui smartphone.

Penjelasan Internet of Things (IoT) & Contoh Penerapannya

Proyek berbasis IoT ini menggunakan sistem otomatisasi rumah berbasis sentuhan. Komponen proyek ini termasuk koneksi WiFi, mikrokontroler, pin input sensor sentuh bawaan. Sementara mikrokontroler terintegrasi dengan modem WiFi untuk mendapatkan perintah dari pengguna melalui Internet, layar LCD menampilkan status sistem. Ketika mikrokontroler menerima perintah, mikrokontroler memproses instruksi untuk mengoperasikan sistem yang sesuai dan menunjukkan status sistem pada layar LCD.

Alarm Anti Maling

Keamanan adalah salah satu pilihan utama untuk rumah atau kantor. Memiliki sistem keamanan yang kuat membantu mencegah penyusup yang tidak diinginkan. Sistem anti-pencurian berbasis IoT adalah solusi sempurna untuk melindungi rumah atau kantor.

Penjelasan Internet of Things (IoT) & Contohnya

Sistem keamanan berbasis IoT ini diprogram untuk menegtahui jika ada jendela atau pintu yang dibobol oleh pencuri. Saat dihidupkan, satu gerakan dapat memicu alarm, sehingga mengingatkan pemilik rumah atau kantor tentang orang yang tidak diinginkan. Alat ini dapat digunakan ketika Anda mengosongkan rumah atau bangunan lainnya, sensor PIR diaktifkan untuk melacak setiap gerakan di dalam dan di sekitar bangunan. Ini adalah salah satu proyek IoT terbaik untuk dipraktikkan.

Jadi jika penyusup memasuki bangunan, sensor akan mengirim data ke mikrokontroler, yang kemudian mengubahnya menjadi sinyal bagi kamera untuk mengambil gambar penyusup. Gambar ini kemudian secara otomatis dikirim ke pengguna di smartphone.

Projek Arduino Dengan LCD Menggunakan 3 Jenis LCD Yang Berbeda

12:43 PM Comment

 

Pada pembahasan ini akan dibahas mengenai tiga layar LED kecil dan murah yang dapat Anda sambungkan dengan mudah ke Arduino Anda.

Teknologi

Perangkat ini adalah Liquid Crystal Displays dan telah ada selama beberapa waktu. Mereka tidak memancarkan cahaya tetapi menghalanginya. Mereka mungkin memiliki lampu latar atau mengandalkan cahaya yang dipantulkan.

Setiap tampilan terdiri dari beberapa lapisan dan memanfaatkan cahaya terpolarisasi. Jika Anda mempolarisasi cahaya secara horizontal dengan satu filter, Anda dapat memotong cahaya sepenuhnya dengan filter terpolarisasi vertikal. Beberapa cairan akan memutar sudut polarisasi ketika tegangan diterapkan pada mereka yang memungkinkan cahaya terpolarisasi melewati filter.

Mereka disebut " twisted nematic liquid crystals". Jika Anda menjepit kristal seperti itu di antara dua polarisator, bersilangan pada 90°, cahaya biasanya akan terhalang. Jika tegangan diterapkan pada kristal, ia 'memutar' polarisasi cahaya saat melewati kristal dan diizinkan melalui filter polarisasi kedua. Layar kristal cair terdiri dari banyak lapisan tetapi tetap sangat tipis.

Salah satu penggunaan pertama layar LCD adalah dengan kalkulator elektronik pada awal 1970-an, menggantikan layar 8 segmen merah kecil sebelumnya dengan lensa pembesar. Perangkat monokrom kecil ini segera digunakan dalam jam, jam tangan, dan aplikasi kecil berdaya rendah lainnya.

Kelebihan

  • Kontras tinggi
  • Biaya rendah
  • Daya rendah
  • Kompak dan sangat ringan

Kekurangan

  • Seringkali membutuhkan sumber cahaya tambahan
  • Rentan
  • Lambat bereaksi

pada artikel kali ini menggunakan :

  • Layar OLED MakerHawk i2C dengan 128x64 piksel (biru)
  • Layar OLED MakerHawk i2C dengan 128×32 piksel (putih)
  • HD44780 2004 Tampilan dengan konverter i2C (4 baris 20 karakter)

Dua yang pertama dapat menampilkan elemen grafis (garis, lingkaran, gambar dll dan teks) sedangkan yang terakhir adalah tampilan karakter saja.

Tampilan OLED MakerHawk dengan chip driver SSD1306

Ini adalah perangkat I2C dan hanya perlu dihubungkan ke 3.3V-5V, GND, SCL, dan SDA. Bentuknya sangat kecil (diagonal masing-masing 0,96” dan 0,91”) ringan, dengan piksel kecil dan kontras yang sangat baik, membuatnya sangat mudah dibaca. Layar yang lebih besar berwarna biru sedangkan yang lebih kecil berwarna putih.

Mereka tidak memiliki lampu latar dan mengandalkan refleksi. Yang lebih besar dilengkapi dengan 40 kabel DuPont FF berwarna dan pin sambungan yang perlu disolder ke papan. Anda mendapatkan dua layar yang lebih kecil dalam paket, tetapi tidak ada pin koneksi, soket, atau kabel. Tidak ada informasi yang diberikan tentang cara menghubungkannya ke Arduino Anda atau cara mengontrolnya. Layar dilindungi dengan penutup plastik. (Lepaskan dengan hati-hati karena layarnya halus.) Empat sambungan untuk I2C ditandai dengan jelas di papan. Kedua perangkat memiliki alamat I2C 0x3C.

Langkah selanjutnya adalah menyolder pada pin atau soket dan menghubungkannya ke Arduino Anda.

Layar OLED MakerHawk 12C dengan 128×64 (biru)


Projek Arduino Dengan LCD  Menggunakan 3 Jenis LCD Yang Berbeda

Proyek #1: Menggunakan Arduino dengan papan LCD 128×64 piksel SSD1306

Bahan yang dibutuhkan:

  • Arduino – UNO standar atau kloning
  • Layar OLED MakerHawk 12C dengan 128×64
  • Menghubungkan kabel
  • Potensiometer 10K Ohm

Projek Arduino Dengan LCD  Menggunakan 3 Jenis LCD Yang Berbeda

Untuk demonstrasi ini potensiometer akan memberikan tegangan input variabel pada pin A0 Arduino.

A4 adalah pin SDA dan A5 adalah pin SCL pada Arduino UNO. Papan lain mungkin memiliki pin yang berbeda, jadi periksalah sebelum Anda menghubungkannya. VCC pergi ke 5V dan GND ke GND. Penghapus potensiometer menuju A0 pada Arduino dan pin lainnya ke 5V dan GND.

Sekarang kita perlu mendapatkan library yang sesuai untuk papan SSD1306 dan untuk tampilan grafis. Adafruit telah menyediakan beberapa perpustakaan yang sangat berguna yang mudah dipasang pada versi Arduino IDE saat ini.

Mulai perangkat lunak Arduino dan gunakan Manajer Perpustakaan untuk mencari dan menginstal perpustakaan Adafruit SSD1306 (2.2.1 pada saat penulisan). Ini mencakup ukuran papan dan versi I2C dan SPI. Itu juga menginstal semua dependensi. Ambil opsi untuk menginstal pustaka GFX dan pustaka BusIO secara bersamaan (https://github.com/adafruit/Adafruit_SSD1306

Periksa di bagian bawah Menu Contoh bahwa semua library yang diperlukan telah diinstal.

Projek Arduino Dengan LCD  Menggunakan 3 Jenis LCD Yang Berbeda


Perhatikan bahwa library mencakup kedua ukuran layar serta protokol SPI dan I2C.

Sekarang kita siap untuk melihat dapat melihat apa yang dapat dilakukan oleh layar. Saya telah menyediakan beberapa skrip untuk menunjukkan keserbagunaan tampilan ini. Yang pertama menunjukkan kemampuan grafis, tanpa campur tangan pengguna melalui potensiometer. Saya telah menyertakan banyak komentar sehingga Anda dapat melihat apa yang sedang terjadi.

Projek Arduino Dengan LCD  Menggunakan 3 Jenis LCD Yang Berbeda


Asal layar adalah kiri atas (0,0) dengan 128 piksel horizontal (0…127) bergerak ke kanan dan 64 piksel vertikal (0…63) bergerak ke bawah.

Projek Arduino Dengan LCD  Menggunakan 3 Jenis LCD Yang Berbeda


Layarnya mungkin kecil tetapi sangat jernih dan tajam dengan ruang yang cukup untuk menjadi sangat berguna.

[program1]
#include 
#include 
#include 

#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels

// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
#define OLED_RESET     4 // Reset pin # (or -1 if sharing Arduino reset pin)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

void show() { // Often used sequence - Function to simplify code
  display.display();
  delay(2000);
  display.fillScreen(SSD1306_BLACK);
}
void show2() { // Faster
  display.display();
  delay(400);
  display.fillScreen(SSD1306_BLACK);
}
void setup() {
  Serial.begin(9600);
  randomSeed(analogRead(0));
  // SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Old Address 0x3D for 128x64
    Serial.println(F("SSD1306 allocation failed"));
    for(;;); // Don't proceed, loop forever
  }
  
// Initialise some variables
  int cw = SSD1306_WHITE; // colour white
  int cb = SSD1306_BLACK; // colour black
  int wait = 2000; // 2 second delay
  int x0 = 7; // 3 pairs of co-ordinates
  int y0 = 7;
  int x1 = 123;
  int y1 = 23;
  int x2 = 50;
  int y2 = 61;
  int w = 117; // Width
  int h = 56;  // Height
  
// Draw a Title screen
  display.clearDisplay();
  display.setTextSize(2);              // Middle
  display.setTextColor(cw);
  display.setCursor(0,15);
  display.println("SSD1306");
  display.println("       GFX");
  display.setCursor(10,53);
  display.setTextSize(1);
  display.println("Tutorial45.com");
  display.display(); delay(wait);
  randomSeed(analogRead(1));
  display.fillScreen(cw);              // Fill screen WHITE
  display.setTextColor(cb);
  display.setCursor(40,53);
  display.println("Tutorial45.com");
  display.setTextColor(cw);
  display.display(); delay(wait); 
  display.fillScreen(cb);              // Fill screen BLACK
  display.display();
  
// Display some Pixels
  for (int m = 0; m <= 17; m++)  {     // 17 random pixels
    int xx = random(127);
    int yy = random(63);
    display.drawPixel(xx, yy, cw);
    display.display();
    delay(130);
  }
  delay(wait); 
  display.clearDisplay();
  
// Draw a Sine curve
  float sine[127]; 
// Initialise variables
  display.fillScreen(cb);
  display.setTextColor(cw);
  display.setCursor(10,56);
  display.setTextSize(1);
  display.println("Sine Curve");
  display.drawFastHLine(0, 32, 127 ,cw);
  for (int i = 0; i < 128; i++){
    sine[i] = (sin(radians(i *2.8125))) * -1; 
    display.drawPixel(i,int(sine[i]*25+32),cw);
    display.display();
  }
  show();

// Demonstrate basic shapes
  display.drawLine(x0, y0, x1, y1 + 30, cw);
  show2();
  display.drawFastVLine(50, 12, h, cw);  // Fast vertical line of length l
  show2();
  display.drawFastHLine(5, 45, w ,cw);   // Fast horizontal line of length w 
  show2();
  // Random lines
  for( int m = 0; m <10 -1="" -="" 0..3="" 0="" 0ptions="" 10="" 11="" 127="" 130="" 14="" 180="" 1:1="" 1="" 21="" 270="" 2="" 31="" 32="" 4="" 5="" 64="" 90="" a="" along="" and="" at="" backgnd="" blocky="" cb="" ch="" char="" circles="" code="" colour="" corner="" corners="" cw="" degrees="" delay="" display.cleardisplay="" display.display="" display.drawchar="" display.drawcircle="" display.drawfasthline="" display.drawfastvline="" display.drawline="" display.drawrect="" display.drawroundrect="" display.drawtriangle="" display.fillcircle="" display.fillrect="" display.fillroundrect="" display.filltriangle="" display.print="" display.println="" display.setcursor="" display.setrotation="" display.settextcolor="" display.settextsize="" draw="" empty="" ext="" few="" finish="" float="" for="" foregnd="" grid="" h="" halts="" har="" inished="" int="" large="" linear="" loop="" m="" medium="" middle="" moving="" msg2="" msg="" n="" normal="" of="" otate="" p="" path="" pixel="" program="" r="" radius="" rather="" rduino="" rotation="" rounded="" rt="" scale="" screen="" show2="" show="" size="" sizes="" splash="" start="" text="" the="" title="" top-left="" tutorial45.com="" up="" utorial45.com="" values="" void="" w="" wait="" which="" white="" x0="" x1="" x2="" x="" xl="" xr="" xx="" y0="" y1="(cos(radians(p" y2="y2" y="" yl="" yr="" yy="">

Yang paling penting untuk diingat adalah bahwa tidak ada perubahan yang ditentukan oleh skrip yang akan benar-benar muncul di layar sampai instruksi display.display() dijalankan. Perubahan berlangsung di latar belakang dan instruksi ini memaksa pembaruan ke tampilan. Dalam skrip ini sering disembunyikan di dalam rutin show().

Ingatlah bahwa ini adalah tampilan monokrom sederhana jadi kami hanya memiliki dua warna.

Contoh kedua menunjukkan pengguna memperbarui tampilan dengan mengubah input fisik. Saat potensiometer diputar, beberapa nilai yang ditampilkan berubah dan grafik batang berubah panjangnya.

Projek Arduino Dengan LCD  Menggunakan 3 Jenis LCD Yang Berbeda


[program2]

#include               
#include 
#include 

#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels

// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
#define OLED_RESET     4 // Reset pin # (or -1 if sharing Arduino reset pin)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

int sensorPin = A0;   // select the input pin for the potentiometer
int sensorValue = 0;  // variable to store the value coming from the sensor

void setup() {
  Serial.begin(9600);
  // SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3D for 128x64
    Serial.println(F("SSD1306 allocation failed"));
    for(;;); // Don't proceed, loop forever
  }
  display.clearDisplay();
  display.setTextSize(1);             // Small
  display.setTextColor(SSD1306_WHITE); 
  display.setCursor(0,0);             // Top Left corner
  display.println("SSD1306 Project");
  display.setCursor(20,10);
  display.println("Volts - Turn Pot");
  display.setCursor(64,118);
  display.setCursor(0,57);
  display.println("  Raw Pot    Volts");
  display.display();
}
// Functions for right alignment of integers
int iAlign2(int s){  // Space in 100s and 10s
  if (s < 100) {display.print(" ");}
    if (s < 10) {display.print(" ");}    
}
int iAlign3(int s){  // Space in 1000s
  if (s < 1000) {display.print(" ");}
  iAlign2(s);
}
int bar(int yy,int v) {
  display.drawLine(0,yy,0,yy+14, SSD1306_WHITE);
  display.fillRect(1,yy+2,127,10,SSD1306_BLACK);
  display.fillRect(0,yy+2,v,10, SSD1306_WHITE);
  display.setCursor(102,yy+2);
  iAlign2(v);
  display.print(v);
  display.println("%");
  display.display();
}
// ++++++++++++Main Loop ++++++++++++++
void loop() {
  // Read pot and display values
  sensorValue = analogRead(sensorPin); // Read the value from the sensor
  float volts = (sensorValue * 5.0 / 1023.0);  // Calculate voltage
  int x = float(sensorValue * 100.0/1018);     // Calculate percentage
  bar(20,x);  // Redraw bar graph
  display.fillRect(0, 40, 127, 15, SSD1306_BLACK); // Clear line
  display.setCursor(5,40);
  display.setTextSize(2);
  iAlign3(sensorValue);  
  display.println(sensorValue);  // Raw pot value
  display.setCursor(78,40);
  display.print(volts);          // Equivalent voltage
  display.setTextSize(1);
}

Perhatikan bahwa seluruh layar tidak diperbarui. Dua baris teratas dan baris terbawah ditulis di bagian setup(). Dalam loop kami memperbarui grafik batang dan 3 nilai. Flicker minimal dan disebabkan oleh ADC daripada layar. Nilai Raw Pot telah disejajarkan dengan benar dengan menambahkan spasi dengan fungsi.

Proyek #2 Menggunakan Arduino dengan papan LCD SSD1306 128×32 piksel

Sekarang saya akan melihat papan yang lebih kecil. Jelas, ia memiliki setengah ukuran layar papan sebelumnya, tetapi ini mungkin memiliki keuntungan jika Anda hanya ingin menampilkan sedikit informasi atau memasukkan layar ke dalam ruang yang sangat terbatas.

Koneksinya sama seperti pada tampilan sebelumnya dan diberi label dengan benar, jadi tukar saja tampilannya. Ini adalah voltmeter digital menggunakan potensiometer sebagai input.

[program3]

#include               
#include 
#include 

#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 32 // OLED display height, in pixels

// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
#define OLED_RESET     4 // Reset pin # (or -1 if sharing Arduino reset pin)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

int sensorPin = A0;   // select the input pin for the potentiometer
int sensorValue = 0;  // variable to store the value coming from the sensor

void setup() {
  Serial.begin(9600);
  // SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3D for 128x64
    Serial.println(F("SSD1306 allocation failed"));
    for(;;); // Don't proceed, loop forever
  }

// Title screen
  display.clearDisplay();
  display.setTextSize(2);             // Medium size
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(5,5);
  display.println("Volt Meter");
  display.setCursor(40,24);
  display.setTextSize(1); 
  display.println("Tutorial45.com");
  display.display();
  delay(3000);
// Static part of screen
  display.clearDisplay();
  display.setTextSize(1);             // Small
  display.setTextColor(SSD1306_WHITE); 
  display.setCursor(0,0);             // Top Left corner
  display.println("Volts - Turn Pot");
}

int wedge(int v,float vv) {  // Wedge shaped bar graph - like Volume control
  display.drawLine(0,12,0,31, SSD1306_WHITE);
  display.fillRect(1,12,127,20,SSD1306_BLACK);
  display.fillTriangle(0,31,v,31,v,(31 - (19*v / 100)),SSD1306_WHITE);
  display.setCursor(102,20);
  display.print(vv);
  display.display();
}
// ++++++++++++Main Loop ++++++++++++++
void loop() {
  // Read pot and display values
  sensorValue = analogRead(sensorPin); // Read the value from the sensor
  float volts = (sensorValue * 5.0 / 1023.0);  // Calculate voltage
  int x = float(sensorValue * 100.0/1023);     // Calculate percentage
  wedge(x,volts);  // Redraw bar graph
  delay(100);      // Delay to reduce jitter  
}

Ada dua cara untuk menimpa teks di layar. Cetak teks yang sama di atas teks sebelumnya dengan warna latar belakang. Ini memiliki kelemahan karena harus menyimpan nilai lama untuk dicetak ulang. Atau, Anda dapat menggambar persegi panjang berwarna latar belakang di atas teks. Saya telah menggunakan yang terakhir dalam contoh ini.

Kesimpulan

Tampilan ini tidak mahal, sangat sederhana untuk dihubungkan, menggunakan beberapa pin Arduino dan mudah diprogram. Mereka sangat jelas dan mendukung berbagai elemen grafis. Mereka mungkin agak terlalu kecil, terutama papan 128x32.

Proyek yang disarankan

Menggunakan sensor suhu, buat termometer digital Current dan Max-Min.

Menggunakan dua sensor suhu dan sensor kelembaban membuat tampilan suhu & Kelembaban Luar/Dalam.

Menggunakan joystick sebagai perangkat input (potensiometer horizontal plus vertikal dan sakelar tombol) dengan layar yang lebih besar membuat game jenis 'Etch-A-Sketch'. Posisi 'pena' saat ini dapat ditunjukkan oleh titik-titik kecil di keempat tepi layar dan tombol yang digunakan untuk beralih antara warna latar depan dan latar belakang.

Bundel Layar LCD  HD44780 2004 4×20


Projek Arduino Dengan LCD  Menggunakan 3 Jenis LCD Yang Berbeda


Anda memerlukan obeng kecil untuk menyesuaikan pengaturan pot trim biru setelah layar terhubung dan menjalankan skrip.

Ini adalah perangkat I2C lain jadi kami terhubung seperti sebelumnya. Berhati-hatilah karena pin SCL dan SDA berada dalam urutan yang berbeda dari SSD1306 Alamat I2C adalah 0x27. tersedia dari banyak produsen yang berbeda. Mereka datang dengan berbagai alamat I2C tetapi banyak library yang tersedia, seringkali dengan nama yang sama, tidak tidak membuat alamat dapat dikonfigurasi dan hanya akan berfungsi dengan papan tertentu.

Projek Arduino Dengan LCD  Menggunakan 3 Jenis LCD Yang Berbeda

Sebelum kita dapat menjalankan skrip, kita perlu mengunduh pustaka yang sesuai untuk LCD 2004 versi I2C ini. Sayangnya, AZ-Direct tidak menyarankan situs yang cocok. Saya telah menggunakan library di (https://github.com/johnrickman/LiquidCrystal_I2C) dan ternyata berfungsi dengan baik dengan papan antarmuka ini. Setelah library terinstal, kami siap untuk mencoba tampilan. Coba skrip singkat ini untuk menguji koneksi Anda:

[program4]

#include 
// https://github.com/johnrickman/LiquidCrystal_I2C
// Set LCD address to 0x27 with 20 chars by 4 lines display
LiquidCrystal_I2C lcd(0x27, 20, 4);  //(0x27, 16, 2) small LCD

// Character definitions - 5 cols x 7 rows
byte pi[8]  = {0,1,14,26,10,10,10};  // Compact version

byte smiley[8] = {                   // Easy but verbose version
  B00000,
  B01010,
  B00000,
  B00000,
  B10001,
  B01110,
  B00000,
};
byte sad[8] = {
  B00000,
  B01010,
  B00000,
  B00000,
  B01110,
  B10001,
  B00000,
};
void setup() {
  // Initialize the LCD
  lcd.init();
  // Create 3 new characters Max of 8 (0…7)
  lcd.createChar(0, pi);
  lcd.createChar(1, smiley);
  lcd.createChar(2, sad);
  
  // Set Cursor position and print text
  lcd.backlight();
  lcd.setCursor(3,0);
  lcd.print("Hello, world!");
  lcd.setCursor(3,1);
  lcd.print("Arduinos Rock");
  lcd.setCursor(0,2);
  lcd.print("Arduino LCD 2004 I2C");
  lcd.setCursor(3,3);
  lcd.print("belajarit.net");
  delay(2000);            //  Wait 2 seconds
  
  // print special characters to 4 corners of screen
  lcd.setCursor(0,3);
  lcd.write(0);
  lcd.setCursor(0,0);
  lcd.write(1);
  lcd.setCursor(19,0);
  lcd.write(2);
  lcd.setCursor(19,3);
  lcd.write(255);  // solid 5x8 block – built in
}

void loop(){}

Anda harus dapat melihat karakter putih yang jelas, cerah, dengan latar belakang biru cerah. Anda mungkin perlu menyesuaikan pot trim biru kecil di papan belakang untuk mendapatkan kontras terbaik.

Sekali lagi, titik asal berada di kiri atas dengan karakter sudut di (0, 0). Ada 20 karakter dalam satu baris (0…19) dan empat baris (0…3).

Kami harus sangat berhati-hati saat melewati garis akhir.

Mengubah

lcd.print("Arduino LCD i2c 2004");

ke

lcd.print("Arduino LCD i2c 2004xx*");

dan ubah

lcd.print("Hello, world!");

ke

lcd.print("Hello, world!123456");

Ketika kami menjalankan skrip lagi, kami menemukan bahwa baris 0 terlewat batas ke baris 2 dan baris 1 meluap ke baris 3 tetapi "*" segera ditimpa oleh "T".

Ini dapat menyebabkan beberapa masalah, jadi berhati-hatilah untuk tidak melewati garis.

Script ini juga menunjukkan definisi karakter khusus. Pengguna dapat menentukan hingga 8 karakter pada kisi 7 kali 5. Ini mudah dilakukan. Perhatikan baik-baik definisi wajah bahagia dan sedih. 1 bit menunjukkan piksel putih.

byte pi[8]  = {0,1,14,26,10,10,10};

Ini adalah program yang panjang tapi menarik dan menunjukkan set karakter 'bawaan' yang lengkap dan bagaimana karakter yang Anda kirim ke layar disimpan.

Berikut adalah script untuk menampilkan semua karakter yang tersedia.

[program5]

#include 
#include 
LiquidCrystal_I2C lcd(0x27,20,4);  // set the LCD address to 0x27 and 20x4

byte heart[8] = {0,10,31,31,14,4,0};
byte bknht[8] = {10,31,0,31,14,4,0};
byte ok[8] = {0,1,3,22,28,8,0};
byte no[8] = {0,27,14,4,14,27,0};
byte bong[8]  = {4,14,14,14,31,0,4}; 
byte music[8]  = {2,3,2,14,30,12,0};
byte clk[8] =  {0,14,21,29,17,14,0};
byte turn[8] = {1,1,5,9,31,8,4};

void setup(){
  lcd.init();  // initialize the lcd 
  lcd.backlight();
  lcd.createChar(1, heart);
  lcd.createChar(2, bknht);
  lcd.createChar(3, ok);
  lcd.createChar(4, no);
  lcd.createChar(5, bong);
  lcd.createChar(6, music);
  lcd.createChar(7, clk);
  lcd.createChar(0, turn);
  lcd.home();

// Show the character
  int n = 0;
  while (n < 255) {
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("ASCII Codes: ");
    lcd.setCursor(4,1);
    lcd.print("Dec: ");
    lcd.print(n);
    lcd.print("-");
    lcd.print(n+15);
    lcd.setCursor(4,2);
    lcd.print("Hex: ");
    lcd.print(n, HEX);
    lcd.print("-");
    lcd.print(n+15, HEX);
    lcd.setCursor(2, 3);
    for (int m=0; m<16 16="" code="" delay="" lcd.write="" loop="" m="" n="n" void="">
Projek Arduino Dengan LCD  Menggunakan 3 Jenis LCD Yang Berbeda


Proyek #3 Menggunakan Arduino dengan AZ-Delivery LCD 2004 dan FC-113 I2C

Bahan yang dibutuhkan

  • Arduino – UNO standar atau kloning
  • AZ-Delivery LCD 2004 dan ransel FC-113 I2C Menghubungkan kabel
  • Potensiometer 3 x 10K Ohm
  • 1 x RGB LED atau resistor Merah, hijau dan Biru tunggal
  • 3 x 560 Ohm resistor – nilai terdekat
  • Project board atau papan strip

Menghubungkan kabel

Projek Arduino Dengan LCD  Menggunakan 3 Jenis LCD Yang Berbeda


[program6]

#include  
#include 
#include 

LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3,POSITIVE);  // Set the LCD I2C address

void setup()
{
  lcd.begin(20,4);
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print(">AZ-Delivery.de<");
  lcd.setCursor(0,1);
  lcd.print(">20x4 & FC-113!<");
}

void loop()
{
   lcd.setBacklight(HIGH);  // blink the backlight
   delay(1000);
   lcd.setBacklight(LOW);
   delay(1000);
}

Projek Arduino Dengan LCD  Menggunakan 3 Jenis LCD Yang Berbeda

Perbandingan

SSD1306 128×64

Kelebihan

  • Grafis luar biasa 3 ukuran karakter Pustaka dukungan luar biasa
  • Sangat jelas – kontras tinggi
  • Hanya membutuhkan 2 pin Murah Kabel gratis

Kekurangan

  • Ukuran agak kecil

SSD1306 128×32

Kelebihan

  • Grafis luar biasa 3 ukuran karakter Pustaka dukungan luar biasa
  • Sangat jelas – kontras tinggi
  • Hanya membutuhkan 2 pin(2 dalam paket)Murah

Kekurangan

  • Ukuran terlalu kecil

LCD 2004

Kelebihan

  • Sangat mudah dibaca
  • Karakter besar Mudah dilihat dari kejauhan
  • Hanya perlu 2 pin

Kekurangan

  • Tidak dapat menampilkan grafik
  • Menemukan library yang sesuai