Daftar Isi:

Meja Kerja Portabel Arduino Bagian 3: 11 Langkah
Meja Kerja Portabel Arduino Bagian 3: 11 Langkah

Video: Meja Kerja Portabel Arduino Bagian 3: 11 Langkah

Video: Meja Kerja Portabel Arduino Bagian 3: 11 Langkah
Video: Bikin Setup Meja Kerja 2024, Juli
Anonim
Meja Kerja Portabel Arduino Bagian 3
Meja Kerja Portabel Arduino Bagian 3
Meja Kerja Portabel Arduino Bagian 3
Meja Kerja Portabel Arduino Bagian 3

Jika Anda telah melihat bagian 1, 2 dan 2B, maka sejauh ini belum ada banyak Arduino dalam proyek ini, tetapi hanya beberapa kabel papan, dll. Bukan tentang itu dan bagian infrastruktur harus dibangun sebelum istirahat bekerja.

Ini adalah elektronik dan kode Arduino. Instruksi 2B sebelumnya mencantumkan detail catu daya.

Bagian ini melengkapi meja kerja portabel dengan fitur-fitur berikut:

Layar sentuh TFT menyediakan tampilan, digerakkan oleh Arduino Mega untuk memberikan yang berikut:

  1. 8 tampilan digital, mati / hidup / berosilasi
  2. 4 tampilan tegangan
  3. 3 tampilan arus / tegangan
  4. Pengukur resistansi E24 (karena saya tidak bisa lagi membaca pita warna)

Akan ada hal-hal lain yang akan saya tambahkan, tetapi ini adalah target awal saya. Kode Arduino juga mencantumkan tampilan serial, tampilan I2C, pengukur kapasitansi, sakelar digital, dan osiloskop yang akan saya tambahkan seiring berjalannya waktu. Saya juga belum memutuskan apakah layak menambahkan catu daya 3V3, catu daya variabel, atau pemantauan tegangan/arus catu daya. Sejauh ini telah dibangun menggunakan Mega tetapi saya juga melihat memindahkan beberapa fungsi untuk memisahkan sirkuit akses I2C, baik chip khusus atau Atmel 328 yang diprogram yang akan lebih mudah mengakomodasi pengontrol yang berbeda.

Perlengkapan

Soket header 5 x 16 arah

Soket dupont 5 x 8 arah, sebenarnya terbuat dari soket saluran tunggal 40 arah panjang yang dipotong hingga panjang yang dibutuhkan

1x3.5 ILI9486 layar sentuh TFT

1 x Arduino Mega 2650

Komponen individu

Sesuai teks, nilai beberapa di antaranya tidak sepenuhnya diperbaiki dan jika Anda melewatkan suatu fungsi tidak akan diperlukan sama sekali:)

Masukan digital

16 x 10K resistor

Masukan analog

1 x TL074 quad jfet opamp, ini yang saya miliki sebagai cadangan, hal serupa akan dilakukan:)

Resistor 4 x 68K dan 4 x 430k digunakan sebagai pembagi tegangan.

4 x 1N4001 atau serupa

Pengukur resistansi

1 x TL072 opamp jfet ganda, ini yang saya miliki sebagai cadangan, hal serupa akan dilakukan:)

1M0, 300k, 100k, 30k, 10k, 3k, 1k, 300R (Jika nilai-nilai ini diubah, kode Arduino harus diperbarui)

Langkah 1: Ikhtisar Elektronik

Ikhtisar Elektronik
Ikhtisar Elektronik
Ikhtisar Elektronik
Ikhtisar Elektronik
Ikhtisar Elektronik
Ikhtisar Elektronik
Ikhtisar Elektronik
Ikhtisar Elektronik

Konsol abu-abu dibuat oleh saya 30 tahun yang lalu dan masih digunakan secara teratur, tetapi waktu telah berlalu. Ini menyediakan catu daya ganda di sebelah kiri, penguat audio pusat di tengah, dengan speaker internal, dan osilator di sebelah kiri. Saat ini sebagian besar sirkuit saya hanya membutuhkan catu daya dan dari itu, hanya rel positif. Sesuatu yang berbeda diperlukan, serta pelabelan yang telah saya jalani tanpa, yah saya berhasil.

