Indikator tujuh segmen LED. Indikator tujuh segmen Indikator LED tujuh segmen dengan katoda umum

LED (atau dioda pemancar cahaya) adalah dioda optik yang memancarkan energi cahaya dalam bentuk "foton" ketika dibias maju. Dalam elektronik kita menyebutnya proses electroluminescence. Warna cahaya tampak yang dipancarkan oleh LED berkisar dari biru hingga merah dan ditentukan oleh spektrum spektral cahaya yang dipancarkan, yang pada gilirannya bergantung pada berbagai pengotor yang ditambahkan ke bahan semikonduktor selama proses pembuatannya.

LED memiliki banyak keunggulan dibandingkan lampu dan luminer tradisional, dan mungkin yang paling penting di antaranya adalah ukurannya yang kecil, daya tahan, warna yang beragam, biaya rendah dan ketersediaan yang mudah, serta kemampuan untuk berinteraksi dengan berbagai komponen elektronik lainnya dalam sirkuit digital dengan mudah.

Namun keuntungan utama LED adalah karena ukurannya yang kecil, beberapa di antaranya dapat terkonsentrasi dalam satu wadah kompak, membentuk apa yang disebut indikator tujuh segmen.

Indikator tujuh segmen terdiri dari tujuh LED (sesuai dengan namanya), disusun dalam persegi panjang, seperti yang ditunjukkan pada gambar. Masing-masing dari tujuh LED disebut segmen karena ketika menyala, segmen tersebut merupakan bagian dari sebuah digit (desimal atau 12 digit). Kadang-kadang, dalam paket yang sama, digunakan LED tambahan ke-8. Berfungsi untuk menampilkan titik desimal (DP), sehingga memungkinkan tampilan jika dua atau lebih indikator 7-segmen dihubungkan bersama untuk mewakili angka yang lebih besar dari sepuluh.

Masing-masing dari tujuh segmen tampilan LED dihubungkan ke bantalan baris kontak terkait yang terletak langsung pada rumah indikator plastik persegi panjang. Pin LED diberi label a hingga g, mewakili masing-masing segmen. Kontak lain dari segmen LED saling berhubungan dan membentuk keluaran yang sama.

Jadi, bias maju yang diterapkan pada pin yang sesuai dari segmen LED dalam urutan tertentu akan menyebabkan beberapa segmen menyala sementara sisanya tetap gelap, sehingga simbol pola angka yang diinginkan menyala untuk ditampilkan pada layar. Hal ini memungkinkan kita untuk mewakili masing-masing sepuluh digit desimal dari 0 hingga 9 pada tampilan 7-segmen.

Pin umum biasanya digunakan untuk menentukan jenis tampilan 7 segmen. Setiap LED tampilan memiliki dua terminal penghubung, salah satunya disebut "anoda", dan yang lainnya disebut "katoda". Oleh karena itu, indikator LED tujuh segmen dapat memiliki dua jenis desain sirkuit - dengan katoda umum (OC) dan dengan anoda umum (OA).

Perbedaan antara kedua jenis tampilan ini adalah pada desain OK, katoda dari ketujuh segmen dihubungkan langsung satu sama lain, dan pada desain common anode (CA), anoda dari ketujuh segmen dihubungkan satu sama lain. Kedua skema bekerja sebagai berikut.

  • Katoda umum (OC) - katoda yang saling berhubungan dari semua segmen LED memiliki tingkat logis "0" atau terhubung ke kabel biasa. Masing-masing segmen diterangi dengan menerapkan sinyal logika tinggi atau logika 1 ke pin anoda melalui resistor pembatas untuk meneruskan bias pada masing-masing LED.
  • Anoda umum (CA) - anoda dari semua segmen LED digabungkan dan memiliki tingkat logis "1". Segmen individu dari lampu indikator ketika setiap katoda tertentu dihubungkan ke ground, logika "0" atau sinyal potensial rendah melalui resistor pembatas yang sesuai.

Secara umum, indikator anoda umum tujuh segmen lebih populer, karena banyak rangkaian logika mungkin memerlukan lebih banyak arus daripada yang dapat disuplai oleh catu daya. Perhatikan juga bahwa tampilan katoda umum bukanlah pengganti langsung di sirkuit untuk tampilan anoda umum. Dan sebaliknya - ini sama dengan menyalakan LED dalam arah yang berlawanan, dan oleh karena itu tidak ada cahaya yang dipancarkan.

