Senin, 21 Desember 2020
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:
- Display menampilkan karakter acak-acakan
- 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"); } }
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(); } } }
Visual C# - Membuat Program Untuk Komunikasi Serial Dengan Mikrokontroler / Arduino
- 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