Persyaratan utama untuk elektronik kotak proyek adalah untuk memberi daya pada sirkuit yang lebih baru menggunakan Arduino atau Raspberry PI sehingga 5V sangat penting seperti halnya soket USB. Sakelar yang menyala memberi tahu saya apakah daya menyala atau tidak, dan ketika pengujian saya secara teratur harus membangun sirkuit bantu kecil untuk memberikan tampilan status sementara. Saya memiliki kotak meteran besar yang menghabiskan banyak ruang bangku dan yang terpenting, saya membutuhkan tampilan yang dapat saya baca dengan mudah karena penglihatan saya memburuk, sesuatu dengan karakter besar yang cerah. Jadi saya memerlukan tampilan digital, pengukur tegangan, pengukur arus, dan dalam hal ini sedikit kemewahan dalam bentuk pengukur resistansi untuk mengidentifikasi resistor seri E24 dengan cepat, semuanya dalam jarak 15cm dari papan tempat memotong roti proyek dan dalam wadah portabel yang ringkas.

PSU utama, yang dijelaskan dalam artikel sebelumnya, memberikan daya ke penutup menggunakan kabel pita 40 arah yang memungkinkan keduanya dihubungkan saat penutup ditutup. Ini menyediakan pasokan 5v dan 12V yang diaktifkan untuk elektronik panel dan untuk memasok papan tempat memotong roti.

Semua input daya dan sinyal disediakan oleh soket header PCB 2x8way secara paralel dengan soket dupont 8-arah. Ini mungkin berlebihan, sebagian besar papan tempat memotong roti memiliki rel listrik tetapi mudah dilakukan.

Pada soket listrik, rel utama 0V dari catu daya adalah umum untuk semua suplai dan tersedia. Di atas ini adalah catu daya 5V, menyalakan unit dasar, dan di atas ini ada dua pasokan +12V dan -12V yang dipasok, yang saat ini diperbaiki meskipun saya punya ide untuk meretas pasokan untuk membuatnya variabel dan menyediakan 3.3-20V pasokan variabel.

Langkah 2: Elektronik

Elektronik
Elektronik
Elektronik
Elektronik
Elektronik
Elektronik

Saya telah memposting cetakan layar dari tata letak papan tempat memotong roti, seperti apa rangkaian itu ketika dibangun di atas papan matriks, skema sebagai PDF dan file Fritzing asli. Ini bukan elektronik yang terlalu rumit dan ada untuk memasang resistor pembatas, penguat penyangga, dan koneksi kipas keluar untuk papan Arduino. Tetapi ada beberapa gambar untuk menunjukkan banyak koneksi sedikit lebih jelas. Sebagian besar pengkabelan dibuat dari panjang standar kabel pita dupont yang dikerutkan sebelumnya yang dipasang kembali ke rumah multiway untuk membuatnya lebih mudah dipasang kembali dan lebih andal.

Arduino Mega 2650 dipasang di tutupnya dengan soket USB yang tersedia untuk pemrograman. Ini menggerakkan layar sentuh TFT yang digunakan untuk menampilkan semua output dan input.

8 input digital tersedia melalui header PCB 2 x 8 arah dan statusnya ditampilkan di layar jika fungsi tersebut dipilih. Ini adalah tampilan hidup/mati sederhana, merah mati, hijau menyala. Saya dapat menambahkan berosilasi sebagai perubahan di masa mendatang.

4 input tegangan juga tersedia melalui header PCB, dan pembagi tegangan, tegangan yang ditampilkan di layar. Setiap tegangan input pada panel depan, dengan mengacu pada kesamaan, dilewatkan ke pembagi tegangan dengan 7 pembagi dan kemudian disangga oleh salah satu dari empat op-amp dalam TL074 yang dikonfigurasi sebagai penguat penyearah, hanya untuk menghindari kecelakaan dengan tegangan negatif. Akan lebih baik untuk menambahkan indikasi polaritas pada tahap tertentu tetapi tidak kali ini. Output dari setiap op-amp adalah ke salah satu input ADC Arduino.

Header PCB lebih lanjut memperlihatkan koneksi serial dan I2C. Ini dilakukan untuk memungkinkan implementasi konsol tampilan serial dan fungsi identifikasi I2C dasar.

