Semua Tentang Belajar Teknologi Digital Dalam Kehidupan Sehari - Hari

  • IC Timer 555 yang Multifungsi

    IC timer 555 adalah sirkuit terpadu (chip) yang digunakan dalam berbagai pembangkit timer, pulsa dan aplikasi osilator. Komponen ini digunakan secara luas, berkat kemudahan dalam penggunaan, harga rendah dan stabilitas yang baik

  • Ayo Migrasi TV Digital

    Kami bantu anda untuk memahami lebih jelas mengenai migrasi tv digital, apa sebabnya dan bagaimana efek terhadap kehidupan. Jasa teknisi juga tersedia dan siap membantu instalasi - setting perangkat - pengaturan antena dan distribusi televisi digital ke kamar kos / hotel

  • Bermain DOT Matrix - LOVEHURT

    Project Sederhana dengan Dot Matrix dan Attiny2313. Bisa menjadi hadiah buat teman atau pacarmu yang ulang tahun dengan tulisan dan animasi yang dapat dibuat sendiri.

  • JAM DIGITAL 6 DIGIT TANPA MICRO FULL CMOS

    Jika anda pencinta IC TTL datau CMOS maka project jam digital ini akan menunjukkan bahwa tidak ada salahnya balik kembali ke dasar elektronika digital , sebab semuanya BISA dibuat dengan teknologi jadul

  • Node Red - Kontrol Industri 4.0

    Teknologi kontrol sudah melampaui ekspektasi semua orang dan dengan kemajuan dunia elektronika, kini semakin leluasa berkreasi melalui Node Red

Sabtu, 22 Januari 2022

Memperbaiki Aki Kering Dengan Alat Sederhana - Part 1 - Cek Elektrolit

 



Tidak dipungkiri lagi baterai - accu alias aki merupakan barang yang kita anggap sebagai sesuatu yg "remeh" dan harganya tidak terlalu mengkhawatirkan kantong - soak ya buang aja ke tempat sampah. Padahal bisnis daur ulang aki semakin lama semakin menggiurkan terutama mereka kaum "35" yang sangat berani atau bisa dibilang nekat bermain dengan benda elektro-kimia yang dalam dunia limbah merupakan kategori B3. Namun karena prinsip mereka sampah bisa jadi uang ya mau tidak mau harus diakui, banyak dari mereka - suku yg berasal dari timur kota Surabaya itu terkenal jago mendaur ulang aki bekas. Dengan modal keliling kampung mencari aki bekas yg dibuang atau diloak dengan cuman 5000 perak saja, dapat menjadi penghasilan yg menggiurkan, baik dengan cara memperbaiki akinya maupun mendaur ulang timbal untuk dijual kembali ke industri yg memerlukan.


- Aki kering itu tidak "kering" 

 


Aki atau baterai sel basah dalam istilah inggrisnya dinamakan sebagai Lead-Acid Battery dimana terdapat pelat timbal dengan larutan elektrolit berupa Asam Sulfat ( H2SO). Kesalah pahaman yg umum di Indonesia adalah ketika motor jaman now kebanyakan menggunakan aki kering dan kebanyakan orang mengira kalau baterai kering itu seperti baterai sel kering yg biasa dipakai pada lampu senter. 

Sebenarnya aki kering ini nama yang betul adalah aki MF - Maintenance Free dimana produsen sudah memperkirakan aki akan aman cairan elektrolitnya selama masa pakai 2 - 3 tahun jadi tidak perlu menambahkan air aki (demin water) untuk menjaga level elektrolit seperti halnya aki basah. Selebihnya prinsip Lead-Acid baterai tetap sama dengan tambahan katup pengaman agar cairan elektrolit tidak tumpah.


- Proses Kimia 