Meskipun pengukur 7 segmen dapat dianggap sebagai satu tampilan, namun tetap terdiri dari tujuh LED individual dalam satu paket, dan oleh karena itu, LED ini memerlukan perlindungan arus lebih. LED hanya memancarkan cahaya ketika dibias maju, dan jumlah cahaya yang dipancarkan sebanding dengan arus maju. Ini hanya berarti bahwa intensitas LED meningkat kira-kira secara linier dengan meningkatnya arus. Jadi, untuk menghindari kerusakan pada LED, arus maju ini harus dipantau dan dibatasi pada nilai aman oleh resistor pembatas eksternal.

Indikator tujuh segmen tersebut disebut statis. Kelemahan signifikannya adalah banyaknya pin dalam paketnya. Untuk menghilangkan kelemahan ini, skema kontrol dinamis untuk indikator tujuh segmen digunakan.

Indikator tujuh segmen telah mendapatkan popularitas besar di kalangan amatir radio karena mudah digunakan dan dipahami.

Dalam pelajaran ini kita akan belajar tentang diagram untuk menghubungkan indikator LED tujuh segmen ke mikrokontroler dan cara mengontrol indikator tersebut.

Indikator tujuh segmen LED tetap menjadi salah satu elemen terpopuler untuk menampilkan informasi digital.

Kualitas berikut mereka berkontribusi terhadap hal ini.

  • Harga rendah. Dari segi tampilan, tidak ada yang lebih murah dari indikator digital LED.
  • Berbagai ukuran. Indikator terkecil dan terbesar adalah LED. Saya mengetahui indikator LED dengan tinggi digit dari 2,5 mm hingga 32 cm.
  • Bersinar dalam gelap. Dalam beberapa aplikasi, properti ini hampir menentukan.
  • Mereka memiliki warna cahaya yang berbeda. Bahkan ada yang dua warna.
  • Arus kendali yang cukup rendah. Indikator LED modern dapat dihubungkan ke pin mikrokontroler tanpa kunci tambahan.
  • Cocok untuk kondisi pengoperasian yang keras (kisaran suhu, kelembapan tinggi, getaran, lingkungan agresif, dll.). Dalam hal kualitas ini, indikator LED tidak ada bandingannya di antara jenis elemen tampilan lainnya.
  • Kehidupan pelayanan tidak terbatas.

Jenis indikator LED.

Indikator LED tujuh segmen menampilkan karakter menggunakan tujuh LED - segmen digit. LED kedelapan menerangi titik desimal. Jadi ada 8 segmen dalam indikator tujuh segmen.

Segmen ditandai dengan huruf Latin dari “A” hingga “H”.

Anoda atau katoda dari masing-masing LED digabungkan dalam indikator dan membentuk kabel biasa. Oleh karena itu, ada indikator dengan anoda bersama dan katoda bersama.

Indikator LED dengan anoda umum.

Indikator LED dengan katoda umum.

Kontrol LED statis.

Indikator LED harus dihubungkan ke mikrokontroler melalui resistor pembatas arus.

Perhitungan resistor sama dengan masing-masing LED.

R = (suplai U - segmen U) / segmen I

Untuk rangkaian ini: segmen I = (5 – 1,5) / 1000 = 3,5 mA

Indikator LED modern bersinar cukup terang bahkan pada arus 1 mA. Untuk rangkaian dengan anoda umum, segmen akan menyala, pada pin kontrol yang mikrokontroler akan menghasilkan level rendah.

Dalam diagram koneksi indikator dengan katoda umum, polaritas catu daya dan sinyal kontrol berubah.

Segmen akan menyala, pada pin kontrol yang akan dihasilkan level tinggi (5 V).

Mode multipleks untuk mengontrol indikator LED.

Delapan pin diperlukan untuk menghubungkan setiap indikator tujuh segmen ke mikrokontroler. Jika terdapat 3–4 indikator (digit), maka tugas tersebut menjadi hampir mustahil. Pin mikrokontroler tidak cukup. Dalam hal ini, indikator dapat dihubungkan dalam mode multipleks, dalam mode indikasi dinamis.