Input tegangan/digital mungkin terbukti tidak semuanya diperlukan sehingga dapat dikonfigurasi ulang untuk menyediakan output switching digital.

Arduino memberi daya pada array resistansi pada pembagi tegangan untuk menyediakan fungsionalitas meteran resistansi. Keluaran ini disangga oleh sebuah op-amp (setengah TL072) sebelum dibaca oleh Arduino dan resistansinya dihitung. Tujuannya bukanlah pengukuran resistansi yang akurat tetapi untuk mengidentifikasi nilai seri E24 dengan cepat, meskipun dengan beberapa kalibrasi dapat digunakan sebagai meteran dasar. Operasinya adalah untuk mendeteksi ketika resistansi kurang dari 9M9 hadir pada dua pegas yang dipasang di panel depan dan kemudian secara selektif mengalihkan 5V ke setiap resistor dalam susunan pembagi hingga nilai yang paling dekat dengan 2.5V diukur atau resistor terakhir dipilih, a perhitungan dan perbandingan kemudian dilakukan untuk menentukan nilai E24 yang paling dekat. 5V bersumber dari output digital 3-10 pada Arduino yang dikonfigurasi ulang sebagai input impedansi tinggi antara setiap pengukuran untuk meminimalkan kesalahan. Pin Arduino D3-10 sengaja digunakan sebagai tambahan di masa depan mungkin menjadi pengukur kapasitansi menggunakan kemampuan PWM dari output ini yang berpotensi hanya berupa perubahan perangkat lunak.

Papan INA3221 yang dimodifikasi memberikan pengukuran tegangan dan arus tambahan melalui antarmuka I2C dengan input dari panel depan. Semuanya disambungkan menggunakan kabel jumper sehingga penugasan kembali fungsi akan mudah di masa mendatang.

Langkah 3: Input Tegangan / Arus INA3221

INA3221 Input Tegangan/arus
INA3221 Input Tegangan/arus

Ini dimaksudkan sebagai perbaikan cepat untuk memberikan pengukuran tegangan / arus di dalam kotak tetapi ternyata seperti yang diterapkan pada papan yang saya beli itu dimaksudkan untuk memantau pengisian baterai sehingga harus dimodifikasi untuk memberikan tiga pengukuran independen. Jika saat membangun proyek ini Anda dapat menggunakan papan INA3221 yang mengimplementasikan chip ini sesuai dengan lembar data, maka ini tidak diperlukan.

Melihat gambar, tiga potongan harus dibuat di jejak PCB untuk memisahkan resistor pengukuran. Bantalan untuk ketiga resistor ini juga harus dipotong untuk memisahkannya dari sisa PCB. Resistor kemudian digabungkan ke bantalan dengan menyolder kabel tambahan sebagai jembatan. Saya mendokumentasikan ini karena ini adalah papan umum dan mungkin satu-satunya yang tersedia.

Sambungan ke papan dari panel depan kemudian dibuat melalui kabel jumper melintasi resistor pengukuran.

Daya untuk papan diambil dari pin Arduino 5V seperti ground, dengan koneksi I2C menuju ke PCB elektronik.

Langkah 4: Tampilan Layar

Layar Tampilan
Layar Tampilan

Ini adalah pembelian eBay dan tersedia dari banyak sumber dan merupakan layar bertenaga ILI9486. Saya menemukan bahwa itu berjalan paling baik dengan perpustakaan MCUFRIEND David Prentice tetapi itu harus dikalibrasi sebelum digunakan yang hanya mengharuskan salah satu contoh perpustakaan yang disediakan oleh David dijalankan dengan layar terhubung, ikuti instruksi di layar dan tulis parameter yang ditampilkan, masukkan ke file kode Arduino_Workstation_v01 jika berbeda.

Untuk proyek ini, layar sentuh sangat penting, tidak memiliki sakelar khusus dan fasilitas untuk hanya menambahkan menu dan fungsi di masa mendatang tanpa banyak pengkabelan ulang.

Langkah 5: Menghubungkannya Bersama

Menghubungkannya Bersama
Menghubungkannya Bersama
Menghubungkannya Bersama
Menghubungkannya Bersama
Menghubungkannya Bersama
Menghubungkannya Bersama