Wah kembali ke pelajaran menakutkan masa SMA nih, namun saya persingkat saja dengan menggambarkan aki saat bekerja menghidupkan lampu maka reaksi kimia memecah elektrolit menjadi aliran elektron pada rangkaian listrik. Akibatnya lama kelamaan elektrolit melepaskan H2O alias air dan menguap akibat panas reaksi. Juga plat Timbal (Lead) akan tertempel Sulfat dari cairan asam sulfat. Ini menyebabkan air aki pada aki basah akan cenderung habis seiring waktu. Atau pada aki MF yg lebih tertutup, elektrolit akan menjadi H2O alias air. Sehingga diperlukan penggantian elektrolitnya asalkan timbal nya tidak terlalu tertutup penuh dengan sulfat.


- Penambahan elektrolit




Untuk aki kering yg sekiranya tegangan belum turun dari 12.5 volt atau berusia kira-kira 2 tahun namun masih bisa buat dobel starter motor, sebaiknya dicek elektrolitnya agar kemudian kita bisa menambah usianya. Cara menambah elektrolit banyak dijadikan konten youtube dan bisa dilihat cara membuka segel aki MF. Pengalaman penulis, elektrolit yg ditambahkan berupa air aki merah (zuur / h2so4) + air aki biru (demin water) dengan perbandingan zuur:aqua = 1:3 . Terdapat 6 lubang aki yang menandakan tiap sel mengasilkan tegangan sekitar 2 volt.




Buang dulu elektrolit yg lama menggunakan suntikan 12 mili dan tambahkan elektrolit sampai lumayan terlihat dari atas (jangan penuh). Jika memiliki multitester atau voltmeter maka bisa diukur antar lubang memiliki tegangan diatas 2 volt. Jangan lupa mengembalikan tutup lobang sel aki dan mengelem segel aki menggunakan lem alteco, lem korea atau lem besi.




Bagaimana jika tegangan dibawah 12 volt ? Ahh saya sudah coba tambah air aki dan tetap aja aki ngedrop ! Tenang...tenang...pake cara kaum 35 saja, mereka pede kok menjual aki bekas / rekondisi yg 1 hari dipakai langsung ngedrop!..heheheh. Jadi ilmu per-aki-an masih panjang ceritanya dan kuncinya adalah sabar mengikuti langkah-langkah pada bagian selanjutnya. Selamat mencoba !  


selanjutnya : Teori pengisian baterai 


Share:

Selasa, 16 November 2021

MQTT Data Simulator Menggunakan Python - PahoMqtt

 



Kadang kalanya para penggiat IOT adalah mereka yang tidak berhubungan langsung dengan benda yg bernama mikrokontroler maupun sensor. Ya benar saja kenyataan ini terjadi akibat semakin melebarnya topik sensor 8 bit ke dunia koding yg semakin menjangkau mereka yg biasanya hanya terkoneksi dengan komputer PC saja. Akibatnya para "koder" yg jago ini menjadi kewalahan dalam memperoleh data pembacaan sensor kecuali bekerjasama dengan mereka yg sering bekerja dengan sensor dan mikrokontroler. Padahal kalau dilihat kemampuan orang yg mempunyai latar belakang koding informatika akan menghasilkan program yg lebih rapi pada umumnya. 


Lalu bagaimana menghasilkan data pembacaan sensor tanpa menggunakan mikrokontroller? Mudah saja sebenarnya karena kita dapat memanfaatkan bahasa pemrograman apapun untuk menciptakan data numerik random yang menyerupai data pembacaan sensor. Namun kendalanya adalah bahasa pemrograman paling mudah dan ready untuk komunikasi sensor secara IOT apa ya ? Jawabannya adalah python yg sering saya gunakan untuk mengolah data IOT menggunakan protokol MQTT, seperti pada pembahasan sebelumnya disini : https://www.aisi555.com/2020/07/tutorial-menggambar-grafik-data-arduino.html


Jadi untuk komunikasi berbasis MQTT sudah tersedia library /package siap pakai bernama paho MQTT.


pip install paho-mqtt


Diatas merupakan cara untuk menginstall packagenya pada console python anda. Sedangkan untuk membuat angka pembacaan sensor secara random bisa menggunakan script berikut:



from random import randrange

suhu = float( randrange(250,350,2) / 10)
humi = randrange(50,95,2)

Jadi dengan menggabungkan pahomqtt dan  randrange kita bisa memperoleh simulasi pembacaan sensor yg datanya dapat dicoba pada MQTT explorer atau IOT MQTT PANEL pada smartphone anda.



import paho.mqtt.client as mqtt
from time import sleep
from random import randrange

# Inisialisasi broker 
broker_address="broker.hivemq.com" 
broker_port=1883

def on_publish(client,userdata,result):                   #create function for callback
    print("data terkirim ke broker")
    pass

client1= mqtt.Client(f'unesa-client-{randrange(0,100)}')  #clientnya harus random
client1.on_publish = on_publish                           #assign function to callback
client1.connect(broker_address,broker_port)               #establish connection
while 1:                                                  #loop terus sambil kirim data
    suhu = float( randrange(250,350,2) / 10)              #random suhu dan kelembaban
    humi = randrange(50,95,2)
    ret= client1.publish("/testyuk/suhu",suhu)            #PUB suhu ke topik /testyuk/suhu
    sleep(3)
    ret= client1.publish("/testyuk/humi",humi)            #PUB Kelembaban ke topik /testyuk/humi
    sleep(3)         


Jangan lupa untuk membuat nama client     client1= mqtt.Client("unesa123")  yg unik agar tidak sama dengan nama client orang lain.  Hasilnya seperti berikut ini :








Share:

Senin, 20 September 2021

Praktek Input/Output Led Matrix - Nostalgia Berbagi Ilmu 10 Tahun Yang Lalu

 


Sebelum negara api menyerang dan menjadi pusat produksi segala macam benda elektronika, Led Matrix seperti gambar diatas sangat umum ditemukan,  disusun berderet dengan microcontroller sebagai otaknya. Ini menjadi handalan banyak penggiat bisnis elektronika - display digital atau signage dan baliho marketing yg dipasang di jalan - jalan. Keleluasaan untuk mengkreasikan banyak karakter dan animasi menarik diatasnya membuat menjadi sasaran akhir mereka yang belajar microcontroler di era sebelum 2010. Namun ketika modul display led matrix siap pakai seperti : P10, P8 dan sebagainya, didukung dengan harga yang dibilang tak masuk akal murahnya, membuat para seniman teks digital menjadi dimanjakan. Cukup gunakan jari untuk mengimpor via smartphone, lalu plug and play saja.

Namun blog ini tetap bertujuan utama berbagi ilmu bagaimana cara kerja Led Matrix dan bagaimana menyusunnya menjadi display yang menarik. beberapa tulisan mengenai Led Matrix ada pada link berikut : 





Mengingat itu semua terutama video yg saya buat pada 2009 diatas membuat sedikit sentimentil dan emosional, karena banyaknya rekan mahasiswa bertanya ilmu Led Matrix yg saya bagi di forum kaskus (sebelum saya pindah ke blog ini). Ada yang dari jogja, semarang, bali, sampai aceh hingga gorontalo memesan komponennya ke saya dan berdiskusi mengenai cara membuat teks berjalan pada Led Matrix. Ini menjadi kebanggaan sendiri karena beberapa yg sukses belajar led matrix menjadikan tolak ukur keberhasilan telah dipahaminya  konsep dasar mikrokontroller dan siap untuk mendesain apapun setelahnya.

Kali ini saya akan menjelaskan kembali praktek lovehurt 2011 dengan sedikit penjelasan agar lebih mudah dimengerti, diawali dengan melihat bagaimana flowchart untuk menuliskan karakter pada sebuah Led Matrix.



Penjelasan :

Pada dasarnya Led Matrix adalah Led yang disusun berdasarkan konsep Row dan Column, dimana untuk menyalakan satu buah led diberikan tegangan 2.4 Volt pada R dan 0 Volt pada C. Jadi untuk menyalakan R5C3 harus terjadi forward voltage dari R5 ke C3 sehingga Led menyala.

