Lihat di dapur Anda. Oven microwave dengan layar LED menyala dan keyboard karet? Itu menyembunyikan otakmu. Ini lebih dari sekedar papan sirkuit. Ini adalah mikrokontroler. Chip Silikon kecil ini ada dimana-mana. Mereka terkubur jauh di dalam produk modern. Anda mungkin menggunakannya puluhan kali sehari.
Pikirkan tentang mobil Anda. Setiap orang memiliki setidaknya satu. Model kelas atas dapat menampung 6 hingga 7 mobil. Hanya satu mesin yang berfungsi. Gunakan rem anti-lock yang berbeda. Kontrol pelayaran? Ini yang ketiga. Anda akan mulai melihat sebuah pola. Perangkat yang Anda ajak bicara mungkin memilikinya.
Mereka ditampilkan di TV. Mereka ada di VCR. Bahkan sistem stereo kelas atas yang lebih tua pun mengandalkan ini. Ingin mengambil foto? Dalam DSLR atau kamera digital berkualitas tinggi, memang demikian. telepon genggam? Benar-benar. kamera. Mesin penjawab. pencetak laser. Apakah ini telepon modern dengan ID penelepon dan slot memori untuk 20 nomor? Ya. pager. Ya. Mereka juga digunakan pada peralatan rumah tangga yang kaya fitur seperti lemari es dan mesin pencuci piring dengan antarmuka digital.
Pada dasarnya, ketika suatu produk berinteraksi dengan pengguna, ia memiliki Mikrokontroler di dalamnya.
Tapi apa sebenarnya itu? Mengapa kita harus peduli?
Memahami komponen ini akan mengubah cara Anda memandang teknologi. Ini bukan sihir. Ini hanya rekayasa. Memahami cara kerjanya membuka kotak hitam. Anda dapat mulai membangun sesuatu sendiri.
Mari kita pecahkan misteri ini. Pelajari apa itu Mikrokontroler. Pahami bagaimana data Anda diproses. Maka Anda harus melakukannya. Membuat jam digital. Itu saja. Gunakan mikrokontroler.
Selanjutnya kita akan membuat termometer digital.
Barang-barang ini lebih dari sekedar mainan. Mereka akan memberi tahu Anda tentang produk yang tersedia secara komersial. Lihat bagaimana para insinyur merancang peralatan yang mereka gunakan. Ini adalah informasi praktis.
“Pada dasarnya, Mikrokontroler Tertanam dalam produk dan perangkat yang berinteraksi dengan pengguna.”
Ini adalah langkah pertama. Yang tersisa hanyalah implementasinya.
Mikrokontroler adalah komputer. Ini memiliki struktur dasar yang sama dengan komputer desktop tempat Anda mungkin membaca ini. Ada prosesor yang mengeksekusi kode tersebut. Itu menarik kode itu dari penyimpanan. Ia menggunakan RAM untuk variabel sementara. Ia memiliki masukan dan keluaran yang berinteraksi dengan dunia.
Perbedaannya adalah tujuannya. Mesin desktop adalah mesin serba guna. Jalankan browser, game, atau pengolah kata. Mikrokontroler adalah mesin khusus. Itu melakukan satu hal. Dan itu dilakukan dengan sangat baik.
Suatu perangkat menggunakan driver tertanam jika memenuhi standar tertentu.
Tujuan yang Tertanam
Chip ini disembunyikan di dalam perangkat lain. Mereka mengontrol fungsionalitas atau perilaku produk konsumen. Anda tidak melihatnya. Anda hanya berinteraksi dengan konten yang mereka aktifkan.
Mereka berdedikasi. Mereka menjalankan satu program tertentu. Program biasanya disimpan dalam ROM (read-only memory) dan jarang diubah. Itu sudah matang.
Kekuasaan penting di sini. Komputer desktop yang disambungkan ke dinding dapat mengonsumsi daya sebesar 50 watt. Mikrokontroler bertenaga baterai dapat mengonsumsi daya sebesar 50 miliwatt. Hal ini membuat perbedaan besar dalam efisiensi.
Masukan, Keluaran, dan Lingkungan
Mikrokontroler memiliki perangkat inputnya sendiri. Mereka sering menggunakan LED atau LCD kecil untuk keluaran. Namun sebagian besar waktu mereka berkomunikasi dengan perangkat keras yang mereka kendalikan.
Pikirkan tentang TV. Mikrokontroler menerima input dari remote control. Ini menampilkan output di layar. Mengontrol pemilih saluran. Sesuaikan speaker. Menyesuaikan nada dan kecerahan elektronik tabung sinar katoda.
Atau lihat mobil Anda. Pengontrol mesin menerima masukan dari sensor oksigen dan sensor ketukan. Kontrol campuran bahan bakar. Ini kali busi.
Oven microwave juga merupakan contoh klasik. Dibutuhkan input dari keypad. Menampilkan waktu di layar LCD. Ini memicu relai untuk menghidupkan atau mematikan magnetron.
Chip ini juga menghadapi lingkungan yang keras. Mereka biasanya tahan lama, meski belum tentu kuat dan tahan lama. Pengontrol mesin untuk mobil Alaska harus tahan terhadap suhu hingga -30°F. Di Nevada, suhunya mungkin mencapai 120°F. Dikombinasikan dengan panas mesin itu sendiri, suhu interior mobil dapat meningkat antara 150°F dan 180°F.
Mikrokontroler di dalam VCR? Mungkin tidak peduli. Itu tidak kokoh sama sekali.
Perangkat keras internal
Prosesornya sendiri berbeda. Ini mungkin kuno. Ini bisa menjadi sangat kuat.
Prosesor Z-80 dapat digunakan di ponsel digital. Itu adalah chip 8-bit dari tahun 1970an. Ini awalnya mendukung komputer rumahan.
Garmin GPS menggunakan versi berdaya rendah dari Intel 80386. 80386 adalah standar desktop. Sekarang ada di dalam navigator portabel.
Untuk tugas sederhana, produsen lebih memilih chip mikrokontroler khusus. Harga dan ukuran adalah faktor penentu. Motorola 6811 dan Intel 8051 adalah contoh sejarah. Mereka dirancang agar tidak mahal, kompak dan berdaya rendah.
Lalu ada mikrokontroler PIC. Ada alasan mengapa produk yang dikembangkan oleh Microchip ini begitu populer. Menurut standar sekarang, mereka minimalis. Tapi belilah dalam jumlah banyak, dan harganya sangat murah. Penuhi kebutuhan desainer dengan satu chip.
Mengapa kesederhanaan menang
Pertimbangkan chip mikrokontroler low-end yang khas. Ini dapat memiliki 1000 byte ROM. RAM 20 byte. 8 pin I/O.
Jika diproduksi dalam jumlah banyak, harganya hanya beberapa sen saja.
Anda tidak akan pernah menjalankan Microsoft Word dengan ini. Word membutuhkan RAM 30MB dan prosesor yang mampu memproses jutaan perintah per detik.
Namun, Anda tidak memerlukan Word untuk mengontrol microwave Anda. Anda perlu menyelesaikan tugas tertentu. Biaya rendah. Daya rendah. Ini adalah proposisi nilai mikrokontroler.
Menggunakan mikrokontroler
Trennya sedang bergeser. Ketika perangkat menjadi lebih pintar, garis antara “mikrokontroler” dan “prosesor” menjadi kabur. Namun filosofi intinya tetap ada. Jika yang Anda perlukan hanyalah mengontrol relai, memantau sensor, dan berkedip LED, Anda tidak memerlukan superkomputer. Anda membutuhkan otak yang fokus dan efisien.
Lain kali Anda memeriksa jam, mengatur termostat, atau menyalakan mobil, ingatlah chip kecil, tahan lama, dan murah ini yang bekerja tanpa suara di latar belakang. Ini bukan hanya perangkat keras. Ini adalah komputer khusus yang melakukan tugasnya.
Cara terbaik adalah dengan membangun gerbang TTL seri 7400 untuk membuat jam digital. Pelajari bagaimana lonjakan tegangan pada transistor. Anda dapat melihat mengapa gerbang NOT tunggal merupakan chip fisik. Anda juga dapat melihat bahwa mengimplementasikan sesuatu yang kompleks memerlukan kabel yang rumit dan banyak chip. Sebuah jam sederhana mungkin memerlukan 15 atau 20 komponen individual. itu berhasil. Ini besar sekali. Dan itu sulit.
Perangkat lunak ini mengubah persamaan sepenuhnya.
Mikrokontroler mengemas logika lusinan gerbang ke dalam satu chip silikon. Anda menulis programnya. Chip mengeksekusinya. Perangkat keras akan melakukan sisanya. Pada artikel ini, kita melewati labirin papan tempat memotong roti dan langsung menuju ke kodenya. Kami sedang membangun jam digital. Harganya hampir dua ratus dolar. Ini sepertinya gila untuk jam tangan yang hanya menunjukkan waktu. Namun, tujuannya bukan untuk menghemat uang. Tujuannya adalah untuk mempelajari cara berkomunikasi dengan mikrokontroler. Jika Anda memahami hal ini, Anda bisa melakukan apa saja.
Stempel BASIC: Penyederhanaan perangkat keras
Kebanyakan mikrokontroler memerlukan bahasa assembly atau driver yang kompleks. Membutuhkan seorang programmer. Anda perlu memahami siklus jam dan pemetaan memori. Stempel BASIC Parallax menghilangkan gesekan ini. Ini adalah mikrokontroler PIC yang dikemas dalam bahasa BASIC yang diketahui sebagian besar penghobi.
Namanya literal. Papan itu seukuran prangko.
Kami sedang mengerjakan BASIC Stamp Revisi D. Ini bukan hanya keripik. Ini adalah papan pembawa yang dirakit lengkap. Termasuk dudukan baterai 9 volt. Dilengkapi dengan pengatur daya yang menjaga tegangan tetap stabil. Termasuk pin header untuk jalur input/output. Ada juga area prototipe kecil jika Anda ingin menyolder satu atau dua resistor langsung ke papan. Anda juga dapat membeli chip BS-1 asli dan mengirimkannya sendiri. Revisi D hanya menyelamatkan Anda dari sakit kepala.
Mengapa menggunakan prangko “mahal”?
Prangko BASIC tidak tersedia untuk produk konsumen. Produsen membencinya. mereka sangat lambat. Itu mahal. Jika Anda memproduksi 10.000 unit, Anda mungkin akan menggunakan PIC atau AVR standar. Tapi untuk pembuatan prototipe? Mereka tidak terkalahkan.
Memasang mikrokontroler normal dapat memakan waktu beberapa jam. Anda perlu mengkonfigurasi sekering. Anda perlu membakar bootloader. Anda perlu men-debug keluaran serial. Stempel hanya membutuhkan dua hal. Hubungkan ini ke port di komputer desktop Anda. Anda menulis programnya. Tekan kirim. Chipnya berfungsi.
Kesederhanaan ini menimbulkan trade-off. Memori BS-1 pada stempel terbatas. Memori EEPROM hanya menampung sekitar 256 byte. Ini setara dengan sekitar 75 baris kode BASIC. Ada batasannya. Anda tidak dapat membuat server web. Gambar beresolusi tinggi tidak dapat disimpan. Namun, Anda dapat membuat lampu LED berkedip. sensornya bisa terbaca. Anda dapat menjalankan jam.
Buat jam
Saya menggunakan perangkat keras ini untuk membuat jam digital. Itu akan mahal. Papan itu sendiri harganya lebih murah, tetapi Anda memerlukan komputer untuk memprogramnya. Anda harus mengetahui batasan Anda.
Batasan 75 baris memaksa Anda untuk menjadi efisien. Anda tidak dapat membuat kode Anda membengkak. Anda harus mempertimbangkan apa yang sebenarnya perlu dilakukan oleh chip tersebut. Apakah perlu menampilkan detik? Ya. Apakah tampilan harus disegarkan setiap milidetik? Mungkin tidak. Setiap baris penting.
Pendekatan ini mengajarkan Anda inti dari sistem tertanam. Ini bukan hanya tentang menulis kode. Anda mengontrol sumber daya Anda. Anda bekerja dalam batasan perangkat keras. Jika Anda dapat membuat jam bekerja pada Stamp, Anda dapat menggerakkan hampir semua hal dengan mikrokontroler. Logikanya tetap sama. Skalanya berubah.
Jamnya sendiri sederhana. Namun mencapainya adalah nilai sebenarnya. Belajar terhubung menggunakan pin. Belajar mengatur waktu. Pelajari cara memasukkan kode ke dalam chip dengan sedikit atau tanpa memori.
“Prangkonya sangat kecil dan dioperasikan dengan baterai sehingga Anda dapat membawanya hampir ke mana saja.”
Portabilitas ini adalah nilai jual yang nyata. Anda dapat membawa jam ke mana saja. Anda dapat menghubungkan sensor. Anda dapat mengubahnya menjadi stasiun cuaca. Basisnya kokoh. Kodenya ketat. Peralatannya minim.
Anda tidak hanya membuat jam. Anda sedang membangun keterampilan.
Bahasa yang disederhanakan untuk logika tertanam
Menulis prangko BASIC bukanlah menciptakan kembali roda. Menggunakan versi bahasa pemrograman BASIC yang disempurnakan. Kalau sudah tahu BASIC pasti terasa familiar, hanya saja sintaksnya lebih tepat. Jika Anda memiliki latar belakang C, Pascal, atau Java, fitur Stamp BASIC mudah untuk dikuasai. Jika Anda belum pernah menulis kode, jangan mulai dari sini. Silakan belajar di desktop Anda terlebih dahulu.
Parallax menjelaskan lingkungan ini secara detail, tetapi untuk gambaran singkatnya, mari kita lihat serangkaian instruksi khusus yang dirancang untuk perangkat keras terbatas.
Alur kontrol standar dan subrutin
Logika inti tetap konstan. Berikut adalah beberapa hal yang biasa dilakukan untuk mengelola aliran program.
untuk...berikutnyauntuk siklus standar.gosubmelompat ke subrutin.gotomelompat ke baris yang ditandai dalam kode.jika...makauntuk keputusan bersyarat.biarkanuntuk tugas tersebut (meskipun biasanya opsional di Stamp BASIC).returnmengakhiri subrutin.endmenghentikan program dan membuat chip tertidur.
Operasi pin I/O langsung
Di sinilah perangko hidup dan mati. Pin adalah antarmuka ke dunia fisik. BS-1 memiliki 8 pin (0-7). BS-2 menggandakannya menjadi 16 (0-15). Mereka menempuh dua arah. Anda dapat membaca dari mereka dan menulis kepada mereka.
Anda dapat mengontrolnya menggunakan perintah tertentu.
tombolmenggunakan logika debounce dan pengulangan otomatis bawaan untuk membaca input.tinggidanrendahatur pin ke 1 (+5 V) atau 0 (ground).inputdanoutputmenentukan arah pin.- Hubungkan potensiometer ke kapasitor sesuai petunjuk, dan
potakan membaca potensiometer. pulsindanpulsoutmenangani input dan output durasi pulsa.pwmmenghasilkan modulasi lebar pulsa untuk motor atau peredupan.reversemembalikkan arah I/O.serindanseroutmenangani komunikasi serial.suaramenghasilkan frekuensi tertentu.- Ubah status bit pin keluaran
toggle.
Fungsi Khusus Stempel dan EEPROM
Perangkat keras memiliki beberapa keanehan yang langsung ditanggapi oleh bahasa:
branchBaca tabel cabang untuk mempercepat pencarian.- Mengirim string
debugke konsol desktop. eeprommenangani penyimpanan program.lookdowndanlookupmemungkinkan pengindeksan tabel.tidur siangdanjedamenimbulkan penundaan.randommenghasilkan angka pseudo-acak.bacadantulismenggunakan memori EEPROM non-volatil.sleepmematikan chip untuk waktu tertentu.
Operator aritmatika dan logika
Matematika adalah hal mendasar. Ini sangat mendasar.
+dan-untuk penjumlahan dan pengurangan.*untuk perkalian kata rendah.**untuk perkalian kata tinggi.
●/untuk pembagian.- untuk modulo.
maxdanmindigunakan untuk mencari nilai ekstrem.
Operasi logis adalah mis.
&(dan)|(atau)
–^(XNOR)
–&/(NAND)|/(TIDAK)
–^/(XNOR)
Operator perbandingan untuk pernyataan if adalah =, <>, <, <=, >, >=, AND, OR.
Batas memori: Realitas 14-Byte
Variabel BS-1 tidak terbatas. Tepatnya ada 14 byte RAM. Anda harus memperlakukan setiap byte seperti emas.
Bahasa ini menyediakan nama variabel yang telah ditentukan sebelumnya, namun Anda juga dapat menambahkan alias ke nama variabel.
w0-w6: variabel kata 16-bit.b0-b13: variabel byte 8-bit.bit0-bit15: variabel Boolean 1-bit.
Inilah masalahnya. Karena cara memori dipetakan, w0 dan b0 (dan b1 ) berbagi lokasi RAM fisik yang sama. w1 dibagikan dengan b2 dan b3. bit0 –bit15 ada di w0. Artinya mengubah w0 juga akan mengubah b0 dan b1. Ini bukanlah suatu kesalahan. Ini adalah batasan. Anda perlu tahu persis apa yang Anda timpa.
Bicaralah kepada dunia melalui pin
Mengapa ada begitu banyak instruksi I/O? Karena pin inilah satu-satunya cara prangko berkomunikasi dengan dunia luar.
Mengirim nilai itu mudah. high 3 mentransmisikan +5V pada pin 3. low 3 mengirimkan ground. Anda dapat memilih pin mana saja dari 0 hingga 7 dari BS-1. Logikanya mirip dengan BS-2, tetapi ada lebih banyak pin yang harus dikontrol.
Instruksi lanjutan seperti pwm untuk motor dan pot untuk resistor variabel menyederhanakan desain perangkat keras. Tidak diperlukan sirkuit eksternal yang rumit untuk setiap input analog. Stempel menangani waktu denyut nadi.
Jika Anda mengalami kebuntuan, "Memrogram dan Menyesuaikan Komputer Stempel BASIC" oleh Scott Edward adalah sumber yang dapat diandalkan. Ini mencakup contoh proyek yang menunjukkan bagaimana menghubungkan hal-hal ini bersama-sama, bukan hanya menulis kode.
Anda tidak memerlukan gelar PhD dalam sistem tertanam untuk mulai menggunakan BASIC Stamp. Yang Anda butuhkan hanyalah komputer desktop dan BASIC Stamp Starter Kit. Kit ini mencakup perangkat keras yang diperlukan, kabel koneksi, dan aplikasi desktop untuk memasukkan kode BASIC ke dalam memori chip.
Paket ini dapat dibeli dari Parallax atau Jameco, pemasok yang mungkin Anda ketahui dari artikel kami sebelumnya tentang gerbang elektronik dan jam digital. Parallax mencantumkan BASIC Stamp D Starter Kit dengan nomor komponen 27202. Nomor komponen Jameco adalah 140089. Keduanya seharga $79.
Parallax sesekali menjalankan kampanye "Kami Telah Mengantongi Dasar-Dasarnya". Kesepakatan ini menambahkan "Pemrograman dan Penyesuaian Komputer Stempel BASIC" karya Scott Edward ke dalam kotak Anda. Ini adalah referensi yang berguna jika Anda ingin menggali lebih dalam dari manualnya.
Pengkabelan dan eksekusi kode
Pengaturan fisiknya mudah. Hubungkan stempel ke port paralel komputer Anda. Kemudian jalankan aplikasi DOS, edit kodenya, dan kirimkan melalui kabel.
Tekan ALT-R untuk menjalankan program di editor. Perangkat lunak ini memeriksa sintaksis Anda terlebih dahulu. Kemudian masukkan kode tersebut ke dalam memori EEPROM stempel. Chip segera mengeksekusinya.
Contoh default membuat gelombang persegi pada pin I/O 3. Hubungkan probe logika atau LED ke pin ini. Anda akan melihatnya berkedip dua kali per detik. Perintah PAUSE menyebabkan status berubah setiap 250 milidetik.
Perangkat ini memerlukan daya yang cukup untuk bekerja selama beberapa minggu dengan baterai 9 volt. Anda dapat memeras lebih banyak kehidupan dengan menyesuaikan waktunya. Nyalakan LED hanya selama 50 ms lalu matikan selama 450 ms. Beralih dari instruksi PAUSE ke instruksi NAP juga dapat mengurangi konsumsi daya secara signifikan.
Membuat Jam Digital yang Mahal Banget
Menghabiskan $79 untuk lampu berkedip sepertinya sia-sia. Kebanyakan orang ingin membangun sesuatu yang berguna dengan BASIC Stamp. $100 lainnya memberi Anda jam digital. Biayanya tampaknya tinggi sampai Anda menyadari bahwa suku cadang tersebut tidak dapat dibuang. Mereka dapat digunakan kembali. Kami akan menggunakan ini dalam proyek-proyek masa depan.
Mendorong banyak nomor dengan pin terbatas
Misalkan Anda perlu menampilkan nomor pada pin I/O. Dalam panduan jam digital kami sebelumnya, kami menunjukkan cara menggunakan chip 7447 untuk terhubung ke LED 7-segmen. Chip ini bekerja dengan baik dengan BASIC Stamp. Hubungkan 4 pin langsung ke 7447. Angka antara 0 dan 9 muncul di layar. Stempel BS-1 memiliki delapan pin I/O. Ini cukup untuk memberi daya pada dua 7447 secara langsung.
Jam membutuhkan 4 digit. Delapan pin tidak dapat menggerakkan empat chip secara bersamaan. Anda menjadi kreatif.

