Thursday, February 15, 2018

Jadwal Sholat Digital 7 Segment Gratis





Spesification :
1.Seven Segment CA (Common Anoda).

2. Led Driver dengan menggunakan IC Shift Register 74HC595 untuk tiap segment.

3. Bahasa Pemrograman menggunakan IDE Arduino.

4. Tidak banyak menggunakan Lib, hanya standard RTC dan Perhitungan Waktu Sholat. Selebihnya cuma teknik shift register saja
5. Koneksi Bluetooth (wifi kalo ada request).

6. Melalui aplikasi android untuk setting : tampilan ( 5 waktu sholat + imsak atau termasuk Syuruq dan Dhuha). update jam dan kalender, Lokasi, Safe mode, koreksi waktu sholat dan kalender hijriah, jeda iqomah.


Firmware menyusul, nunggu mood.

Salam, Chellotech




Sunday, August 6, 2017

(RAKIT) Jadwal Sholat Digital (arduino P10)


Dalam rangka menepati janji saya yang pernah saya tuliskan di FB saya, dibawah ini akan saya posting mengenai Jadwal Sholat Digital.

BAHAN :
  1. Arduino Uno/minimum sistem atmega 328p 16MHz
  2. RTC pilih salah satu DS1307 atau DS3231
  3. Bluetooth pilih salah satu HC05 atau HC06
  4. Panel P10 Single Color, bebas mo warna apa aja, ASALKAN type scan 1/4, jangan lupa kabel data IDC 2x8 sejumlah 3 pcs + kabel power jumpper antar panel
  5. Power Supply, pakai aja yg 5v 10A. klo adanya 5v 5A ya udah gpp deh ama temen sendiri.
  6. Handphone Android, saya sarankan minimum OS kitkat.
ALAT :
  1. Peralatan standard solder menyolder jika mau rakit minimum sistem atmega328. Kalau pakai board aeduino uno sediakan kabel header male-female.
  2. Usbasp / Usbisp. bebas beli jadi atau rakitan sendiri.
  3. Komputer sebagai sarana untuk Flashing Program dan stel lagu dangdut biar ga spaneng.
Step By Step ough bibeh *ktauan yg nulis blog ngalamin jamannya NKOTB. kalian kenal? ... nggak ? ah cupu ga gaul.

 Pembuatan board/Controller :

Skematik Minimum System Atmega328
Skematik hubungan antara minsis dengan port DMD P10

Modul RTC Ds1307

Modul RTC DS3231

Skematik RTC DS1307
Hubungan Minimum System ke HC05
oiya, Buzzer terletak pada pin Digital 5 ya :D
Nah, buatlah PCB sesuai dengan skematik di atas. Cara bikinnya gimana, saya anggap udah pada bisa ya (cerdas2 gitu loh :v ), bebas silahkan berkreasi.

Versi Chellotech bisa dilihat pada gambar berikut :
File program dan aplikasi android bisa di donlod gratis pada link di bawah ini :

Setting Fuse Bit :
SETTING FUSE BIT : 
LOW FF ,  HIGH DE , EXT FD

Fitur2 Yang ada pada JWS ini termasuk standard yaitu :
  1. Update Time and Date dengan HP
  2. Update lokasi dengan HP
  3. Koreksi Tiap Waktu Sholat. Rekomendasi Kemenag +2 menit.
  4. Jeda Iqomah Count Down untuk masing2 waktu sholat.
  5. Text Masjid : 17 Karakter
  6. Running text : 75-100 karakter, dengan speed bisa diatur.
  7. Auto Dim display (mode hemat)
  8. Setting kecerahan.
  9. dan.......saya nitip bonus pd programnya :v (simbiosis mutualisme).

Berikut Beberapa Dokumentasi  :





Untuk bahan referensi dan imajinasi, silakan kunjungi channel youtube di sini

Kalo ada yang bingung, silakan bertanya pada kolom komentar di bagian bawah. Selamat mencoba.

Salam
Chellotech #LearnFromCopas

Wednesday, October 21, 2015

Gelar Lapak Chellotech

biar kayak lainnya. custom order via inbox wae.
yg ada pricenya ikutin yg udh pesen.
mo murah, dtg bawa kopi.