Untuk membuat sebuah karakter misal huruf A, dapat menggunakan tools bantuan excel seperti dibawah ini :



File excel dapat diunduh disini.

Selanjutnya akan dilakukan proses scanning dari kolom C1 menuju C5 secara cepat, bergantian memberikan logic LOW pada 1 kolom dan Logic HIGH untuk kolom lainya, bersamaan juga merubah nilai PORT yang mewakilinya, seperti pada skematik praktek kita kali ini menggunakan PORT D sebagai Row dan PORT B sebagai Column nya.




Rangkaian diatas sudah disesuaikan dengan penomeran kaki Led Matrix  7x5 (warna merah)  ukuran 2 inch yang umum dipasaran. Bagaimana script untuk menampilkan huruf A seperti contoh excel diatas ?


#define F_CPU 1000000UL      // frekuensi clock internal 1Mhz
#include <avr/io.h> // definisi library standar IO port
#include <util/delay.h> // definisi include untuk delay

char huruf[]=
{ 0b1111110,
0b0001001,
0b0001001,
0b0001001,
0b1111110 };


int main(void)
{
 DDRD = 0b1111111; // untuk baris
 DDRB = 0b11111;  // untuk kolom

 PORTD =0; // Set all pins low
 PORTB =0b11111; //matikan semua led
    
    
 uint8_t a;
 
 while(1)
 { 


  //proses Scan dan tampilkan huruf
   for(a=0 ; a<5 ; a++)    
     
  {

   PORTB = ~(1<<a) ; //scan kolom active LOW
   PORTD = huruf[a]; //Tampilkan baris sesuai nilai array[kolom]
   _delay_ms(2);
   
  }     
 }	
}		

Permaianan kombinasi loop FOR akan sangat berguna dalam membuat animasi geser kanan atau kiri, seperti yang sudah saya jelaskan pada tulisan sebelumnya disini : https://www.aisi555.com/2012/12/script-break-down-episode-love-hurt.html. Atau jika kamu menggunakan arduino uno atau micro, dapat mempelajari pembahasan saya menyeluruh di tulisan saya disini : https://www.aisi555.com/2020/05/praktek-love-hurt-2020-remake-pake.html.


Yah jadi nostalgia deh sedikit mengenang masa lalu...yang penting saya bangga dapat berbagi ilmu bersama kalian pembaca setia blog ini.
Share:

Minggu, 19 September 2021

Lanjutan Praktek Input Output - Jam 4 Digit Dengan Tombol Non Blocking

 



Apa gak bosen kali ya saya menulis tentang jam digital  ?  Kalu dipikir memang saya maniak per-jam-an digital, dari yg paling sederhana pake delay sampai yg murni tanpa microcontroller, FULL CMOS. Saya rangkum dulu deh isi blog ini yg membahas jam mana saja...



Wah masih banyak lagi yang tidak saya sebutkan karena panjang, cek aja sendiri pasti banyak ketemu pembahasan tentang jam yang keseluruhannya memanfaatkan register timer pada microcontroller sekelas AVR.  Kali ini saya akan melanjutkan praktek I/O pada microcontroller Attiny2313 dengan melengkapi 7 segmen agar lebih bermanfaat yaitu ketika digabung beberapa buah menjadi jam yg dapat digunakan. Rangkaiannya seperti berikut ini.




Metode yang sangat terkenal saat pin I/O terbatas adalah metode scanning cepat, dimana tiap display 7 segmen ditampilkan secara bergantian. Jadi ke 7 kaki segmen dari masing-masing display 7 segmen terhubung semuanya. Sedangkan untuk melakukan penyalaannya diberikan tegangan pada common anoda secara satu-persatu dengan kecepatan tinggi sehingga menipu mata kalau nyalanya bareng. Jadi logikanya sesuai flowchart berikut :



