Kamis, 17 Desember 2020

Cara Memperbaiki Jam Waktu Sholat JWS Seven Segment [JWS 7 Segment Disambar Petir]

Pada artikel kali ini saya akan berbagi cara memperbaiki JWS 7 Segment yang rusak karena disambar petir. Setelah tersambar petir, JWS 7 Segment kondisinya:

  1. Display menampilkan karakter acak-acakan
  2. Buzzer tidak berhenti berbunyi / selalu berbunyi

Setelah saya cek, ternyata kerusakannya ada pada mikrokontroler nya. Mungkin mikrokontroler tersebut rusak secara hardware, atau hanya sekedar rusak programnya saja (harus di flashing / program ulang). Dikarenakan saya tidak mengetahui Jam Sholat JWS ini menggunakan vendor mana, sehingga saya tidak bisa sembarang membeli kontroler JWS 7 Segment yang dijual secara online, sebab jika salah beli maka saya bisa rugi lumayan besar, disebabkan harga kontrolernya yang tidak murah.

Oleh sebab itu, saya harus mempelajari hardware dari JWS 7 Segment itu sendiri, kemudian memrakit dan memprogram sendiri kontroler JWS yang sesuai dengan hardware yang sedang saya perbaiki. Setelah melakukan beberapa tahap identifikasi, observasi, dan beberapa pertimbangan, akhirnya saya memutuskan untuk menggunakan Arduino Uno R3, RTC DS3231, Buzzer 12A05 (bawaan dari vendornya) (krn Buzzer ini suaranya jernih dan nyaring, bukan abal-abal), Remote TV Universal, Kanibal IR Receiver Sensor dari MP3 Player bekas, Rangkaian Power Supply bawaan vendor, dan melakukan modifikasi JWS 7 Segement Simple dari Fans Electronic.

Alhamdulillah, hasilnya cukup memuaskan. Jam Sholat Digital / JWS 7 Segment bisa menyala kembali, menampilkan waktu dengan presisi, menampilkan jadwal sholat dengan baik, bisa disetting secara remote menggunakan remote tv universal, style tampilan yang lebih update karena menggunakan kode program lebih baru.

Untuk mengetahui step-step yang dilakukan dalam perbaikan ini bisa disaksikan pada video berikut ini:

Part 1: https://youtu.be/DI4PCLy1oSc Memperbaiki Jam Masjid JWS Seven Segment Part 1 : (Identifikasi Hardware, Modul & Tes Kode Program) Part 2: https://youtu.be/6G7ux164pw8 Memperbaiki Jam Masjid JWS Seven Segment Part 2 : (Modif Sketch & Menampilkan Jam Pada Display) Part 3: https://youtu.be/pQtUCkhciO4 Memperbaiki Jam Masjid JWS Seven Segment Part 3 : (Menampilkan Waktu Sholat & Jam Pada Display) Part 4: https://youtu.be/XC14J05yoUo Memperbaiki Jam Masjid JWS Seven Segment Part 4 : (Remote TV Untuk Setting JWS) Part 5: https://youtu.be/nKqjrZADUco Memperbaiki Jam Masjid JWS Seven Segment Part 5 : (Trik Dumping Data IR Remote Dengan Mudah & Cepat) Part 6: https://youtu.be/593fN5q_7ls Memperbaiki Jam Masjid JWS Seven Segment Part 6: (Setting Jam - JWS Digital 7 Segment)

SHORT VIDEO

Untuk kode program hasil modifikasi, belum terlalu rapi dan tidak begitu terstruktur, namun cukup untuk menjalankan hardware JWS 7 Segement yang rusak tersambar petir ini. Sebagaimana dari sumber aslinya, yaitu fanselectronics.com, digunakan 4 sketch yang disimpan dalam satu folder, yaitu "JWS_Ekonomis_Set_Remote", "Display", "Jadwal_Sholat", "Setting". Adapun kode programnya adalah sebagai berikut.

LCD Keypad Shield Tampilan Polos (Tidak Menampilkan Karakter) - [LCD Keypad Shield Not Displaying Words - ARDUINO UNO - D1 ROBOT]

Saya baru saja membeli Arduino Uno dan LCD Keypad Shield, yaitu modul LCD yang disertai dengan tombol-tombol (keypad). Setelah saya coba, saya upload beberapa sketch LCD Shield dari yang berisi kode program sederhana ("Hello World") hingga yang berisi kode program yang sedang dan kompleks, namun HASILNYA NIHIL, LCD NYA TETAP TIDAK BISA MENAMPILKAN KARAKTER. 

Setelah browsing ke beberapa sumber, akhirnya didapatkan bahwa permasalahannya adalah settingan brightness dari LCD nya. Jadi ada sebuah trimpot berwarna biru di pojok kiri atas dari LCD Keypad Shield tersebut yang harus kita putar pada arah kiri maupun kanan (sesuai dengan kebutuhan), defaultnya adalah diputar ke arah kiri / bawah / berlawanan arah jarum jam. Kita harus putar tersebut potensiometer biru tersebut sehingga pixel-pixel yang ada pada LCD Shield tersebut menjadi lebih terang dari pada cahaya latar modul LCD tersebut.

Kemudian untuk pengetesan kita bisa mengisi Arduino Uno dengan kode program yang sederhana (hello world) seperti berikut:

#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  lcd.print("Hello World!");
}

void loop()
{
  
}

Atau bisa juga dengan kode program yang lebih panjang seperti ini (untuk menampilkan informasi tombol yang ditekan):