#note : pcb home made tanpa silkscreen/masking.

Thursday, September 24, 2015

Menanam” Bootloader ” Arduino

Bagi pengguna  yang sudah familiar dengan Arduino pasti tidak asing dengan istilah bootloader. Akan tetapi ini selalu menjadi pertanyaan bagi teman-teman yang baru kenal dengan arduino.

Pertanyaan – pertanyaan itu antara lain :
  • ·        Apa itu bootloader ?

Penjelasan setau saya ya. Bootloader adalah program kecil yang ditanamkan kedalam sebuah chip mikrokontroller  yang gunanya untuk mengenali program yang nantinya akan kita isikan pada chip tersebut melalui software  IDE Arduino. Yang belum punya IDE Arduino silahkan download gratis pada www.arduino.cc
Singkat kata, kalo tidak ada bootloader maka software IDE Arduino tidak bisa berkomunikasi dengan Chip Mikrokontroller tersebut.

  • ·         Saya baru beli chip mikro baru (gress alias kinyis2 masih perawan). Apakah bisa langsung berkomunikasi dengan IDE Arduino?

Penjelasan setau ane ya. Tidak bisa! (pakai tanda seru pula). Sebelumnya harus di sematkan bootloader dulu (cieee kayak orang tukar cincin).

·         Pertanyaan selanjutnya. Bagaimana…. #PLAAAK!!! “nanya mulu ! ngopi dulu bentar  #srupuuut.

·         Ba..gai..ma..na (takut dikeplak) caranya mengisi bootloader kedalam chip baru ?
Sekali lagi nih ya, ane jawab sepahamnya ane aja.

  1. Kalo udah punya board Arduino Uno. Bisa dipakai untuk menge”burn” bootloader ke chip baru. Simak caranya dibawah ini. Ada 2 cara yang bisa dipilih (dipilih-dipilih silahkan dipilih) :Bumbu-bumbu  yang diperlukan yaitu :

o   1 Board Arduino Uno
o   1 Chip Atmega8 atau Atmega328
o   1 Xtal 16 Mhz
o   2 Kapasitor keramik ukuran 22pf
o   1 Resistor 10K
o   Kopi item yang udah diseduh, jangan mentah buat cemilan.
Setelah bumbu-bumbu diatas udah siap, buatlah rangkaian minimum system untuk chip tersebut. Seperti apa? Simak gambar dibawah ini.
Penjelasan wiringnya yaitu :
Arduino Uno            |    Minsis Atmega8/328
Pin 13                    à   Pin digital 13
Pin 12                    à   Pin digital 12
Pin 11                    à   Pin digital 11
Pin 10                    à   Pin Reset
Bingung Mapping Pin nya ? baca lagi gambar dibawah ini.

Masih bingung juga? Cuci kaki, cuci muka….bobo dulu aja ! hehehe piss muaaah.

Setelah itu buka program IDE Arduino, 
  • Pilih menu File, Pilih Sub Menu Examples, Pilih ArduinoIsp.
Maksud dan tujuannya apa? #kayak_skripsi. Tujuannya yaitu merubah fungsi Arduino Uno sebagai AVRISP, Apa itu ? #PLAKPLAK! Nanya mulu, aku cape ngetik di googlenya… ya semacam downloaderlah.


  • Setelah itu Klik menu Tool - Board dan pilih Arduino Uno. 
  • Next pilih menu Tool - Serial port, sesuaikan pemakain portnya. 
  • Next pilih menu File dan UPLOAD !

Langkah selanjutnya adalah menyematkan bootloader ke minimum system yang sudah dirangkai. Caranya? Klik menu Tool – Board, pilih sesuai minimum system yang kamu bikin, karena saya pakai Atmega8 #ChipSejutaUmat maka saya pilih Arduino NG or older w/ Atmega8. Klik menu Tool – Programmer – Arduino as ISP. Next pilih menu Tool – Burn Bootloader. FINISH !