Berikut pengaturannya. Delapan baris berasal dari Stempel. Empat jalur terhubung ke keempat 7447. Mereka membawa data. Empat baris lainnya mengaktifkan chip satu per satu. Pin "E" 7447 adalah input pengaktifan. Ini mengosongkan layar. Program stempel mengeluarkan digit pertama. Ganti jalur kontrol pertama untuk mengaktifkan chip pertama. Kemudian kirim nilai lain. Ini mengaktifkan chip kedua. Ulangi keempatnya berulang kali.
Anda dapat terhubung dengan berbagai cara. 7447 mungkin cukup. Gunakan demultiplexer 74154. Lebih banyak pengemudi. Dengan cara ini Anda dapat memasukkan hingga 16 digit.
Realitas multipleksing
Inilah cara Anda mengontrol tampilan LED Anda. Buka kalkulator LED lama. Nyalakan. Kocok sambil melihat layar. Perhatikan baik-baik. Hanya satu digit yang menyala dalam satu waktu. Teknik ini disebut multiplexing tampilan. Menipu mata Anda untuk melihat angka lengkapnya.
Multiplexing bekerja dengan jam. Bekerja dengan kalkulator. Ada masalah.
LED menguras daya. Dengan cepat.
LED 7 segmen hanya menampilkan angka.
Jumlahnya terbatas. Bagaimana dengan surat? Bagaimana dengan simbolnya?
Beralih ke LCD
Layar LCD adalah alternatifnya. Layar ini ada dimana-mana. Mereka mudah untuk dihubungkan ke Stempel.
Pertimbangkan tampilan alfanumerik dua baris 16 karakter. Tipe ini tersedia dari Jameco. Nomor bagian 150990. Juga tersedia di Parallax. Nomor bagian 27910.