Temuan-temuan dari segmen-segmen yang memiliki nama yang sama dari masing-masing indikator digabungkan. Hal ini menghasilkan matriks LED yang terhubung antara pin segmen dan pin indikator umum. Berikut adalah rangkaian kontrol multipleks dari indikator tiga digit dengan anoda umum.

Untuk menghubungkan tiga indikator, diperlukan 11 pin, bukan 24, seperti pada mode kontrol statis.

Dengan tampilan dinamis, hanya satu digit yang menyala setiap saat. Sinyal tingkat tinggi (5 V) disuplai ke pin umum salah satu bit, dan sinyal tingkat rendah dikirim ke pin segmen untuk segmen yang seharusnya menyala di bit ini. Setelah waktu tertentu, debit berikutnya menyala. Tingkat tinggi diterapkan pada pin umum, dan sinyal status untuk bit ini dikirim ke pin segmen. Begitu seterusnya untuk semua digit dalam satu putaran tanpa akhir. Waktu siklus disebut waktu regenerasi indikator. Jika waktu regenerasi cukup singkat, mata manusia tidak akan melihat pergantian muatan. Tampaknya semua kotoran terus-menerus bersinar. Untuk menghindari kedipan indikator, diyakini bahwa frekuensi siklus regenerasi harus minimal 70 Hz. Saya mencoba menggunakan setidaknya 100 Hz.

Rangkaian indikasi dinamis untuk LED dengan katoda umum terlihat seperti ini.

Polaritas semua sinyal berubah. Sekarang level rendah diterapkan pada kabel umum pelepasan aktif, dan level tinggi diterapkan pada segmen yang seharusnya menyala.

Perhitungan elemen tampilan dinamis indikator dioda pemancar cahaya (LED).

Perhitungannya agak lebih rumit dibandingkan mode statis. Selama perhitungan, perlu untuk menentukan:

  • arus rata-rata segmen;
  • arus pulsa segmen;
  • resistansi resistor segmen;
  • arus pulsa dari terminal umum pelepasan.

Karena Digit indikator menyala secara bergantian, kecerahan cahaya menentukan arus rata-rata. Kita harus memilihnya berdasarkan parameter indikator dan kecerahan yang dibutuhkan. Arus rata-rata akan menentukan kecerahan indikator pada tingkat yang sesuai dengan kontrol statis dengan arus konstan yang sama.

Mari kita pilih arus segmen rata-rata 1 mA.

Sekarang mari kita hitung arus pulsa segmen tersebut. Untuk menyediakan arus rata-rata yang diperlukan, arus pulsa harus N kali lebih besar. Dimana N adalah banyaknya digit indikator.

saya melakukan segmentasi imp. = Saya segmen rata-rata *N

Untuk skema kami, saya melakukan segmen. imp. = 1 * 3 = 3mA.

Kami menghitung resistansi resistor yang membatasi arus.

R = (suplai U - segmen U) / segmen I. imp.

R = (5 – 1,5) / 0,003 = 1166 Ohm

Kami menentukan arus pulsa dari terminal umum pelepasan. 8 segmen dapat menyala secara bersamaan, artinya Anda perlu mengalikan arus pulsa satu segmen dengan 8.

Saya kategori imp. = Saya segmen imp. * 8

Untuk imp kategori sirkuit I kami. = 3*8 = 24mA.

  • Kami memilih resistansi resistor menjadi 1,1 kOhm;
  • pin mikrokontroler kontrol segmen harus menyediakan arus minimal 3 mA;
  • pin mikrokontroler untuk memilih digit indikator harus menyediakan arus minimal 24 mA.

Dengan nilai arus sebesar itu, indikator dapat dihubungkan langsung ke pin-pin papan Arduino, tanpa menggunakan kunci tambahan. Untuk indikator terang, arus seperti itu cukup memadai.

Skema dengan kunci tambahan.

Jika indikator memerlukan arus lebih besar, maka perlu menggunakan tombol tambahan, terutama untuk sinyal pemilihan digit. Total arus pelepasan adalah 8 kali arus satu segmen.

Diagram koneksi indikator LED dengan anoda umum dalam mode multipleks dengan sakelar transistor untuk memilih pelepasan.

Untuk memilih sedikit di sirkuit ini, perlu untuk menghasilkan sinyal tingkat rendah. Kunci yang sesuai akan membuka dan menyuplai daya ke pelepasan indikator.