/*
Arduino 2x16 LCD - Detect Buttons
modified on 18 Feb 2019
by Saeed Hosseini @ Electropeak
https://electropeak.com/learn/
*/
#include <LiquidCrystal.h>
//LCD pin to Arduino
const int pin_RS = 8; 
const int pin_EN = 9; 
const int pin_d4 = 4; 
const int pin_d5 = 5; 
const int pin_d6 = 6; 
const int pin_d7 = 7; 
const int pin_BL = 10; 
LiquidCrystal lcd( pin_RS,  pin_EN,  pin_d4,  pin_d5,  pin_d6,  pin_d7);
void setup() {
 lcd.begin(16, 2);
 lcd.setCursor(0,0);
 lcd.print("AB Led");
 lcd.setCursor(0,1);
 lcd.print("Press Key:");
}
void loop() {
 int x;
 x = analogRead (0);
 lcd.setCursor(10,1);
 if (x < 60) {
   lcd.print ("Right ");
 }
 else if (x < 200) {
   lcd.print ("Up    ");
 }
 else if (x < 400){
   lcd.print ("Down  ");
 }
 else if (x < 600){
   lcd.print ("Left  ");
 }
 else if (x < 800){
   LCD.print ("Select");
 }
} 

Untuk mengetahui secara detail bagaimana proses troubleshooting nya, bisa dilihat pada video tutorial berikut ini:



Jangan lupa untuk Like, Subscribe, Share dan Comment pada channel tersebut ya..

Trims.

Sabtu, 12 Desember 2020

Program Arduino Untuk Komunikasi Dengan IR Remote Receiver (Dumping Data Remote TV Infra Red)

Sebelum menggunakan Remote Infra Red (semisal Remote TV) dengan mikokontroler atau arduino, kita membutuhkan kode-kode desimal dari setiap tombol-tombol yang ada pada remote tersebut. Untuk memudahkan dalam melakukan dumping file kode IR Remote ke dalam file text, kita dapat menggunakan bantuan software komunikasi serial yabg sudah saya buat sebelumnya (silahkan klik link ini). Sedangkan untuk arduino nya sendiri kita isikan kode program berikut:

#include <IRremote.h>
//int RECV_PIN = 11; // PIN 11
int RECV_PIN = 2; // PIN 2

IRrecv irrecv(RECV_PIN);
decode_results results;

int incomingByte;

void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn();
}
void loop()
{
  while(Serial.available())
  {
  }
  
  for (int i=0; i<23; i++)
  {
    if (i<10)
    {
      delay(1000);
      Serial.print("Tekan tombol ");
      Serial.print(i);
      Serial.println(" :");
      delay(700);
      while (!irrecv.decode(&results))
      {
      }
      Serial.println(results.value);
      delay(700);
      irrecv.resume(); 
    }
    else
    {
      switch (i)
      {
        case (10):
          Serial.println("Tekan tombol titik (.) :");
          break;
        case (11):
          Serial.println("Tekan tombol + :");
          break;
        case (12):
          Serial.println("Tekan tombol - :");
          break;
        case (13):
          Serial.println("Tekan tombol Power :");
          break;
        case (14):
          Serial.println("Tekan tombol OK :");
          break;
        case (15):
          Serial.println("Tekan tombol Panah Atas :");
          break;
        case (16):
          Serial.println("Tekan tombol Panah Bawah :");
          break;
        case (17):
          Serial.println("Tekan tombol Panah Kiri :");
          break;
        case (18):
          Serial.println("Tekan tombol Panah Kanan :");
          break;
        case (19):
          Serial.println("Tekan tombol Recall :");
          break;
        case (20):
          Serial.println("Tekan tombol Exit :");
          break;
        case (21):
          Serial.println("Tekan tombol CH+ :");
          break;
        case (22):
          Serial.println("Tekan tombol CH- :");
          break;
         default:
          break;
      }

      delay(700);
      while (!irrecv.decode(&results))
      {
      } 
      Serial.println(results.value);
      delay(700);
      irrecv.resume();
    }
  }
}

Untuk cara penggunaannya bisa cek pada video berikut: Cara Mudah Dumping Kode IR Remote Dengan Software Komunikasi Serial.
Untuk cara interfacing IR Receiver dengan arduino beserta teknik dasar dumping kode IR Remote ke dalam file text bisa cek di video ini: Interfacing IR Receiver dan Arduino.

Visual C# - Membuat Program Untuk Komunikasi Serial Dengan Mikrokontroler / Arduino

Disini saya menggunakan Ms. Visual C# 2019 Communitty Editions. Program ini berfungsi untuk melakukan komunikasi serial antara PC dengan Arduino atau mikrokontroler. Diantara kegunaannya adalah untuk menyinkronkan waktu modul RTC dengan waktu PC, melakukan Dump Data Remote IR, Debug Program yang telah dibuat, dan lain sebagainya.

Untuk membuat program ini, pertama kali buat desain UI seperti gambar berikut ini:




Adapun komponen yang harus ditambahkan disini adalah tentunya Main Form (Properti Text = komunikasi serial). Kemudian di dalamnya ditambahkan komponen Tab Control, Serial Port, Timer, Status Strip, dan Save File Dialog. Sedangkan di dalam Tab Control memuat komponen-komponen berikut:
  • Tab Page 1
    • Group Box 1 (Text : Waktu)
      • 2 Label
      • 2 Button
    • Groub Box 2 (Text: Kirim Data)
      • 1 Text Box
      • 1 Button
    • Group Box 3 (Text: Data Diterima)
      • 1 Rich Text Box
      • 3 Button
      • 1 Label
  • Tab Page 2
    • 6 Label
    • 6 Combo Box
    • 1 Button
Untuk kode program lengkapnya seperti dibawah ini: