Kami memprogram LED di telepon. Untuk apa indikator LED? Apa itu status led di ponsel stark

Tidak memungkinkan Anda menyalakan/mematikan indikator LED atau lampu kilat kamera secara langsung;

Cara mengedipkan lampu warna-warni secara terprogram, cara menulis "Senter" Anda sendiri, atau LED perangkat lain apa yang dapat dikontrol - Anda akan mempelajarinya di bawah.

Semuanya bermula ketika, saat menjelajahi sistem file HTC Desire saya menggunakan ES Explorer, saya secara tidak sengaja menemukan direktori yang menarik: /sys/class/leds/blue, /sys/class/leds/flashlight, dll.
Apa lagi yang biru?! Saya hanya melihat indikator oranye dan hijau. Namun yang paling menarik adalah di dalam direktori ini terdapat file kecerahan dengan izin menulis! Yang langsung saya manfaatkan.

Sebenarnya, ini bukan file sederhana, tetapi sebuah antarmuka untuk bekerja dengan driver LED. Jadi dengan menuliskan angka positif pada file /sys/class/leds/blue/brightness maka kita akan menyalakan indikator biru pada body ponsel, tulisan 0 akan mematikannya. Begitu pula dengan indikator kuning dan hijau. Dengan menyalakan dua LED secara bersamaan, kita mendapatkan warna baru: kuning + biru = ungu; hijau + biru = aqua.

Sekarang bagaimana semuanya diprogram?
public void ledControl(Nama string, kecerahan int) (

mencoba (

FileWriter fw = new FileWriter("/sys/class/leds/" + nama + "/brightness" );

fw.write(Integer.toString(kecerahan));

fw.close();

) menangkap (Pengecualian e) (

// Kontrol LED tidak tersedia

}

}


// Nyalakan indikator ungu

ledControl("kuning" , 255 );

ledControl("biru" ,255 );


// Membuat tampilan lebih gelap

ledControl("lampu latar LCD" , 30 );


// Matikan lampu latar tombol

ledControl("tombol-lampu latar" , 0 );


// Atur senter dengan kecerahan sedang

ledControl("senter" , 128 );

Contoh aplikasi dengan kode sumber dapat diunduh.

Kesimpulan
Semua! Sekarang telepon menyala seperti pohon Natal. Kode ini hanya diuji pada HTC Desire yang menjalankan Android 2.2, namun kemungkinan akan berfungsi pada perangkat lain. Tuliskan kepada saya apakah fokus akan berfungsi atau tidak pada ponsel Anda.

Menampilkan simbol di papan skor, jam elektronik, dan banyak lagi. Indikator LED adalah desain sederhana yang menampilkan karakter alfabet atau simbol. Secara struktural, ini adalah kumpulan LED, di mana setiap elemen diterangi oleh indikator segmen tanda.

Fitur dan tipe desain

Indikator LED terdiri dari sirkuit terpadu yang menampilkan berbagai informasi. Tegangan operasi berkisar dari 2V hingga 8V. Mereka mungkin:

Tersegmentasi;
- Matriks;
- Skala linier;
- Lajang

Variasi pertama paling sering digunakan dan merupakan tipe standar. Tergantung pada modelnya, struktur dapat dirakit dari 1-4 kelompok tujuh segmen. Ukuran objek dan jumlah karakter yang ditampilkan bergantung pada jumlahnya. Jadi, satu kelompok tujuh segmen hanya akan menampilkan satu angka atau huruf. Empat kelompok digunakan dalam jam tangan elektronik. Saat memilih sirkuit untuk penggunaan buatan sendiri, pembeli harus memperhatikan keberadaan anoda dan katoda bersama.
Selain indikator kecil, ada juga yang bisa dilihat di tempat umum. Untuk meningkatkan kecerahannya, LED yang terhubung secara berurutan digunakan, dibangun ke dalam masing-masing komponen. Agar indikator menunjukkan angka atau simbol tertentu, diberikan tegangan sebesar 11,2 Volt. Elemen-elemen tersebut memiliki namanya sendiri: A, B, C, D, F atau G. Pengoperasiannya dilakukan oleh register geser dan dekoder digital.

Enkripsi data dan sirkuit terpadu

Elemen-elemen tersebut dipasang pada papan yang mengontrol suplai tegangan. Pekerjaan ini disebabkan oleh akses ke kode program dan penggunaan mikrokontroler khusus. Dengan menggunakan pemrograman, pengaturan waktu diatur yang mempengaruhi tampilan komponen pada waktu tertentu.
Sirkuit terpadu mengubah kode desimal biner dan biner yang dipasok ke layar. Sirkuit umum untuk mengontrol indikator domestik adalah K514ID2 atau K176ID2, pada model impor 74HC595. Manajemen dapat dilakukan dengan dua cara:

Secara langsung, melalui mikrokontroler;
- Menggunakan register geser

Opsi pertama kurang berhasil karena harus menghubungkan banyak pin. Selain itu, konsumsi saat ini mungkin lebih tinggi dibandingkan dengan mikrokontroler. Indikator tujuh segmen yang besar bergantung pada chip MBI5026.

Fitur indikator segmen

Dalam elektronik mereka digunakan untuk inspeksi visual. Strukturnya terdiri dari elemen-elemen berikut:

Indikator sintesis karakter adalah perangkat di mana informasi visual ditampilkan menggunakan satu atau lebih komponen;
- Bidang tampilan data – angka atau simbol lain ditampilkan di dalamnya;
- Elemen tampilan – ​​bagian struktural yang memiliki kendali sendiri;
- Segmen – ​​elemen tampilan informasi, disajikan dalam bentuk garis lurus atau lengkung;
- Ruang familiar – ruang yang diperlukan untuk menampilkan satu karakter

Semua perangkat elektronik melakukan tugas dasar:

1. Informasi visual.
2. Mereka memiliki desain yang lengkap.
3. Dilengkapi dengan kontrol elektronik

Modifikasi segmen berbeda dari modifikasi matriks karena setiap elemen bersifat unik. Bentuk karakternya didesain khusus untuk menampilkan angka atau simbol tertentu. Yang terakhir ini tidak didasarkan pada tujuh, tetapi pada sembilan, empat belas atau enam belas segmen. Bila angkanya melebihi 7, maka cukup rasional menggunakan indikasi peralihan dinamis. Tampilan dan indikasi LED juga dimungkinkan dalam bentuk dua warna. Bola lampu dengan warna berbeda digunakan dan dihubungkan ke sirkuit umum. Dengan menggabungkan temuan-temuan tersebut, diperoleh warna gabungan.

Kesimpulan

Pengoperasian indikator tidak mungkin dilakukan tanpa LED. Perangkat semacam itu relevan tidak hanya untuk peralatan radio, tetapi juga berhasil digunakan untuk rambu, pengatur waktu, dan indikator. Perangkat dari berbagai jenis sirkuit dan kontrol dapat digunakan untuk menampilkan informasi.
Bagikan informasi di halaman media sosial Anda mengenai topik ini.

Pasti Anda sudah melihat indikator “delapan”. Ini adalah indikator LED tujuh segmen yang berfungsi untuk menampilkan angka dari 0 hingga 9, serta titik desimal ( D.P.- Titik desimal) atau koma.

Secara struktural, produk ini merupakan rakitan LED. Setiap LED dalam rakitan menerangi segmen tandanya sendiri.

Tergantung pada modelnya, rakitan dapat terdiri dari 1 - 4 kelompok tujuh segmen. Misalnya, indikator ALS333B1 terdiri dari satu grup tujuh segmen, yang hanya mampu menampilkan satu digit dari 0 hingga 9.

Namun indikator LED KEM-5162AS sudah memiliki dua kelompok tujuh segmen. Itu dua digit. Foto berikut menunjukkan indikator LED tujuh segmen yang berbeda.

Ada juga indikator dengan 4 kelompok tujuh segmen - empat digit (gambar - FYQ-5641BSR-11). Mereka dapat digunakan pada jam tangan elektronik buatan sendiri.

Bagaimana indikator tujuh segmen ditunjukkan pada diagram?

Karena indikator tujuh segmen adalah perangkat elektronik gabungan, gambarnya pada diagram sedikit berbeda dari tampilannya.

Kita hanya perlu memperhatikan fakta bahwa setiap pin berhubungan dengan segmen tanda tertentu yang terhubung dengannya. Ada juga satu atau lebih terminal katoda atau anoda umum, tergantung pada model perangkat.

Fitur indikator tujuh segmen.

Meskipun bagian ini tampak sederhana, bagian ini juga memiliki kekhasan tersendiri.

Pertama, indikator LED tujuh segmen dilengkapi dengan anoda umum dan katoda umum. Fitur ini harus diperhitungkan saat membelinya untuk desain atau perangkat buatan sendiri.

Di sini misalnya, pinout dari indikator 4 digit sudah tidak asing lagi bagi kita TAQ-5641BSR-11.

Seperti yang Anda lihat, anoda LED dari setiap digit digabungkan dan dikeluarkan ke pin terpisah. Katoda LED yang termasuk dalam segmen tanda (misalnya, G), terhubung bersama. Banyak hal tergantung pada jenis diagram koneksi yang dimiliki indikator (dengan anoda atau katoda umum). Jika Anda melihat diagram sirkuit perangkat yang menggunakan indikator tujuh segmen, akan menjadi jelas mengapa hal ini sangat penting.

Selain indikator kecil, ada juga indikator yang besar bahkan sangat besar. Mereka dapat dilihat di tempat umum, biasanya berupa jam dinding, termometer, dan informan.

Untuk menambah ukuran angka pada tampilan dan sekaligus menjaga kecerahan yang cukup di setiap segmen, digunakan beberapa LED yang dihubungkan secara seri. Berikut adalah contoh indikator tersebut - pas di telapak tangan Anda. Ini TAK-23011-BUB-21.

Satu segmennya terdiri dari 4 buah LED yang dihubungkan secara seri.

Untuk menerangi salah satu segmen (A, B, C, D, E, F atau G), Anda perlu menerapkan tegangan 11,2 volt (2,8V untuk setiap LED). Anda dapat melakukan lebih sedikit, misalnya 10V, tetapi kecerahannya juga akan berkurang. Pengecualian adalah titik desimal (DP), segmennya terdiri dari dua LED. Hanya membutuhkan 5 - 5,6 volt.

Indikator dua warna juga ditemukan di alam. Misalnya, LED merah dan hijau terpasang di dalamnya. Ternyata ada dua indikator yang terpasang di dalam casing, tetapi dengan LED dengan warna berbeda. Jika Anda menerapkan tegangan ke kedua rangkaian LED, Anda bisa mendapatkan cahaya kuning dari segmennya. Berikut adalah diagram pengkabelan untuk salah satu indikator dua warna ini (SBA-15-11EGWA).

Jika Anda menghubungkan pin 1 ( MERAH) dan 5 ( HIJAU) ke catu daya “+” melalui transistor kunci, Anda dapat mengubah warna angka yang ditampilkan dari merah menjadi hijau. Dan jika Anda menghubungkan pin 1 dan 5 secara bersamaan, warna cahayanya akan menjadi oranye. Inilah cara Anda bermain-main dengan indikator.

Pengelolaan indikator tujuh segmen.

Untuk mengontrol indikator tujuh segmen pada perangkat digital, register geser dan dekoder digunakan. Misalnya, decoder yang banyak digunakan untuk mengontrol indikator seri ALS333 dan ALS324 adalah sirkuit mikro K514ID2 atau K176ID2. Berikut ini contohnya.

Dan untuk mengontrol indikator impor modern, biasanya digunakan register geser 74HC595. Secara teori, segmen tampilan dapat dikontrol langsung dari keluaran mikrokontroler. Tetapi rangkaian seperti itu jarang digunakan, karena memerlukan penggunaan beberapa pin dari mikrokontroler itu sendiri. Oleh karena itu, register geser digunakan untuk tujuan ini. Selain itu, arus yang dikonsumsi oleh LED segmen tanda mungkin lebih besar daripada arus yang dapat disediakan oleh keluaran mikrokontroler biasa.

Untuk mengontrol indikator tujuh segmen yang besar, seperti FYS-23011-BUB-21, driver khusus digunakan, misalnya, sirkuit mikro MBI5026.

Apa yang ada di dalam indikator tujuh segmen?

Yah, sedikit sesuatu yang enak. Insinyur elektronik mana pun tidak akan menjadi insinyur jika dia tidak tertarik dengan “bagian dalam” komponen radio. Inilah yang ada di dalam indikator ALS324B1.

Kotak hitam di alasnya adalah kristal LED. Di sini Anda dapat melihat jumper emas yang menghubungkan kristal ke salah satu terminal. Sayangnya, indikator ini tidak berfungsi lagi, karena jumper yang sama telah robek. Namun kita bisa melihat apa yang tersembunyi di balik panel dekoratif papan skor.

Gbr.1 Lokasi segmen indikator LED

Indikator LED adalah cara paling sederhana untuk menampilkan informasi simbolis. Desainnya adalah seperangkat LED yang dibuat dalam bentuk segmen dengan bentuk tertentu. Gambar 1 menunjukkan tata letak segmen yang paling umum, yang memungkinkan Anda menampilkan angka 0...9 dan banyak karakter tambahan lainnya. Di dalam rumahan, semua LED memiliki titik koneksi yang sama. Terintegrasi bersama dapat berupa anoda (common anode) atau katoda (common cathode). Warna cahaya yang paling umum adalah merah dan hijau. Dengan konsumsi arus yang sama, LED merah biasanya memiliki keluaran cahaya yang lebih besar. Konsumsi energi tergantung pada tegangan suplai dan teknologi manufaktur. Arus segmen indikator modern bisa kurang dari 1 mA.


Gbr.2 Menghubungkan indikator untuk indikasi dinamis

Untuk menyorot simbol yang diperlukan pada indikator, Anda perlu menggunakan 8 pin pada mikrokontroler. Satu baris dapat disimpan dengan menghilangkan segmen H bila tidak diperlukan tampilan titik (koma). Dengan semakin banyaknya indikator yang digunakan, jumlah jalur I/O akan meningkat secara signifikan. Dua indikator memerlukan 16 baris, 3 indikator memerlukan 24 baris, dst. Jelasnya, untuk sebagian besar aplikasi, penggunaan pin yang boros seperti itu sama sekali tidak dapat diterima. Masalah ini dapat diatasi dengan menggunakan tampilan dinamis. Untuk melakukan ini, alih-alih menghubungkan segmen secara langsung ke mikrokontroler, segmen tersebut digabungkan menjadi kelompok umum, seperti yang ditunjukkan pada Gambar 2. Rangkaian ini menggunakan indikator TOT-3361AH-LN untuk 3 lokasi yang familiar dengan katoda umum. Port D digunakan untuk mengontrol LED segmen A...H. Katoda K0...K2 masing-masing terhubung langsung ke jalur 0...2 port B (untuk indikator jenis lain dengan arus total ≥20 mA, diperlukan elemen buffer tambahan). Pada awalnya, simbol yang sesuai dengan nol keakraban ditampilkan pada indikator. Dalam hal ini, level tegangan diatur ke rendah pada saluran PB0, dan tinggi pada PB1 dan PB2 (jika tidak, simbol akan ditampilkan di ketiga posisi). Setelah jangka waktu tertentu, simbol berikutnya secara berurutan dikeluarkan dan sekarang katoda K1 terhubung ke ground (ada level rendah pada jalur PB1, level tinggi pada PB0 dan PB2). Selanjutnya informasi ditampilkan pada posisi tertinggi indikator (pada PB2 log.0, pada PB0, PB1 log.1), lalu lagi pada nol, dan seterusnya. Pada kecepatan refresh karakter ≥ 50 Hz, inersia penglihatan manusia mulai terlihat. Kedipan (efek peralihan) menghilang. Gambar tersebut dirasakan secara terus menerus, seolah-olah semua simbol terus menerus menyala. Contoh subrutin tampilan dinamis diberikan di bawah ini. Dibutuhkan dua parameter: kode karakter dan nomor posisi di mana karakter ini harus ditampilkan.