Diagram koneksi indikator LED dengan katoda umum dalam mode multipleks dengan sakelar transistor untuk memilih pelepasan.

Untuk memilih sedikit di sirkuit ini, perlu untuk menghasilkan sinyal tingkat tinggi. Kunci yang sesuai akan membuka dan menutup terminal pelepasan umum ke ground.

Mungkin ada rangkaian di mana perlu menggunakan sakelar transistor untuk segmen dan pin bit umum. Skema seperti itu mudah disintesis dari dua skema sebelumnya. Semua rangkaian yang ditampilkan digunakan ketika indikator diberi daya dengan tegangan yang sama dengan catu daya mikrokontroler.

Kunci untuk indikator dengan peningkatan tegangan suplai.

Terdapat indikator berukuran besar yang setiap segmennya terdiri dari beberapa LED yang dihubungkan secara seri. Untuk menyalakan indikator seperti itu, diperlukan sumber dengan tegangan lebih besar dari 5 V. Sakelar harus menyediakan peralihan tegangan tinggi yang dikendalikan oleh sinyal level mikrokontroler (biasanya 5 V).

Rangkaian kunci yang menghubungkan sinyal indikator ke ground tetap tidak berubah. Dan sakelar daya harus dibuat sesuai dengan skema yang berbeda, misalnya seperti ini.

Di sirkuit ini, bit aktif dipilih oleh sinyal kontrol tingkat tinggi.

Di antara pergantian digit indikator, semua segmen harus dimatikan untuk waktu yang singkat (1-5 s). Kali ini diperlukan untuk menyelesaikan proses peralihan kunci sementara.

Secara struktural, pin pelepasan dapat digabungkan dalam satu wadah indikator multi-digit, atau indikator multi-digit dapat dirakit dari indikator satu digit yang terpisah. Selain itu, Anda dapat merakit indikator dari masing-masing LED yang digabungkan menjadi beberapa segmen. Hal ini biasanya dilakukan ketika diperlukan untuk merakit indikator yang sangat besar. Semua skema di atas akan berlaku untuk opsi tersebut.

Pada pelajaran berikutnya, kita akan menghubungkan indikator LED tujuh segmen ke papan Arduino dan menulis perpustakaan untuk mengendalikannya.

Kategori: . Anda dapat menandainya.

Atau termometer dengan jumlah yang besar, sulit menemukan indikator yang sesuai (seperti ALS), dan terkadang memerlukan ukuran yang tidak tersedia secara komersial. Untuk melakukan ini, setiap elemen (segmen) angka sering kali dirangkai dari beberapa LED bulat biasa. Kami menawarkan versi yang lebih canggih dan nyaman dari solusi ini, menggunakan sirkuit mikro 74HC595. Proyek ini menghasilkan rambu-rambu setinggi hampir 10 sentimeter, yang dapat terlihat dari jarak jauh. Jika perlu, sejumlah besar digit dapat dihubungkan satu sama lain secara berurutan melalui konektor khusus.

Diagram skematik

Rangkaian ini merupakan pengontrol tampilan 7 segmen satu digit yang menggunakan satu set besar 5 LED per segmen dan register geser untuk memudahkan kontrol input mikrokontroler. Masing-masing LED yang digunakan dalam proyek ini berdiameter 5mm.

Chip ULN2003 membantu memperkuat arus yang mengalir melalui LED. Resistor R1 - R8 adalah pembatas arus untuk LED, yang dihubungkan secara seri dalam rangkaian.

Selamat tinggal! Setelah istirahat panjang dan terpaksa, kami akan melanjutkan penguasaan mata kuliah Pemrograman Arduino. Pada salah satu pelajaran kita sebelumnya, kita telah bekerja dengan rangkaian LED, sekarang saatnya melanjutkan ke tahap pelatihan berikutnya. Topik artikel hari ini adalah indikator 7 segmen.

Mengenal indikator 7 segmen akan terdiri dari dua bagian. Pada bagian pertama, kita akan membahas secara singkat komponen teoritis, bekerja dengan perangkat keras dan menulis program sederhana.

Terakhir kali kami mengerjakan rangkaian 8 LED, hari ini juga akan ada 8 LED (7 strip LED dan 1 titik). Berbeda dengan barisan sebelumnya, unsur-unsur himpunan ini tidak berjajar (berurutan), melainkan tersusun dalam urutan tertentu. Berkat ini, hanya dengan menggunakan satu komponen Anda dapat menampilkan 10 digit (dari 0 hingga 9).