Proses scanning penjelasannya seperti berikut :


  • Bagi nilai jam dengan 10 untuk mendapatkan puluhan jam, kemudian aktifkan PB#0, sedangkan PB#1,2,3 OFF. Nilai 7 segmen adalah segmen[puluhan_jam]
  • Ambil sisa pembagian jam dengan 10, kemudian aktifkan PB#1, sedangkan PB#0,2,3 OFF. Nilai 7 segmen adalah segmen[satuan_jam]
  • Bagi nilai menit dengan 10 untuk mendapatkan puluhan menit, kemudian aktifkan PB#2, sedangkan PB#0,1,3 OFF. Nilai 7 segmen adalah segmen[puluhan_menit]
  • Ambil sisa pembagian menit dengan 10, kemudian aktifkan PB#3, sedangkan PB#0,1,2 OFF. Nilai 7 segmen adalah segmen[satuan_menit]

Scriptnya seperti berikut ini :


#define F_CPU 1000000UL      // frekuensi clock internal 1Mhz
#include <avr/io.h> // definisi library standar IO port
#include <util/delay.h> // definisi include untuk delay
#include <avr/interrupt.h>
#include <stdlib.h>

int jam=23, menit=59, detik=50; //variable global untuk menyimpan data2 waktu


//susunan segmen dari portD = GFEDCBA
//7 segmen common ANODA


uint8_t segmen[11]= 
	{0b1000000, // 0
	0b1111001, // 1
	0b0100100, // 2
	0b0110000, // 3
	0b0011001, // 4
	0b0010010, // 5
	0b0000010, // 6
	0b1111000, // 7
	0b0000000, // 8
	0b0010000, //9
	0b1111111}; // 10 / blank



ISR(TIMER1_COMPA_vect)  // 1 detik
{

	detik ++;

	if ( detik == 60)
	{       detik=0;
		menit++;
	}

	if ( menit == 60)
	{       menit = 0;
		jam++ ;
	}
	
	if (jam >23) jam=0;
}