Cara Kedua.
Menggunakan USBASP. Penjelasan wiring sebagai berikut.
USBasp                 =>           Arduino
Vcc                                         Vcc
Gnd                                        Gnd
Reset                                    Reset
SCk                                         pin 13
Miso                                      pin 12
Mosi                                      pin 11
Woconen maneh gambar ngisor ikilah…
atau pada minimum sistem seperti gambar sebelumnya pada breadboard juga bisa.


Next, buka aplikasi pemrograman favoritmu, sak senengmu, sak isomu :p
Buka file hex bootloader, trus di burn/upload/flash.
File bootloader ada di folder Program Files\Arduino\hardware\arduino\bootloaders.

Udah sekian penjelasannya, ada pertanyaan, ada koreksi, ada diskusi…monggo dikolom komentar.

Salam learn from copas!


Best regard, Chellotech.

Saturday, September 19, 2015

USB TO TTL dengan atmega8

USB to TTL adalah konverter USB ke TTL menggunakan chip konverter. dapat digunakan pada board Arduino seperti Lylypad, Boarduino atau board Arduino clone sejenisnya.
Selain untuk Arduino, konverter ini juga bisa digunakan untuk segala macam aplikasi elektronik lainnya yang membutuhkan komunikasi serial melalui USB.

Sangat cocok di gunakan untuk para pengguna interfacing yang menggunakan laptop dengan menggunakan port USB, karena alat ini mengkonvert dari USB menjadi serial, yang mana keluaranya berupa RX dan TX.



Langkah- Langkah :

Dalam kesempatan ini saya akan men-share thap demi tahap pembuatan USB TO TTL dengan menggunakan IC Atmega8.
  • Langkah Pertama.
Buatlah rangkaian sesuai skema di bawah ini, saya anggap skema ini yang paling simple, jadi sangat mudah untuk dibuat. Check It Now !
Skema Usb to ttl

  • Langkah Kedua
Masukan firmware (hex) kedalam Atmega8 sehingga bisa dioerasikan sebagai usb to ttl.
Download pada link berikut : FirmwareUsbToTTL (win7).

Pada Langkah ini, saya memakai program bernama "Progisp" dengan uploader Usbasp.
Setting fusebit : HIGH : 8F dan LOW : FF

  • Langkah Ketiga
Siapkan Minimum Sysytem Atmega8/328 sebagai target board yang akan diprogram. Jangan lupa bahww ic pd minimum system sudah ditanamkan bootloader. Bagaimana caranya? simak di postingan menanam bootloader dikebun kita

  • Langkah Keempat
Install Driver agar perangkat usb to ttl bisa dikenali oleh komputer.
Colokkan pada port usb, maka komputer secara otomatis akan mendeteksi perangkat baru. Install dengan driver pada link berikut. 

Jika install sukses, cek pada device manager, maka akan terlihat seperti gambar di bawah ini.
Setelah itu hubungkan port Rx, Tx, Gnd dan Vcc pada Usb to ttl keMinsis Atmega8.
  • Langkah Kelima
Buka IDE Arduino seperti biasanya. pilih sketch yang akan di upload. 
Pilih Port sesuai Nomer Port pada device manager. 
Pilih Boaard : Arduino NG with Atmega8
Klik UPLOAD.

Jika Muncul seperti tampilan dibawah ini maka sudah berhasil.
Dalam percobaan ini saya coba meng-upload sketch SoftRtc pada library ds1307, tentunya modul rtc saya hubungkan pada pin A4 dan A5 sebagai tambahannya.


Dari Gambar diatas. Sebelah kiri dengan background hitam menunjukkan proses upload berhasil. setelah itu buka serial monitor dengan pilihan baudrate sesuai dengan yang tertulis di code. maka komputer bisa membaca hasil pengolahan data pada minsis atmega8 kita. (pengembangan untuk pembacaan sensor yang ditampilkan menggunakan program pihak ketiga seperti Vb net, Delphi dll).

Sekian langkah-langkahnya, jika ada yang masih kurang paham atau mungkin koreksi, silahkan isi kolom komentar.