Gambar ini menunjukkan tampilan yang khas. Itu melekat pada papan tempat memotong roti. Hal ini membuat antarmuka menjadi lebih mudah. Anda tidak menyolder kabel ke bagian yang terbuka. Anda memasukkan ke dalam baris.
LCD saluran tunggal mahal, tapi karena alasan sederhana
Anda mendapatkan apa yang Anda bayar. Modul LCD jenis ini harganya mahal. Harganya sekitar $59. Itu bukanlah uang receh bagi seorang penghobi. Ini tentunya tidak dapat digunakan pada oven yang diproduksi secara massal. Marginnya akan hilang sebelum Anda menjual unit pertama.
Tapi mereka ada karena suatu alasan. Proses desain disederhanakan. Anda dapat menggerakkan seluruh tampilan hanya dengan satu pin I/O.
Modul ini berisi logika. Ini menangani beban berat komunikasi serial. Mikrokontroler Stamp hanya perlu mengirimkan data. Perintah SEROUT di Stamp BASIC menjadikan hal ini sepele. Tidak diperlukan putaran waktu yang rumit. Anda tidak perlu berkutat dengan spesifikasi protokol. Perangkat keras melakukan pekerjaannya.
Fungsi daya dan tampilan
Konsumsi daya sangat rendah. Perangkat ini hanya mengkonsumsi arus 3 miliampere. Hal ini dapat diabaikan untuk proyek bertenaga baterai. Ini didukung oleh baterai standar 9 volt melalui stempel yang menyediakan +5 volt dan ground yang diperlukan.
Layarnya sendiri serbaguna. Ini menunjukkan teks alfanumerik. Surat. Angka. Anda juga dapat menentukan karakter khusus jika Anda menginginkan ikon tertentu. Ini lebih dari sekedar lampu berkedip. Ini adalah keluaran teks aktual.
Prototipe dan produksi
Inilah realitas desain tertanam. Anda dapat membuat prototipe dengan suku cadang yang mahal namun mudah digunakan. Kemudian Anda mendesain ulang untuk biaya.
Jika Anda membuat produk komersial, Anda akan menggunakan tampilan $59 ini untuk memvalidasi logika Anda. Uji kode Anda. Anda akan memastikan antarmuka berfungsi. Setelah dikonfirmasi, saya akan beralih ke LCD serba guna yang lebih murah. Anda akan menulis chip driver khusus. Optimalkan perangkat lunak Anda. Modul yang mahal adalah alat pengembangan, bukan alat penyampaian akhir.
Buat koneksi
Menghubungkan perangkat keras sangat mudah. Pasokan +5V dan ground. Hubungkan salah satu pin I/O label ke jalur input monitor.
Saya lebih suka pembungkus kawat untuk ini. Itu bersih. Dapat diandalkan. Tidak memerlukan penyolderan. Anda memerlukan alat pembungkus kawat (Jameco part 34577) dan kawat pembungkus kawat ukuran 30 (Jameco part 22541 adalah pilihan yang umum). Struktur koneksinya kompak. Anda dapat memasukkan semuanya ke dalam wadah kecil tanpa banyak besi solder.
Struktur dan akurasi kode
Program BASIC di bawah ini mengubah Stempel menjadi sebuah jam. Diasumsikan LCD terhubung ke pin I/O 0.
"" Dasar
jeda 1000' Tunggu hingga LCD menyala
serout 0, n2400, (254, 1) 'Bersihkan layar
serout 0, n2400, ("time:") 'Cetak judul "time:"
' Variabel preset sebelum memuat program
b0 = 0' Detik
b1 = 27' Menit
b2 = 6' Jam
lagi:
b0 = b0 + 1 ' Menambah detik
jika b0 < 60 maka menit
b0 = 0 'reset detik
b1 = b1 + 1' penjumlahan
Menit:
waktu jika b1 < 60
b1 = 0 'Reset menitnya
b2 = b2 + 1 ' Tambahkan waktu
Waktu:
Tunjukkan jika b2 < 13
b2 = 1 'Reset waktu (format 12 jam)
Tampilan:
serout 0, n2400, (254, 135) ' posisi kursor
serout 0, n2400, (#b2, ":", #b1, ":", #b0, " ") ' Waktu tampilan
jeda 950' tunggu 950 ms
Lanjutkan ke "Mainkan" lagi.
""
Logikanya sederhana. Perintah SEROUT menangani semua komunikasi. Rangkaian (254, 1) berfungsi sebagai kode escape. Memberitahu monitor untuk membersihkan layar. Kumpulan (254, 135) memposisikan kursor. Yang perlu Anda lakukan hanyalah mengirim string teks.
Jam tangan ini cukup akurat. Anda dapat mengubah pernyataan PAUSE dengan menyesuaikannya. Itu dapat diselesaikan dalam hitungan detik setiap hari. Ini tidak seakurat jam atom. Namun, ini cukup untuk perangkat yang berdiri sendiri.
Pendekatan ini
Putaran waktu yang sederhana bisa melayang. Jika Anda membutuhkan presisi, Anda memerlukan perangkat keras.
Chip Jam Waktu Nyata (RTC) memecahkan masalah penyimpangan. Kristal digunakan untuk menjaga keakuratan waktu. Tempelkan pada stempel. Stempel tersebut terbaca kira-kira sekali per detik. Selanjutnya, tampilkan informasinya.
Ini bukan hanya hitungan detik.
Kebanyakan chip RTC juga menangani informasi tanggal. Koreksi tahun kabisat dikelola secara otomatis. Kode Anda tidak perlu menghitung apakah ada 28 atau 29 hari di bulan Februari. Itulah peran chip.
Gunakan arloji saku B
Menggabungkan RTC dan prangko bisa jadi rumit. Jalur data dan jam memerlukan banyak pin. Ada cara yang lebih mudah.
Gunakan arloji sakuB.
Modul ini menyederhanakan konektivitas. Gunakan koneksi serial. Hanya satu pin I/O yang diperlukan untuk komunikasi. Ini membebaskan pin untuk sensor dan tampilan lainnya.
Peralatannya kompak. Ukurannya kira-kira seperempat. Secara internal, chip jam, kristal, dan logika serial diintegrasikan ke dalam satu paket.
Dimana kamu membelinya?
Dua pemasok besar menyediakan suku cadang ini. Nomor part Jameco adalah 145630. Parallax menjualnya dengan nomor part 27962.
Harga juga merupakan faktor. Jam saku B dijual dengan harga sekitar $30. Itu adalah hal yang curam bagi seorang penghobi pengontrol pemanggang roti. Anda tidak akan menyematkannya di peralatan konsumen. Tapi untuk pembuatan prototipe? Cukup murah untuk dicoba.
Hilangkan kerumitan mengelola protokol I2C atau SPI secara manual. Tulis lebih sedikit kode. Anda akan mendapatkan waktu yang lebih tepat.
Membuat termometer digital
Kita sudah mengetahui bagaimana stempel berkomunikasi dengan LCD. Jadi mari kita berikan cara untuk memahami dunia. Lebih khusus lagi, saya sedang membuat termometer digital. Inti dari proyek ini adalah chip sensor suhu khusus, DS1620.
Ini bukan hanya sebuah resistor yang resistansinya berubah seiring dengan panas. DS1620 adalah sistem lengkap dalam satu paket 8-pin. Ini berisi perangkat penginderaan suhu, konverter analog-ke-digital (A/D) dan shift register untuk memproses output data. Ini juga berisi bagian kecil EEPROM untuk menyimpan pengaturan seperti mode termostat.
Pahami mode pengoperasian DS1620
Keripik itu fleksibel. Ini bertindak sebagai termostat terpisah dan memicu relai ketika suhu melebihi ambang batas. Sebagai alternatif, dapat dihubungkan ke mikrokontroler dan digunakan murni sebagai termometer presisi. EEPROM mengingat mode dan pengaturan yang dipilih.
Menghubungkan ke perangko BASIC juga mudah. Tidak diperlukan sirkuit yang rumit. Ikuti spesifikasi tumpukan.
- Pin 8: Catu daya +5 volt.
- Pin 4: Tanah.
- Pin 1 (Data): Jalur data. Sedikit masuk dan keluar dari sini.
- Pin 2 (jam): Garis jam. Ini menyinkronkan transfer data.
- Pin 3 (Reset/Pilih): Garis kontrol. Berkomunikasi dengan chip saat Anda naik level. Rendah untuk membatalkan pilihan.
Dalam contoh ini, kami menghubungkannya ke pin I/O tertentu pada stempel.
- Data (pin 1) terhubung ke Stamp Pin 2.
- Jam (pin 2) terhubung ke pin stempel 1.
- Reset (pin 3) terhubung ke Stamp pin 0.
Perlu membayar untuk mendapatkan paket aplikasi Jameco atau Parallax. Dokumen ini menghilangkan dugaan konfigurasi.
Ini dapat dibangun di area pembuatan prototipe Stamp Vector atau di papan tempat memotong roti. Setelah menghubungkan DS1620, sambungkan LCD ke I/O pin 3. Kemudian unduh kode BASIC berikut.
"" Dasar
Pilih/reset baris dengan simbol RST = 0 '1620
Simbol CLK = 1 '1620 shift register garis jam
Garis data 2' dengan simbol DQ = 1620
Simbol DQ_PIN = pin2 ' Pin representasi DQ
Simbol LCD = jalur data LCD 3'
Memulai:
RST Rendah "Hapus 1620 kecuali diajak bicara"
Pin jam HIGH CLK' 1620 diatur ke HIGH secara default.
jeda 1000 dan tunggu hingga termometer dan LCD menyala
Pengaturan:
HiRST'Pilih 1620
b0 = $0C ' $0c adalah 1620 byte perintah ' berarti 'Tulis konfigurasi'
Kirim ke gosubshift_out '1620
b0 = %10 ' %10 adalah 1620 byte perintah ' Setel mode termometer
Kirim ke gosubshift_out '1620
Hapus centang "RST Rendah" 1620
Jeda 50' adalah penundaan EEPROM 50 ms
Mulai konversi:
b0 = $EE ' $EE adalah 1620 byte perintah ' Mulai konversi
HiRST'Pilih 1620
Kirim ke gosubshift_out '1620
Hapus centang "RST Rendah" 1620
"Ini adalah loop utama" - membaca dan menampilkan suhu setiap detik
Lingkaran utama:
HiRST'Pilih 1620
b0 = $AA ' $AA adalah 1620 byte perintah yang digunakan untuk membaca suhu
Kirim ke gosubshift_out '1620
gosub SHIFT_IN 'Membaca suhu dari 1620'
"RST Rendah" membatalkan pilihan DS1620.
gosub display 'Menampilkan suhu dalam derajat Celsius
Jeda 1000 'Tunggu sebentar
buka main_loop
'subrutin shift_out' mengirimkan isi byte b0 ke 1620
Keluar:
Keluaran DQ ' Atur pin DQ ke keluaran
untuk b2 = 1 sampai 8
CLK rendah
DQ_PIN = bit0 'Kirim bit data
CLK tinggi
b0 = b0/2
Selanjutnya
Kembali
'subrutin shift_in mendapat suhu 9 bit 1620'
Pindah ke dalam:
masukan DQ 'Setel pin DQ ke mode masukan'
w0 = 0 ' Hapus w0
untuk b5 = 1 sampai 9
w0 = w0/2 ' Geser masukan ke kanan.
CLK rendah
bit8 = DQ_PIN 'Baca bagian ini
CLK tinggi
Selanjutnya
Kembali
'Menampilkan suhu dalam derajat Celcius
Tampilan:
jika bit8 = 0 maka pos 'jika bit8=1' maka suhunya negatif
b0 = b0 &/ b0 ' NAND b0 dengan dirinya sendiri dan balikkan '
b0 = b0 + 1
Posisi:
LCD Serial, n2400, (254, 1) 'LCD Kosong
serout LCD, n2400, ("Temp =") ' Tampilkan "Temp="' di layar
bit9 = bit0 'Hemat setengah derajat
b0 = b0 / 2' diubah menjadi derajat
jika bit8 = 1 maka neg ' Periksa apakah suhu adalah angka negatif
serout LCD, n2400, (#b0) 'Menampilkan suhu positif
pergi setengah
Negatif:
serout LCD, n2400, ("-", #b0) 'Menampilkan suhu negatif
setengah:
Jika bit 9 = 0, bilangan genap
serout LCD, n2400, (0,5 C") 'menampilkan setengah derajat
harus selesai
Bilangan genap:
serout LCD, n2400, (.0 C") 'Tampilan setengah derajat
selesai:
Kembali
""
Jalankan program ini. Layar LCD menunjukkan suhu dalam derajat Celcius dengan akurasi 0,5 derajat.
Cara kerja komplemen 2 di DS1620
DS1620 tidak mengirimkan nomor sederhana. Diukur 0,5 derajat Celcius. Mencetak bilangan biner komplemen dua 9-bit.
Mengapa ini penting? Penanganan suhu negatif yang benar. Kisarannya adalah -55°C hingga +125°C (-110°F hingga +250°F). Bagilah nilai ini dengan dua untuk mendapatkan pengukuran dalam derajat Celcius.
Komplemen dua adalah cara standar komputer merepresentasikan bilangan bulat bertanda. Bit paling kiri adalah bit tanda. Jika 0, angkanya positif. Jika 1, angkanya negatif.
Mari kita lihat contoh 4-bit. Nilai-nilai ini adalah -8 hingga +7, bukan 0 hingga 15.
0111adalah 70000adalah 01000adalah -81111adalah -1
Untuk mengubah bilangan negatif menjadi bilangan positif dan menampilkannya, balikkan semua bit dan tambahkan 1. Kode ini melakukan hal tersebut pada subrutin tampilan. Centang bit8 (tanda bit hasil 9-bit). Jika negatif, balikkan b0 dan tambahkan 1. Kemudian geser ke kanan untuk mendapatkan pangkat bilangan bulat.
Ekstrak logika kode
Program ini menggunakan tiga subrutin untuk mengelola protokol komunikasi.
Definisi Simbol
Kode ini menggunakan simbol untuk memetakan nomor PIN fisik ke nama yang dapat dibaca manusia. RST, CLK, DQ berhubungan dengan pin stempel 0, 1, 2. Ini membuat kode Anda portabel. Bahkan jika Anda mengubah definisi simbol, logika lainnya tetap sama.
Copot pemasangan programnya
shift_out mengambil byte b0 dan mengirimkannya sedikit demi sedikit.
1. Tetapkan pin data (DQ ) sebagai output.
2. Putar 8 kali.
3. Periksa bit paling tidak signifikan dari b0.
4. Tarik pin jam ke bawah, atur pin data ke bit tersebut dan tarik pin jam ke atas.
5. Geser b0 ke kanan sehingga bit berikutnya berpindah ke posisi paling tidak signifikan.
Prosedur pertukaran shift
shift_in membaca nilai suhu 9-bit menjadi w0.
1. Konfigurasikan pin data sebagai input.
2. Putar sebanyak 9 kali.
3. Tarik pin jam ke bawah.
4. Baca status pin data ke `.
Kode tidak hanya membaca data. Ini meletakkan dasar. Memaksa pin CLK dan RST DS1620 ke kondisi yang diharapkan. Ini adalah langkah pertama.
Berikutnya adalah konfigurasi. Mikrokontroler menulis byte perintah ke memori EEPROM DS1620. Minta chip masuk ke "mode termometer". Inilah hasil tangkapannya. Pola disimpan dalam memori non-volatile. Anda hanya perlu melakukannya sekali. Secara teknis, Anda dapat menghapus bagian kode ini setelah dijalankan pertama kali, sehingga menghemat ruang program yang berharga. Tapi haruskah kita berhenti di situ saja? Ini lebih aman.
Program kemudian mengirimkan perintah $EE. Perhatikan bahwa awalan "$" berarti angka heksadesimal. Nilai desimal $EE adalah 238. Ini memulai proses konversi. Termometer mulai bekerja.
Kemudian siklus dimulai.
Stempel tersebut menanyakan DS1620 tentang suhu saat ini setiap detik. Chip merespons dengan nilai 9-bit. Nilai ini ada dalam variabel w0. Transfer data terjadi sedikit demi sedikit. Stempel mengaktifkan jalur CLK pada DS1620 untuk memasukkan bit.
Struktur variabel bersifat hierarkis. w0 (16 bit) mencakup b0/b1 (8 bit) dan mencakup bit0 hingga bit15 (1 bit). Kode ini membagi w0 menjadi dua ketika bit muncul di bit 8. Ini menggeser setiap bit ke kanan. Ini adalah cara terbaik untuk mengemas suhu 9-bit ke dalam sebuah variabel.
Saat w0 menyimpan data, data tersebut diterapkan oleh subrutin layar. Periksa apakah angkanya positif atau negatif. Ini memformat output untuk layar LCD. Hasilnya ditampilkan dalam derajat Celcius. Jika Anda membutuhkan Fahrenheit, konversinya mudah.
dF = dC * 9/5 + 32
Ini sangat sederhana. itu berhasil. Anda sekarang memiliki termometer yang sangat mahal.
Mengapa membayar begitu banyak?
Bayangkan Anda bekerja di sebuah perusahaan farmasi. Anda mengirimkan obat-obatan mahal ke seluruh negeri. Obat-obatan ini harus disimpan pada suhu tertentu. Mencairkan atau membekukan akan merusaknya. Kerugian total.
Anda dapat menggunakan Stamp untuk membuat Termometer Log Data.
Jameco menjual Modul Paket RAM (nomor komponen 143811). Parallax juga menjual produk yang sama (nomor produk 27960). Ini adalah chip RAM 8KB berdaya rendah dengan antarmuka serial. Jika Anda membutuhkan lebih banyak ruang, Anda juga dapat memilih versi 32 KB.
Tambahkan komponen ini ke stempel Anda. Tulis kode yang menyimpan pembacaan suhu ke RAM setiap menit. Selipkan Stempel ke dalam kiriman obat. Anda akan menerima stempel ketika Anda tiba di tujuan. Modul RAM sekarang mencatat riwayat suhu seluruh perjalanan. Anda akan tahu persis jika obat tersebut melampaui spesifikasinya.
Ini hanya satu aplikasi. Setelah Anda memahami cara kerja mikrokontroler, Anda dapat menggunakan Stamp untuk membuat banyak perangkat berguna.
Anda dapat menemukan informasi lebih lanjut tentang mikrokontroler dan topik terkait dari link di halaman berikut:
Spesifikasinya menjadi lebih tebal. Ini bukanlah panduan yang dapat Anda baca sekali dan kemudian lupakan. Lebih tebal dalam artian ada angka sebenarnya. Angka-angka ini memberi tahu Anda dengan tepat apa yang dapat dilakukan mesin tersebut sebelum Anda membelinya. Dan masih banyak lagi jumlahnya. Berikutnya adalah penafian masa pakai baterai. secara teknis itu benar, namun secara praktis tidak ada gunanya.
Pemeriksaan realitas perangkat keras
Anda mendapatkan prosesornya. Ini cepat. Ini lebih cepat dari yang terakhir. Ini lebih cepat dibandingkan laptop lama yang terdengar seperti mesin jet yang meledak setiap kali Anda membuka spreadsheet. Tapi itu bukan sihir. Chip ini tidak membersihkan ruangan. Itu hanya memproses data. Dengan cepat. Ini sangat cepat. Jika Anda sedang mengedit video. Atau pengkodean. Atau buka 50 tab dan bertanya-tanya mengapa komputer A Anda menjadi sangat panas?
Layarnya lebih terang. Ini adalah nilai jual utama. Anda bisa melihatnya di luar. Tanpa menyipitkan mata. Tanpa berharap mata Anda memiliki HDR bawaan. Warnanya akurat. Jika Anda peduli dengan hal semacam itu. Jika Anda seorang desainer. Atau sekedar bosan dengan gambar yang terlihat seperti diambil di dalam gua.
Selanjutnya, beratnya. Ini lebih ringan. Tapi itu tidak semudah bulu. Anda masih merasakannya di tas Anda. Ia memiliki kehadiran yang kuat. Pengingat bahwa Anda membawa komputer A. Ini bukan tablet. Ini bukan buku catatan dalam arti kertas. Sebuah komputer. Dengan port. Pelabuhan nyata. Ini bukan dongle. Bukan adaptor yang harganya lebih mahal dari perangkatnya. Ini penting. Banyak. Karena donglenya rusak. Adaptor hilang. Pelabuhan tetap ada.
Keanehan dan pembaruan perangkat lunak
Sistem operasinya sama. Sebagian besar. Namun ada juga perubahan. Yang kecil. Hal-hal yang Anda perhatikan setelah seminggu? Tidak segera. Ikon baru akan segera muncul. Skema warna baru. Saat Anda membuka aplikasi yang Anda gunakan 10 menit yang lalu, ada sedikit penundaan.
Pembaruan terjadi secara otomatis. Ini bagus. Dan buruk. Bagus karena Anda tidak perlu memikirkan patch keamanan. Buruknya, mesin Anda mungkin melakukan boot ulang tepat ketika Anda merasa sudah selesai hari itu. Itu terjadi pada saat yang tidak tepat. Seperti saat Anda hendak menyimpan dokumen. Atau tepat sebelum rapat.
Paket perangkat lunak ini disertakan. Itu selalu terikat bersama. Anda memiliki pengolah kata. lembar bentang. alat presentasi. mereka bekerja sama. Mereka tidak selalu bekerja sama dengan baik. Tapi mereka mencoba. Ada sinkronisasi cloud. Ini cepat. Biasanya. Terkadang berhenti. Setelah itu Anda perlu me-restart aplikasi. Maka kamu harus berdoa.
Perangkap ekosistem
Ini adalah bagian yang diabaikan orang hingga terlambat. Perangkat tidak berada dalam ruang hampa. Tinggal di taman. Taman berpagar. Anda bisa keluar. Tapi mengapa kita melakukan ini? Aplikasi ini telah dipilih dengan cermat. Perpaduannya sangat mendalam. Telepon berkomunikasi dengan laptop. Jam tangan memberi tahu ponsel Anda apa yang harus dilakukan. Hal ini sangat nyaman.
Tapi itu juga membatasi. Saat Anda berganti merek. Kenyamanan ini telah hilang. Hilangkan peralihan saluran. Saya kehilangan papan klip bersama saya. Saya tidak dapat menjawab panggilan di komputer A saya. Ini sepertinya hal kecil. tidak. Ini gesekan sehari-hari. Tambahkan sedikit kegembiraan.
Selebihnya adalah harga aksesoris. Ini bukan harganya. Pembayaran. Kabel sendiri. pengisi daya khusus. Ini adalah kasus yang sempurna. Itu mahal. Dan mereka cantik. Dan


