int main(void)
{
    DDRD |= (1<<PD6) |(1<<PD5) |(1<<PD4) |(1<<PD3) |(1<<PD2) |(1<<PD1) | (1<<PD0) ; //segmen
    DDRB |= (1<<PB0) | (1<<PB1) |(1<<PB2) |(1<<PB3) | (1<<PB6) ; //Scan 7 segmen
    DDRB &= ~(1<<PB4) & ~(1<<PB5); // tombol tambah menit dan jam
    
    TCCR1B |= (1 << WGM12); // Configure timer 1 for CTC mode
    TIMSK |= (1 << OCIE1A); // Enable CTC interrupt
    OCR1A  = 15625; //compare the CTC A for 1 second 
    TCCR1B |= (1 << CS11)|(1 << CS10); // Start timer at Fcpu/64

	//untuk tombol anti blocking
	uint16_t waktu =0;  
	bool pencet = false;

	sei(); //start interrupt
   
		
   while (1) 
{ PORTD = segmen[10]; //blanking biar tidak membayang PORTB |=(1<<PB0); //nyalakan 7 segmen no 1 (puluhan jam) PORTB &= ~(1<<PB1) & ~(1<<PB2) & ~(1<<PB3) ; PORTD = segmen[jam / 10]; //ambil nilai puluhan jam _delay_ms(1); //delay disesuaikan terang tampilan 7 seg PORTD = segmen[10]; PORTB |=(1<<PB1); //nyalakan 7 segmen no 2 (satuan jam) PORTB &= ~(1<<PB0) & ~(1<<PB2) & ~(1<<PB3) ; PORTD = segmen[jam % 10]; //modulus atau sisa untuk satuan jam _delay_ms(1); PORTD = segmen[10]; PORTB |=(1<<PB2); //nyalakan 7 segmen no 3 (puluhan menit) PORTB &= ~(1<<PB0) & ~(1<<PB1) & ~(1<<PB3) ; PORTD = segmen[menit / 10]; //ambil nilai puluham menit _delay_ms(1); PORTD = segmen[10]; PORTB |=(1<<PB3); //nyalakan 7 segmen no 4 (satuan menit) PORTB &= ~(1<<PB0) & ~(1<<PB1) & ~(1<<PB2) ; PORTD = segmen[menit% 10]; //modulus atau sisa untuk satuan jam _delay_ms(1); //Tombol if (bit_is_set(PINB, PINB5)) { if(pencet == false) { jam++; if(jam==24) jam =0; } pencet=true; waktu=TCNT1; } if (bit_is_set(PINB, PINB4)) { if(pencet == false) { menit++; if(menit==60) menit=0; } pencet=true; waktu=TCNT1; } if(abs(waktu - TCNT1) > 4000) { //non blocking delay tombol waktu=0; pencet = false; } //blink Led Pemisah Jam : menit if(TCNT1 <7500) PORTB |=(1<<PB6); else PORTB &= ~(1<<PB6); } }

*) catatan :

  • clock yg digunakan adalah RC oscillator  internal pada attiny2313 yg sangat tidak akurat, untuk itu jika menggunakan nilai yg akurat bisa menggunakan xtal oscillator seperti praktek jam lainnya dan jangan lupa merubah fusebit seperti penjelsan disini  dan jika menggunakan USBASP maka butuh batuan fusebit calculator disini .
  • Jika menggunakan clock 4 MHZ maka nilai fusebitnya :


  • Sedangkan perubahan untuk menyesuaikan clock dilakukan pada script dibagian ini :

#define F_CPU 4000000UL
==========================================
			
	TCCR1B |= (1 << WGM12); // Configure timer 1 for CTC mode
	TIMSK |= (1 << OCIE1A); // Enable CTC interrupt
	OCR1A  = 62499; //compare the CTC A (clock 4 Mhz)
	TCCR1B |= (1 << CS11)|(1 << CS10); // Start timer at Fcpu/64

	
  • Non blocking delay pada tombol akan berpengaruh pada tampilan yang tidak terlihat kedip saat tombol dipencet, seperti animasi paling atas dimana saya menggunakan  _delay_ms(300); setelah penekanan tombol.

Share:

Kontak Penulis



12179018.png (60×60)
+628155737755

Mail : ahocool@gmail.com

Site View

Categories

555 (8) 7 segmen (3) adc (4) amplifier (2) analog (19) android (12) antares (9) arduino (26) artikel (11) attiny (3) attiny2313 (19) audio (5) baterai (5) blog (1) bluetooth (1) chatgpt (2) cmos (2) crypto (2) dasar (46) digital (11) dimmer (5) display (3) esp8266 (26) euro2020 (13) gcc (1) iklan (1) infrared (2) Input Output (3) iot (60) jam (7) jualan (12) kereta api (1) keyboard (1) keypad (3) kios pulsa (2) kit (6) komponen (17) komputer (3) komunikasi (1) kontrol (8) lain-lain (8) lcd (2) led (14) led matrix (6) line tracer (1) lm35 (1) lora (8) MATV (1) memory (1) metal detector (4) microcontroller (70) micropython (6) mikrokontroler (1) mikrokontroller (14) mikrotik (5) modbus (9) mqtt (3) ninmedia (5) ntp (1) paket belajar (19) palang pintu otomatis (1) parabola (88) pcb (2) power (1) praktek (2) project (33) proyek (1) python (7) radio (28) raspberry pi (4) remote (1) revisi (1) rfid (1) robot (1) rpm (2) rs232 (1) script break down (3) sdcard (3) sensor (2) sharing (3) signage (1) sinyal (1) sms (6) software (18) solar (1) solusi (1) tachometer (2) technology (1) teknologi (2) telegram (2) telepon (9) televisi (167) television (28) transistor (2) troubleshoot (3) tulisan (93) tutorial (108) tv digital (6) tvri (2) vu meter (2) vumeter (2) wav player (3) wayang (1) wifi (3)

Arsip Blog

Diskusi


kaskus
Forum Hobby Elektronika