Satu hal lagi, yang pasti akan menjadi pertanyaan bagi begineer seperti saya. TRUS apa bedanya dengan Usbasp?? Sama-sama bisa upload *.hex?? jawaban saya, iya sama-sama bisa upload hex.
Selain jalur port yang digunakan beda yaitu : Usbasp memakai port Miso, Sck, Mosi dan Reset. Sedangkan Usb to ttl hanya memakai Tx, Rx dan DTR. selain itu bandingkan dengan skema Usbasp yang paling simple....masih lebih simple usb to ttl kan??

Selain itu, kelebihan usb to ttl adalah bisa sebagai jalur komunikasi 2 arah antara minimum sistem dengan komputer ( memberikan perintah via serial dari komputer ataupun mengirim data dari minimum sistem ke komputer).

Dalam percobaan ini, saya masih menggunakan breadboard untuk uji coba. Next saya buat dalam bentuk yang udh fix.




Final design Max2ttl

Sekian, Best regard from Chellotech

Saturday, August 8, 2015

Running Text 8x32

RUNNING TEXT 8X32 :
Spesifikasi :
- Dot matrix yang saya pakai dengan susunan led 3mm (silakan jika mau pakai 3 x modul 8x8 dot matrix)
- MCU bisa pakai minimum sistem atmega8 atau pakai arduino uno/pro mini/nano dkk
- IC driver kolom dan baris memakai 74hc595
- pada skema tidak saya gambar Resistor, sebaiknya dipasang pada output 74hc595
- Coding memakai format C++ untuk IDE Arduino (kalo belum punya download aja gratis di ww*.arduino.cc
(pertanyaan mengenai modif coding ayo dibahas bareng, maklum coding dpt dr google silakan dioprek bareng2)
CODE :
int x;
int y;
int latchPin1 = 5; //Arduino pin connected to blue 12 RCLK of 74HC595
int clockPin1 = 6; //Arduino pin connected to green 11 SRCLK of 74HC595
int dataPin1 = 7; //Arduino pin connected to violet 14 SER of 74HC595
//-- Rows (Positive Anodes) --
int latchPin2 = 9; //Arduino pin connected to yellow Latch 12 RCLK of 74HC595
int clockPin2 = 10; //Arduino pin connected to white Clock 11 SRCLK of 74HC595
int dataPin2 = 8; //Arduino pin connected to grey Data 14 SER of 74HC595
//=== B I T M A P ===
//Bits in this array represents one LED of the matrix
// 8 is # of rows, 7 is # of LED matrix we have
byte bitmap[8][7]; // Change the 7 to however many matrices you want to use.
int numZones = sizeof(bitmap) / 8;
int maxZoneIndex = numZones-1;
int numCols = numZones * 8;
byte alphabets[][5] = {
{0,0,0,0,0},
{31, 36, 68, 36, 31},//A
{127, 73, 73, 73, 54},//B
{62, 65, 65, 65, 34},//C
{127, 65, 65, 34, 28},
{127, 73, 73, 65, 65},
{127, 72, 72, 72, 64},
{62, 65, 65, 69, 38},
{127, 8, 8, 8, 127},
{0, 65, 127, 65, 0},
{2, 1, 1, 1, 126},
{127, 8, 20, 34, 65},
{127, 1, 1, 1, 1},
{127, 32, 16, 32, 127},
{127, 32, 16, 8, 127},
{62, 65, 65, 65, 62},
{127, 72, 72, 72, 48},
{62, 65, 69, 66, 61},
{127, 72, 76, 74, 49},
{50, 73, 73, 73, 38},
{64, 64, 127, 64, 64},
{126, 1, 1, 1, 126},
{124, 2, 1, 2, 124},
{126, 1, 6, 1, 126},
{99, 20, 8, 20, 99},
{96, 16, 15, 16, 96},
{67, 69, 73, 81, 97},
};
//=== S E T U P ===
void setup() {
pinMode(latchPin1, OUTPUT);
pinMode(clockPin1, OUTPUT);
pinMode(dataPin1, OUTPUT);
pinMode(latchPin2, OUTPUT);
pinMode(clockPin2, OUTPUT);
pinMode(dataPin2, OUTPUT);
//-- Clear bitmap --
for (int row = 0; row > 8; row++) {
for (int zone = 0; zone <= maxZoneIndex; zone++) {
bitmap[row][zone] = 0;
}
}
}
//=== F U N C T I O N S ===
// This routine takes whatever we've setup in the bitmap array and display it on the matrix
void RefreshDisplay()
{
for (int row = 0; row < 8; row++) {
int rowbit = 1 << row;
digitalWrite(latchPin2, LOW); //Hold latchPin LOW for as long as we're transmitting data
shiftOut(dataPin2, clockPin2, MSBFIRST, rowbit); //Transmit data
//-- Start sending column bytes --
digitalWrite(latchPin1, LOW); //Hold latchPin LOW for as long as we're transmitting data
//-- Shift out to each matrix (zone is 8 columns represented by one matrix)
for (int zone = maxZoneIndex; zone >= 0; zone--) {
shiftOut(dataPin1, clockPin1, MSBFIRST, bitmap[row][zone]);
}
//-- Done sending Column bytes, flip both latches at once to eliminate flicker
digitalWrite(latchPin1, HIGH);
digitalWrite(latchPin2, HIGH);
//-- Wait a little bit to let humans see what we've pushed out onto the matrix --
delayMicroseconds(500);
}
}
// Converts row and colum to actual bitmap bit and turn it off/on
void Plot(int col, int row, bool isOn)
{
int zone = col / 8;
int colBitIndex = x % 8;
byte colBit = 1 << colBitIndex;
if (isOn)
bitmap[row][zone] = bitmap[y][zone] | colBit;
else
bitmap[row][zone] = bitmap[y][zone] & (~colBit);
}
// Plot each character of the message one column at a time, updated the display, shift bitmap left.
void AlphabetSoup()
{
char msg[] = " RUNNING TEXT ";
for (int charIndex=0; charIndex < (sizeof(msg)-1); charIndex++)
{
int alphabetIndex = msg[charIndex] - '@';
if (alphabetIndex < 0) alphabetIndex=0;
//-- Draw one character of the message --
for (int col = 0; col < 6; col++)
{
for (int row = 0; row < 8; row++)
{
bool isOn = 0;
if (col<5) isOn = bitRead( alphabets[alphabetIndex][col],
}
Video di youtube

Untuk mesin utamanya bisa pake modul MaxSys8. Lihat pada artikel sebelumnya.

Alternatif running text dengan menggunakan atmega16/32 bisa berkunjubg ke blog edukasi milik pak rokhmad. link running text atmega16/32

Friday, August 7, 2015

Mesin jam digital (MaxSys8 + Rtc)

Setelah sekian lama ikut meramaikan dunia copy paste di group FB KSGRE, yang paling sering di oprek adalah proyek Jam Digital. Proyek tersebut dibagi menjadi bbrp kategori yaitu :
1. Jam digital dengan tampilan LCD.
2. Jam digital dengan tampilan Seven Segmen.
3. Jam digital dengan tampilan led 3mm/5mm yang disusun seperti seven segmen.
4. Jam digital dengan tampilan dot matrix led.

Dari 4 kategori di atas yang paling ramai dan seru untuk di oprek adalah nomer 2 dan 4. Kenapa? Ya, karena lebih mudah dan menarik karena ukurannya bisa disesuaikan dengan kantong, hehehehe.

Kategori 1 apakah tidak mudah? Ya, paling mudah, tapi bentuknya monoton dan kecil.
Bagaimana dengan kategori nomer 4 ? Dari segi bentuk adalah yang paling menarik tapi paling rumit.

Dalam.postingan ini, saya lebih fokus untuk membahas mengenai rangkaian dasar dari 4 kategori di atas. Yaitu minimum sistem atmega8 yang dilengkapi dengan RtC ( real time clock).

Dari layout pcb yang saya buat, sengaja minimum sistemnya saya buat bersifat open header. Tujuannya 1 rangkaian ini bisa dijadikan MCU/mesin untuk 4 kategori diatas. Tinggal ditambahkan driver tambahan saja. (driver tambahan di bahas dalam artikel lain).
Minimum sistem ini juga sengaja dibuat agar bisa dipakai dan di kombinasikan dengan pemakaian breadboard untuk kebutuhan prototiping/uji coba.