Arduino Mega terletak di LHS tutupnya, dengan USB dan port dayanya dapat diakses dari luar casing. Di RHS di sebelah Arduino adalah elektronik yang dipasang di papan matriks dan di atasnya dipasang papan INA3221 di bagian belakang tutupnya.

Juga di bagian belakang tutup di LHS di atas Arduino adalah papan koneksi arde umum yang menghubungkan semua arde.

Lead sebanyak mungkin digabungkan menjadi konektor multiway. Ini membuat menyambungkan sirkuit menjadi lebih mudah dan andal, dan dukungan timbal balik dari konektor di rumah multiway memberikan peningkatan ketahanan untuk lepas. Daftar konsolidasi berikut ini.

Semua konektor ditambahkan dengan cara yang logis sehingga memberikan akses terbaik untuk membuat sambungan dengan jari saya yang kikuk, membiarkan sambungan panel depan sampai akhir, dengan sambungan tampilan akhir dilewatkan melalui lubang pemasangan untuk diselesaikan terakhir. Layar dipasang pada tempatnya dengan bezel cetak 3D.

Langkah 6: Prospek Konsolidasi

Prospek Konsolidasi
Prospek Konsolidasi
  1. Input tegangan dan resistansi ke port Arduino ADC, lima lead 20cm dengan konektor laki-laki individu di satu ujung dikonsolidasikan ke dalam housing enam arah dengan celah untuk mengakomodasi celah di header Arduino.
  2. Kabel 4 arah 10cm dari rumah empat arah ke dua rumahan 2 arah untuk menghubungkan pin tegangan pada panel depan ke papan sirkuit.
  3. Kabel 8 arah 10cm dari header pria 2x4 ke header wanita 8 arah
  4. 4 way 10cm kabel dari 4 way female housing ke 4 way female housing untuk menghubungkan Serial dan I2C ke panel depan
  5. Kabel 4 arah 10cm dari housing 4 arah ke empat konektor tunggal untuk menghubungkan INA3221 ke panel depan
  6. Kabel 4 arah 20cm untuk menghubungkan perumahan wanita empat arah ke perumahan pria empat arah untuk mengambil Serial dan I2C dari Arduino ke kipas papan sirkuit.
  7. 8 way 10cm kabel dari 8 way female housing ke 8 way female housing untuk mengambil input digital dari panel depan ke papan sirkuit.
  8. Kabel 8 arah 10 cm untuk mengambil rumahan wanita 8 arah ke satu rumahan laki-laki 3 arah dan satu rumahan laki-laki 5 arah untuk menghubungkan pembagi hambatan ke papan sirkuit. Kedua rumah digunakan untuk mengakomodasi celah non-standar di header di papan Arduino.
  9. Kabel 2 arah 20cm untuk membawa housing wanita 2 arah ke dua konektor pria tunggal untuk catu daya INA3221.
  10. Kabel 2 arah 10cm untuk membawa rumahan perempuan 2-arah ke dua rumahan perempuan tunggal untuk menghubungkan sambungan monitor INA3221 ketiga ke panel depan.
  11. Kabel 2 arah 10cm untuk membawa housing female 2 arah ke housing female 2 arah untuk menghubungkan INA3221 ke koneksi fanout I2C.

Langkah 7: Kode Arduino

Kode Arduino
Kode Arduino
Kode Arduino
Kode Arduino

Proyek ini didasarkan pada Arduino Mega 2650 karena alasan sederhana saya menginginkan banyak port I/O yang didedikasikan untuk tugas dalam format sederhana. Pustaka untuk layar sentuh TFT default untuk mendukung Arduino Uno dan harus diedit untuk mendukung Mega. Mengedit perpustakaan didukung oleh pembuat kode TFT asli, sederhana dan dijelaskan pada langkah berikutnya.

Menggunakan tampilan layar sentuh adalah dasar dari bagian proyek ini tetapi karena tampilan yang akhirnya digunakan seseorang mungkin berbeda dengan yang saya gunakan, kode tersebut hanya menempatkan fungsi khusus perangkat keras dalam rutinitas terpisah sehingga semua modifikasi yang diperlukan dapat diidentifikasi.

Versi kode yang berfungsi disertakan di sini dan akan diperbarui tetapi pembaruan terbaru akan ada di github.