Perbedaan signifikan lainnya yang membedakan indikator ini dari LED sederhana. Ia memiliki katoda yang sama (atau lebih tepatnya, dua kaki setara 3 dan 8, tempat katoda dihubungkan). Cukup menghubungkan salah satu katoda ke ground ( GND). Semua elemen indikator memiliki anoda tersendiri.

Penyimpangan kecil. Semua hal di atas berlaku untuk indikator 7-segmen dengan katoda bersama. Namun, ada indikator dengan anoda umum. Menghubungkan indikator-indikator tersebut memiliki perbedaan yang signifikan, jadi mohon jangan bingung antara “berdosa dan benar.” Anda perlu memahami dengan jelas jenis perangkat tujuh segmen yang Anda miliki!

Selain perbedaan antara LED sederhana dan indikator 7-segmen, ada juga kesamaannya. Misalnya: indikator, seperti LED, dapat dipasang berjajar (berurutan) untuk menampilkan angka (digit) dua, tiga, empat digit. Namun, saya tidak menyarankan Anda untuk terlalu khawatir tentang merakit sendiri kumpulan segmen. Dijual “di samping” indikator satu digit, indikator multi-digit juga dijual.

Saya harap Anda tidak melupakan perlunya menggunakan resistor pembatas arus saat menghubungkan LED. Hal yang sama berlaku untuk indikator: setiap elemen indikator harus memiliki resistor yang terhubung. 8 elemen (7 + 1) – 8 resistor.

Saya memiliki unit tujuh segmen bertanda 5161AS (katoda umum). Pinout:



Diagram skematik

Seperti yang saya katakan sebelumnya, untuk menghidupkan segmen "A", kami menghubungkan ground ke pin umum mana pun (3 atau 8), dan menyuplai daya 5V ke pin 7. Jika indikator memiliki anoda bersama, maka kami menerapkan 5V ke anoda dan ground ke output segmen!

Mari kita merakit bangku tes. Kami menghubungkan kabel secara berurutan, dimulai dengan kaki pertama, yang menuju ke pin ke-2 papan Arduino. Kami menghubungkan ground ke pin 8 indikator.

Setelah dudukan terpasang, Anda dapat mulai menulis firmware.

Untuk memeriksa indikatornya, mari kita jalankan program tertulisnya. Mari pilih elemen "A" dan flash.


Sekarang mari kita flash nomor 2. Untuk melakukan ini, mari kita aktifkan beberapa elemen lagi.

Untuk menghasilkan satu digit, Anda perlu menulis n-jumlah baris kode. Sulit, bukan?

Ada cara lain. Untuk menampilkan angka apa pun pada indikator, angka tersebut harus direpresentasikan terlebih dahulu sebagai urutan bit tertentu.

Tabel korespondensi.

Jika tampilan memiliki anoda bersama, maka 1 harus diganti dengan 0, dan 0 dengan 1!

Kolom hex adalah representasi angka dalam bentuk byte (kita akan membicarakannya lebih detail di bagian kedua).

Suatu bilangan dalam sistem bilangan biner ditulis sebagai berikut: 0b00000000. 0b- sistem biner. Angka nol berarti semua LED mati.

Saat menghubungkan, kami menggunakan pin 2 hingga 9. Untuk mengaktifkan pin 2, tuliskan satu = 0b00000001. Bit keempat dari kanan bertanggung jawab atas titik. Bit terakhir berhubungan dengan garis di tengah indikator.

Mari kita tulis contoh keluaran angka 0.

Untuk mengurangi jumlah baris yang diketik, kami akan menggunakan loop yang memungkinkan Anda untuk "mengulangi" semua 8 bit. Variabel Aktifkan_segmen nilai bit yang sedang dibaca ditetapkan. Setelah ini, output saat ini diatur ke mode yang sesuai ( ada tidaknya sinyal).

Catatan: Fungsi bitRead() membaca status bit yang ditentukan dan mengembalikan nilai status (0 atau 1).sedikitBaca(x, n)di mana x adalah angka yang bitnya perlu dibaca; n adalah jumlah bit yang statusnya perlu dibaca. Penomoran dimulai dengan bit paling tidak signifikan (paling kanan) bernomor 0.