; Karena indikator berisi 3 tempat yang familiar, subrutinnya; keluaran karakter harus dipanggil dengan frekuensi ≥ 150 Hz (3 ; keakraban x 50 Hz = 150 Hz). Periode peralihan harus; menjadi 1/150 Hz = 6667 μs, yaitu pada frekuensi 1 MHz untuk AVR; akan menjadi 6667 siklus frekuensi jam generator. Permanen; Paling mudah untuk mengukur interval waktu dengan pengatur waktu yang berjalan; dalam mode reset kebetulan (mode CTC). ATmega8 memiliki ini; mode ada untuk penghitung waktu 16-bit 1 dan 8-; bit timer-counter 2. Untuk tujuan ini (dalam kasus penggunaan timer-counter 1) ada dua register; Ruang RVV: OCR1AH ​​​​(byte tinggi), OCR1AL (byte rendah). ; Ketika rangkaian perbandingan diaktifkan, register penghitungan; TCNT1H:TCNT1L dimulai setelah setiap pulsa masuk aktif; satuan menambah isinya sampai; nilainya tidak sama dengan nilai yang tertulis; OCR1AH:OCR1AL. Saat ini isi TCNT1H:TCNT1L ; direset dan flag OCF1A disetel di TIMSK RV. Jika; preset bit OCIE1A di TIMSK dan bit I di SREG, ; maka akan ada transisi ke pengendali interupsi secara kebetulan; dari modul perbandingan A. Penghitung waktu 1 juga ada; juga modul serupa kedua untuk membandingkan B dengan register; perbandingan OCR1BH:OCR1BL yang fungsinya serupa; dijelaskan di atas.<< WGM12)|(1<< CS10) out TCCR1B,temp ldi temp,high(6667) out OCR1AH,temp ldi temp,low(6667) out OCR1AL,temp ldi temp,1<< OCIE1A out TIMSK,temp sei . service_T1COMPA: ;обработчик прерывания по совпадению OCR1A in temp,SREG ;при входе сохраняем в стеке push temp ;регистры temp, SREG clr temp ldi YH,high(buffer) ;заносим в указатель Y адрес ldi YL,low(buffer) ;буфера индикации buffer add YL,pos ;добавляем к Y смещение, что соответствует adc YH,temp ;ячейке с текущей позицией pos индикатора ld data,Y ;заносим в data кодом символа текущей позиции rcall din_ind ;вызов подпрограммы индикации inc pos ;циклически изменяем номер позиции cpi pos,3 ;индикатора 0->1->2->0, dst.

Jalur port I/O AVR mempunyai karakteristik beban yang simetris. Mereka memungkinkan arus masuk dan arus keluar yang sama hingga 20 mA. Oleh karena itu, indikator dengan anoda bersama dan katoda bersama dapat digunakan dengan keberhasilan yang sama. Selain itu, pin untuk menghubungkan segmen sering kali menjalankan fungsi tambahan sebagai tombol polling. Pada Gambar 2, misalnya, tombol SBN dihubungkan ke saluran segmen A melalui resistor pembatas arus RN. Secara berkala, PD0 dikonfigurasi sebagai input untuk membaca status tombol. Dalam hal ini, resistor pull-up internal bertindak sebagai tahanan beban.


Gbr.3 Mengurangi jumlah pin mikrokontroler
a - menggunakan register geser
b - menggunakan indikator dengan pola koneksi LED yang berbeda

Jumlah pin dapat dikurangi secara signifikan jika sirkuit mikro tambahan digunakan bersama dengan mikrokontroler. Gambar 3a, misalnya, menunjukkan bagaimana register geser 74HC164 atau sejenisnya digunakan untuk tujuan ini. Koneksi ini membebaskan 6 jalur I/O. Dalam beberapa kasus, penggunaan dekoder kode tujuh segmen dan penghitung dari berbagai jenis mungkin dibenarkan. Selain itu, ada peluang penghematan lain berdasarkan penggunaan jalur port z-state. Rangkaian pada Gambar 3b mirip dengan rangkaian pada Gambar 2, dengan satu-satunya pengecualian bahwa indikator tiga digit dengan anoda umum HG2 juga dihubungkan secara paralel dengan indikator dengan katoda umum HG1. Jalur PB0...PB2 secara bersamaan melakukan peralihan masing-masing anoda A0...A2 dari indikator HG2 dan katoda K0...K2 dari HG1. Ketika informasi ditampilkan pada posisi nol HG2 (anoda A0), level tegangan tinggi dihasilkan pada saluran PB0. Pada jalur port D, log.0 diatur pada segmen yang harus menyala dan status z pada segmen yang harus padam. Ketika tanda terendah HG1 (katoda K0) aktif, level tegangan rendah harus ada pada saluran PB0, dan nilai logis dikeluarkan ke port D di mana level logika 1 pada saluran tersebut sesuai dengan segmen yang menyala dan keadaan-z untuk padam. Jika karakter dikeluarkan ke posisi indikator selain A0 dan K0, maka PB0 harus dialihkan ke keadaan impedansi tinggi. Tentu saja, program keluaran untuk skema peralihan seperti itu akan terasa lebih rumit daripada yang ditunjukkan pada Gambar. Tabel simbol akan menjadi jauh lebih besar karena, pertama, untuk masing-masing simbol, selain nilai PORTD, juga perlu menyimpan konten register DDRD, yang melaluinya baris yang sesuai harus disimpan. ditransfer ke status-z (diatur untuk input). Dan kedua, simbol HG1 akan sesuai dengan nilai PORTD terbalik lainnya dalam kaitannya dengan indikator dengan katoda umum HG2.

Tidak memungkinkan Anda menyalakan/mematikan indikator LED atau lampu kilat kamera secara langsung;

Cara mengedipkan lampu warna-warni secara terprogram, cara menulis "Senter" Anda sendiri, atau LED perangkat lain apa yang dapat dikontrol - Anda akan mempelajarinya di bawah.

Semuanya bermula ketika, saat menjelajahi sistem file HTC Desire saya menggunakan ES Explorer, saya secara tidak sengaja menemukan direktori yang menarik: /sys/class/leds/blue, /sys/class/leds/flashlight, dll.
Apa lagi yang biru?! Saya hanya melihat indikator oranye dan hijau. Namun yang paling menarik adalah di dalam direktori ini terdapat file kecerahan dengan izin menulis! Yang langsung saya manfaatkan.

Sebenarnya, ini bukan file sederhana, tetapi sebuah antarmuka untuk bekerja dengan driver LED. Jadi dengan menuliskan angka positif pada file /sys/class/leds/blue/brightness maka kita akan menyalakan indikator biru pada body ponsel, tulisan 0 akan mematikannya. Begitu pula dengan indikator kuning dan hijau. Dengan menyalakan dua LED secara bersamaan, kita mendapatkan warna baru: kuning + biru = ungu; hijau + biru = aqua.

Sekarang bagaimana semuanya diprogram?
public void ledControl(Nama string, kecerahan int) (

mencoba (

FileWriter fw = new FileWriter("/sys/class/leds/" + nama + "/brightness" );

fw.write(Integer.toString(kecerahan));

fw.close();

) menangkap (Pengecualian e) (

// Kontrol LED tidak tersedia

}

}


// Nyalakan indikator ungu

ledControl("kuning" , 255 );

ledControl("biru" ,255 );


// Membuat tampilan lebih gelap

ledControl("lampu latar LCD" , 30 );


// Matikan lampu latar tombol

ledControl("tombol-lampu latar" , 0 );


// Atur senter dengan kecerahan sedang

ledControl("senter" , 128 );

Contoh aplikasi dengan kode sumber dapat diunduh.

Kesimpulan
Semua! Sekarang telepon menyala seperti pohon Natal. Kode ini hanya diuji pada HTC Desire yang menjalankan Android 2.2, namun kemungkinan akan berfungsi pada perangkat lain. Tuliskan kepada saya apakah fokus akan berfungsi atau tidak pada ponsel Anda.