Fungsi utama kode berkisar pada tampilan, setiap elemen pada tampilan memiliki entri dalam satu larik yang menampung jenis elemen, di mana pada layar ditampilkan, warna, dan parameter tambahan seperti sumber input. Tangkapan layar dari array ini dengan komentar ditampilkan di atas. Ini juga memegang bidang untuk mengontrol apakah itu akan ditampilkan di layar atau tidak. Dengan mengedit array ini, fitur baru dapat ditambahkan, atau fitur dihapus. Rutin 'loop' kode berjalan melalui array ini secara terus menerus, memproses setiap elemen yang memenuhi syarat secara berurutan dan kemudian berulang. Saat ini ada 6 elemen yang berbeda.

Elemen menu - ini tidak menampilkan informasi tetapi ketika disentuh menjalankan subrutin terkait, yang diidentifikasi dalam parameter elemen

Elemen digital - ditampilkan sebagai kotak di layar sebagai merah atau hijau tergantung pada status pin input digital terkait. Konsol contoh dikabelkan untuk 8 pin digital tetapi ini dapat ditambah atau dikurangi sesuai keinginan.

Elemen analog - menampilkan perkiraan tegangan yang diukur pada pin analog terkait. Empat awalnya ditentukan.

Elemen presisi - menampilkan input dari modul pengukur volt/arus presisi eksternal. Hanya ada tiga di antaranya tetapi modul kedua atau ketiga dapat ditambahkan.

Elemen resistansi - ini adalah elemen tunggal yang menampilkan input dari meteran resistansi.

Sentuh - ini adalah satu-satunya rutinitas yang selalu dijalankan untuk mendeteksi jika layar telah disentuh dan kemudian membuat keputusan berdasarkan apa yang telah disentuh. yaitu jika item menu, apa artinya ditampilkan berikutnya.

Layar memiliki tiga mode status, normal, besar dan layar penuh dan semua elemen mengubah operasinya tergantung pada statusnya. Tiga mode dapat dipilih dari menu dengan menyentuh elemen dan opsi menu terkait.

Mode normal - menampilkan 8 input digital, empat input tegangan analog, tiga elemen presisi, elemen resistansi, dan empat elemen menu. Memilih Normal dari menu akan menempatkan tampilan ke mode ini.

Mode besar - dipilih dengan menyentuh salah satu elemen di layar diikuti oleh Besar. Saat dipilih, tipe elemen tersebut adalah satu-satunya tipe yang dipilih dan elemen dari tipe tersebut diatur ulang untuk memenuhi seluruh layar.

Mode layar penuh - dipilih dengan menyentuh salah satu elemen di layar diikuti dengan Layar Penuh. Saat dipilih, elemen tersebut adalah satu-satunya elemen yang ditampilkan dan diatur ulang untuk memenuhi seluruh layar sehingga memberikan visibilitas maksimum untuk satu item tersebut.

Untuk menambahkan fungsionalitas tambahan, rutinitas berikut perlu ditambahkan:

rutin 'menggambar' yang dipanggil untuk mendapatkan informasi untuk elemen itu, memanggil rutin pembaruan layar yang sesuai dan mendaftarkan informasi sentuh yang dikembalikan

rutin 'logika' yang menerima informasi dari rutinitas pengundian dan menggunakan rutinitas driver layar yang sesuai untuk meletakkan informasi di layar dan mengembalikan informasi sentuh yang benar untuk area layar yang digambar

'pengaturan' rutin yang disebut sebagai bagian dari pengaturan Arduino

Rutinitas lain dapat dimasukkan tetapi tidak boleh ada saling ketergantungan antara kode elemen, jika suatu elemen belum diaktifkan maka kode itu tidak boleh dieksekusi dan struktur multifungsi sederhana mempertahankan integritasnya.

Langkah 8: Mengedit Perpustakaan Arduino

Mengedit Perpustakaan Arduino
Mengedit Perpustakaan Arduino
Mengedit Perpustakaan Arduino
Mengedit Perpustakaan Arduino