Dan di akhir bagian pertama kita akan menulis counter kecil.

Pada artikel hari ini kita akan membahas tentang indikator 7-segmen dan cara “berteman” dengan Arduino. Ada beberapa pilihan. Tentu saja cara termudah adalah pergi ke sana dan membeli indikator yang sudah jadi dengan pelindung terintegrasi (inilah sebutan untuk kartu yang cocok), tetapi kami tidak mencari cara yang mudah, jadi kami akan mengambil jalan yang sedikit lebih sulit. Pemula - jangan khawatir, artikel ini, seperti artikel saya sebelumnya ( Dan ) hanya untukmu. Biarkan para guru menulis untuk guru berpengalaman yang sama, dan saya seorang pemula - saya menulis untuk pemula.

Mengapa indikator 7 segmen? Lagi pula, ada begitu banyak layar berbeda, dengan banyak karakter, garis, berbagai diagonal dan resolusi, hitam putih dan berwarna, yang paling terjangkau harganya beberapa dolar... Dan di sini: yang "lama" satu, sangat sederhana, namun membutuhkan sejumlah besar pin indikator 7-segmen, namun tetap saja “orang tua” ini juga memiliki kelebihan. Faktanya adalah bahwa dengan menggunakan sketsa yang diberikan di sini Anda tidak hanya dapat menghidupkan kembali indikator dengan tinggi angka 14 mm, tetapi juga proyek yang lebih serius (walaupun buatan sendiri), dan angka meteran dalam hal ini jauh dari batas. Hal ini mungkin tidak begitu menarik bagi penduduk ibu kota, namun penduduk Novokatsapetovka atau Nizhnyaya Kedrovka akan sangat senang jika sebuah jam muncul di klub atau dewan desa yang juga dapat menampilkan tanggal dan suhu, dan mereka akan berbicara tentang penciptanya. jam ini untuk waktu yang sangat lama. Tapi jam tangan seperti itu adalah topik artikel terpisah: pengunjung pasti menginginkannya - aku akan menulis. Semua yang tertulis di atas bisa dianggap sebagai pendahuluan. Seperti artikel saya sebelumnya, artikel ini akan terdiri dari beberapa bagian, kali ini menjadi dua. Pada bagian pertama kita hanya akan “mengelola” indikatornya, dan pada bagian kedua kita akan mencoba mengadaptasinya untuk sesuatu yang setidaknya sedikit berguna. Jadi mari kita lanjutkan:

Bagian satu. Eksperimental - mendidik

Dasar dari proyek ini adalah ARDUINO UNO, yang sudah kita ketahui dari artikel sebelumnya. Izinkan saya mengingatkan Anda bahwa cara termudah untuk membelinya ada di sini: atau di sini: , selain itu, Anda memerlukan indikator 4 digit, 7 segmen. Saya punya, khususnya, GNQ-5641BG-11. Kenapa yang ini? Ya, karena 5 tahun lalu saya tidak sengaja membelinya, saya terlalu malas untuk menggantinya, jadi selama ini tergeletak begitu saja, menunggu di sayap. Saya pikir siapa pun yang memiliki anoda umum akan melakukannya (dan dengan katoda umum itu mungkin, tetapi Anda harus membalikkan data array dan nilai port lainnya - yaitu, mengubahnya ke yang berlawanan), asalkan itu tidak terlalu kuat agar tidak membakar Arduino. Selain itu, 4 resistor pembatas arus, masing-masing sekitar 100 Ohm, dan seutas kabel (10 cm sudah cukup bagi saya) untuk 12 pin (inti) dapat “dirobek” dari yang lebih lebar, itulah yang saya lakukan. Atau Anda bahkan dapat menyoldernya dengan kabel terpisah, tidak akan ada masalah. Anda juga memerlukan pin untuk papan (11 buah), meskipun jika Anda berhati-hati, Anda dapat melakukannya tanpa pin tersebut. Sketsa indikator dapat dilihat pada Gambar 1, dan diagramnya pada Gambar 2. Saya juga mencatat bahwa lebih baik untuk memasok tidak lebih dari 2.1V ke setiap segmen indikator ini (dibatasi oleh resistor 100 Ohm), dan dalam hal ini akan mengkonsumsi tidak lebih dari 20 mA. Jika angka “8” menyala, konsumsinya tidak akan melebihi 7x20=140 mA, yang cukup dapat diterima untuk keluaran Arduino. Pembaca yang ingin tahu akan menanyakan pertanyaan: “Tetapi 4 pelepasan masing-masing 140 mA sudah menjadi 4x140 = 560 mA, dan ini sudah terlalu banyak!” Saya akan menjawab - tersisa 140. Bagaimana? Baca terus! Letak pin-pin pada indikator dapat dilihat pada Gambar 3. Dan kita buat penyambungannya sesuai Tabel 1.


Beras. 1 - Sketsa indikator


Beras. 2 - Sirkuit indikator


Beras. 3 - Lokasi penyematan

Tabel 1

Pin Arduino Uno

Pin indikator

Catatan

Segmen G

Segmen F

Segmen E

Segmen D

Segmen C

Segmen B

Segmen A

Anoda umum segmen No. 1, dihubungkan melalui resistor 100 Ohm.

Anoda umum segmen No. 2, dihubungkan melalui resistor 100 Ohm.

Anoda umum segmen No. 3, dihubungkan melalui resistor 100 Ohm.

Anoda umum segmen No. 6, dihubungkan melalui resistor 100 Ohm.



Kami mengisi sketsa sederhana, yang merupakan “tabel hitung” sederhana dari 0 hingga 9:


Sekarang untuk beberapa klarifikasi. DDRD adalah register port D (DDRB - masing-masing, port B) di belakang kata "menakutkan" "register" hanya ada fungsi "tersembunyi" yang menunjukkan apakah port akan membaca sesuatu dengan pinnya (menerima informasi), atau sebaliknya sebaliknya dimungkinkan untuk melakukan sesuatu di sana kemudian menulis (memberi informasi). Dalam hal ini, baris DDRD=B11111111; menunjukkan bahwa semua pin port D adalah output, mis. informasi akan keluar dari mereka. Huruf “B” berarti bilangan biner dituliskan ke dalam register. Pembaca yang tidak sabar akan langsung bertanya: “Apakah desimal mungkin!?!” Saya segera meyakinkan Anda bahwa ini mungkin, tetapi akan dibahas lebih lanjut nanti. Jika kita ingin menggunakan separuh port untuk masukan, dan separuh lagi untuk keluaran, kita dapat menentukannya seperti ini: DDRD=B11110000; angka satu menunjukkan pin yang akan memberikan informasi, dan angka nol menunjukkan pin yang akan menerima informasi ini. Kemudahan utama mendaftar juga terletak pada kenyataan bahwa Anda tidak perlu mendaftarkan semua pin sebanyak 8 kali, yaitu. kami menyimpan 7 baris dalam program. Sekarang mari kita lihat baris berikut:

PORTB=B001000; // setel pin 11 pada port B ke tinggi

PORTB adalah register data port B, mis. Dengan menulis nomor ke dalamnya, kami menunjukkan pin port mana yang memiliki satu dan mana yang memiliki nol. Selain komentar, saya akan mengatakan bahwa jika Anda mengambil Arduino Uno sedemikian rupa sehingga Anda dapat melihat pengontrol dan pin digital di atas, maka entri ke dalam register akan jelas, yaitu. yang mana “nol” (atau “satu”) sesuai dengan pin yang mana, mis. nol paling kanan dari port B bertanggung jawab untuk pin ke-8, dan yang paling kiri untuk pin ke-13 (yang memiliki LED bawaan). Untuk port D masing-masing, yang kanan untuk pin 0, yang kiri untuk pin 7.
Saya berharap setelah penjelasan mendetail seperti itu semuanya menjadi jelas, tetapi karena sudah jelas, saya mengusulkan untuk kembali ke sistem bilangan desimal yang kita kenal dan cintai sejak kecil. Dan satu hal lagi - sketsa 25 garis mungkin tampak kecil, tetapi bagi pemula masih agak rumit. Kami akan menguranginya.

Mari kita isi sketsa yang lebih sederhana, “tabel hitung” yang sama:


Video 1.
Hanya 11 baris! Inilah cara kami, “cara pemula”! Harap dicatat bahwa alih-alih bilangan biner, bilangan desimal ditulis dalam register. Tentu saja, untuk angka desimal tidak diperlukan huruf di depannya. Saya pikir tidak ada salahnya memasukkan semua angka ke dalam tabel.

Tabel 2. Korespondensi karakter yang ditampilkan dengan data port

Anoda umum

Katoda umum

Sistem biner

Sistem desimal

Sistem biner

Sistem desimal

Tabel 3. Korespondensi digit yang ditampilkan dengan data port

Anoda umum

Katoda umum

Sistem biner

Sistem desimal

Sistem biner

Sistem desimal



Perhatian! Data pada tabel 2 dan 3 hanya valid jika dirangkaikan sesuai tabel 1.
Sekarang mari kita unggah sketsa dengan “tabel hitung” dari 0 hingga 9999:




Beras. 4 - Meja hitung

Anda dapat melihat sketsa beraksi diVideo 2.

Ada lebih banyak komentar dalam sketsa ini daripada kode itu sendiri. Seharusnya tidak ada pertanyaan... Selain satu hal, “siklus kedipan” macam apa ini, sebenarnya apa yang berkedip di sana dan mengapa? Dan ada juga beberapa jenis variabel untuk ini...
Dan intinya adalah segmen-segmen dengan nama yang sama dari keempat kategori tersebut terhubung pada satu titik. A1, A2, A3 dan A4 memiliki katoda yang sama; A1, B1,…..G1 anoda umum. Jadi, dengan menerapkan “1234” pada indikator 4 digit secara bersamaan, kita akan mendapatkan “8888” dan akan sangat terkejut dengan hal ini. Untuk mencegah hal ini terjadi, pertama-tama Anda harus menyalakan “1” di kategori Anda, lalu mematikannya, menyalakan “2” di kategori Anda, dan seterusnya. Jika Anda melakukan ini dengan sangat cepat, kedipan angka akan menyatu, seperti bingkai pada film, dan mata praktis tidak akan menyadarinya. Dan nilai maksimum dari variabel kedipan dalam hal ini mengontrol kecepatan perubahan angka pada indikator. Ngomong-ngomong, berkat "kedipan" inilah konsumsi arus maksimum hanya 140 mA, bukan 560. Sekarang saya sarankan beralih ke sesuatu yang lebih bermanfaat.

Bagian kedua. Setidaknya sedikit bermanfaat

Pada bagian ini, kami akan menampilkan karakter dari komputer pribadi ke indikator 7 segmen menggunakan ARDUINO MEGA. Mengapa tiba-tiba muncul ide “berganti kuda di persimpangan”? Ada dua alasan: pertama, saya belum pernah membahas ARDUINO MEGA dalam artikel saya sebelumnya; dan kedua, di ARDUINO UNO saya masih belum menemukan cara untuk menukar port COM dan port D secara dinamis. Tapi saya seorang pemula - saya bisa dimaafkan. Tentu saja, Anda dapat membeli pengontrol ini di sini: . Untuk melaksanakan rencana tersebut, saya harus mengambil besi solder dan menyolder ulang kabel dari sisi Arduino, serta menulis sketsa baru. Cara penyolderan kabel dapat dilihat pada Gambar 5. Soalnya ARDUINO MEGA dan ARDUINO UNO mempunyai pinout port yang berbeda, sedangkan Mega memiliki lebih banyak port. Kesesuaian pin yang digunakan dapat dilihat pada Tabel 4.



Beras. 5 - Kabel kabel baru

Tabel 4

Pelabuhan Mega


Perhatian! Tabel ini hanya valid untuk proyek ini!

Anda juga harus mencatat bahwa port C Arduino Mega “dimulai” dari pin 37 dan kemudian dalam urutan menurun, dan port A dimulai dari pin 22 dan kemudian dalam urutan menaik.



Beras. 6 - Tampilan umum



Fitur implementasi kecil: kami akan menampilkan 4 karakter. Karakternya harus berupa angka. Jika Anda memasukkan "1234" dan kami akan melihat "1234", jika Anda memasukkan "123456" kami masih akan melihat "1234", jika Anda memasukkan "ytsuk", "fyva1234", "otiog485909oapom" - kami tidak akan melihat apa pun. Jika Anda memasukkan "pp2345mm" kita akan melihat "23" yaitu. kecil, “anti bodoh” bawaan.

Sketsa itu sendiri:



Anda dapat melihat cara kerja program ini diVideo 3.



Ulasan disiapkan oleh Pavel Sergeev