Tampilan yang saya gunakan bekerja sangat baik dengan Arduino Uno dan perpustakaan dasar yang ditulis untuk itu tetapi bekerja lambat ketika langsung ditransfer ke Arduino Mega. Untuk menggerakkan tampilan dengan benar, set pin data yang berbeda harus digunakan dan perubahan penggunaan ini harus diatur di perpustakaan. Ini adalah perubahan sederhana dan dimaksudkan oleh penulis. Gambar menyoroti perubahan yang dibuat.

Kedua file tersebut disimpan di folder MCUFRIEND_kbv\utility sebagai mcufriend_shield.h dan mcufriend_special.h. Perubahan yang diperlukan adalah yang pertama pada file header 'perisai' untuk memastikan baris pertama terbaca

#tentukan PENGGUNAAN_KHUSUS

untuk memastikan bahwa file header 'khusus' dimuat.

File header 'khusus' juga harus diperbarui untuk memastikan bahwa baris

#define USE_MEGA_8BIT_PROTOSHIELD

tidak dikomentari.

Kedua perubahan ini berarti bahwa kode tampilan untuk tampilan ini akan beroperasi menggunakan pin 20-29 pada Arduino Mega, bukan default 3-10 pada Uno.

Langkah 9: Tangkapan Layar

Tangkapan Layar
Tangkapan Layar
Tangkapan Layar
Tangkapan Layar
Tangkapan Layar
Tangkapan Layar

Saya telah meletakkan tangkapan layar di sini sehingga mudah untuk melihat apa yang seharusnya dilakukan konsol. Bagian selanjutnya mengacu pada memuat kode ke Arduino.

Layar pertama menunjukkan layar 'normal' dengan Menu di bagian atas, pengukuran tegangan pada LHS, pengukuran tegangan dan arus pada RHS dan status pin digital di sepanjang bagian bawah, merah untuk 'salah/rendah', hijau untuk 'benar/tinggi' '. Akhirnya di tengah adalah pengukuran resistensi.

Layar kedua menunjukkan input digital yang diaktifkan dalam mode Besar, setiap input ditampilkan dengan jelas.

Layar ketiga menunjukkan input tegangan dalam mode Besar.

Langkah 10: Memuat Kode Arduino

Kode terlampir, tetapi seperti yang disebutkan sebelumnya akan dipasang ke github pada suatu waktu dan lokasi ditambahkan di sini. File kode sumber utama adalah Arduino_Workbench_v01.ino dan rutinitas lainnya menyediakan berbagai fitur.

Jika library telah dimodifikasi dengan baik dan Arduino Mega2650 telah ditetapkan sebagai platform target di Arduino IDE, maka kode tersebut harus dikompilasi terlebih dahulu.

Pustaka yang perlu dimuat adalah Adafruit GFX dan Pustaka Layar Sentuh yang harus tersedia dari pengelola perpustakaan Arduino, salinan MCUFRIEND_kbv yang dapat diunduh dari github dan untuk INA3221, pustaka SwitchDocLabs SDL_Arduino_INA3221 juga dapat diunduh dari github, keduanya muncul dengan cepat di pencarian google.

Langkah 11: Sentuhan Akhir

Sentuhan Akhir
Sentuhan Akhir
Sentuhan Akhir
Sentuhan Akhir
Sentuhan Akhir
Sentuhan Akhir
Sentuhan Akhir
Sentuhan Akhir

Idenya adalah menggunakannya untuk pekerjaan proyek sehingga panel yang dapat dilepas telah dibuat yang terdiri dari baut pemasangan untuk papan Arduino dan papan tempat memotong roti, keseluruhannya dilekatkan pada tutupnya dengan velcro untuk membuatnya dapat dilepas dan agar papan yang berbeda dapat dibuat untuk memuat proyek dan bahwa kotak tersebut dapat digunakan kembali untuk berbagai proyek yang berjalan secara bersamaan.

Saya berharap ini akan menjadi sumber untuk beberapa ide untuk membuat sesuatu yang berbeda, lebih baik atau keduanya. Saya akan menambahkan fitur tambahan yang telah saya sebutkan, dan menambahkannya, tetapi jika ini membantu, silakan ambil apa yang Anda inginkan dan nikmati. Jika ada masalah yang mencolok, tolong beri tahu saya.

Saat ini saya akan mulai dan menggunakannya, saya memiliki beberapa proyek untuk dikerjakan!

Direkomendasikan: