INFUS KETERAMPILAN & MELAJU LEBIH LANJUT

KELAS ARDUINO
Mendaftar

Pendahuluan: Infus Keterampilan & Melangkah Lebih Lanjut

Dalam pelajaran ini, kita akan membahas beberapa konsep penting yang perlu Anda pahami untuk membuat proyek Arduino Anda sendiri. Kami akan mempercepat penyolderan, pustaka kode, LED yang dapat dialamatkan, mengatur kode dengan fungsi, dan menghitung kebutuhan daya proyek Anda.

Persediaan

Pematerian

Menyolder adalah teknik konstruksi elektronik yang sangat berguna, dan secara mengejutkan memuaskan untuk dilakukan. Dibutuhkan latihan untuk unggul, seperti upaya paling berharga, jadi luangkan waktu sejenak untuk menetapkan niat Anda untuk pelajaran ini. Tetapkan tujuan untuk terus berusaha walaupun Anda menjadi frustrasi, dan bersikap baik pada diri sendiri selama proses tersebut. Dan kenakan pelindung mata — tidak ada yang menginginkan keping logam di mata mereka! Sementara kita berbicara tentang keselamatan, bekerja di area yang berventilasi dan cuci tangan sesudahnya, terutama sebelum menyentuh makanan apa pun. Berhati-hatilah dan waspada di sekitar setrika solder Anda; jauhkan benda-benda yang dapat terbakar dari bagian panas (termasuk kulit Anda), dan matikan (atau cabut stekernya) daripada membiarkannya tanpa pengawasan.
Kami akan menggunakan solder untuk memasang kabel ke sepotong strip NeoPixel, sehingga kami bisa menghubungkannya ke papan tempat memotong roti tanpa solder. Setrika penyolder dasar seperti yang direkomendasikan untuk kelas ini akan membawa Anda cukup jauh, dan jika Anda melakukan upgrade ke stasiun penyolderan yang dapat disesuaikan suhu seperti milik saya, Anda dapat menyimpan setrika dasar sebagai cadangan atau memberikannya kepada teman. Colokkan, hidupkan, dan biarkan memanas selama beberapa menit (milik saya diatur ke 650 derajat F). Simpan spons basah atau spons kuningan di dekatnya (banyak dudukan besi solder dengan spons kecil). Saat setrika sedang panas, bersihkan ujung dengan beberapa tisu di spons atau menusuk ke spons gelung kuningan. Kemudian sentuh setrika ke solder Anda sejenak untuk mentransfer sedikit solder ke ujung, yang disebut tinningbesi solder. Ulangi prosedur pembersihan dan pengerasan ini secara teratur saat menggunakan besi solder untuk mencegah penumpukan solder dan oksidasi berlebih.
Solder bekerja dengan memanaskan komponen logam yang akan disatukan, kemudian memungkinkan solder paduan suhu rendah meleleh dan mengalir dan mengeras di antara mereka. Solder bukan lem. Jika Anda melelehkan solder ke ujung dan mengoleskannya di sekitar lead komponen, Anda tidak akan membuat sambungan listrik yang baik.
Solder digunakan dengan fluks (biasanya dibangun tepat di solder, berlabel "inti rosin"), yang merupakan zat yang membantu menunda oksidasi. Ini melindungi area langsung dari ikatan logam, dan mendidih / terbakar saat mereka dingin. Asap solder terutama getah pohon, yang terbuat dari fluks. Jika Anda menerapkan solder cair ke komponen dingin, itu bisa berpotensi terlihat disolder, tetapi lapisan oksidasi disembunyikan di dalamnya, dibuat ketika solder tiba-tiba dingin saat menyentuh komponen dasar. Ini disebut solder dingin , yang mencegah elektron mengalir melintasi sambungan solder. Selalu panaskan komponen Anda sepenuhnya sebelum menerapkan solder tambahan! Sendi solder yang baik akan terlihat halus dan mengkilap, tidak gumpal atau kusam.
Alat tangan ketiga sangat membantu dalam menstabilkan pekerjaan Anda, terutama saat Anda sedang belajar memegang besi dengan stabil. Saya cenderung menghindari kafein di sekitar waktu bengkel juga. Saya suka menempatkan sedikit tabung panas menyusut di atas rahang alat tangan ketiga saya, untuk melunakkan gigitannya.
Siapkan tiga kabel papan tempat memotong roti Anda dengan memotong konektor di satu ujung dan melucuti ujungnya untuk mengekspos untaian telanjang kawat. Putar helai masing-masing kawat untuk menyatukannya, lalu panaskan kawat dengan besi solder Anda dan oleskan sedikit solder. Lepaskan patri sebelum melepas setrika, untuk memberi solder pada saat terakhir untuk menetap. Ulangi untuk menyambungkan dua kawat lainnya, kemudian sisihkan.
Potong sepotong strip NeoPixel Anda 19 piksel panjang, menggunakan pemotong diagonal flush Anda untuk memotong lurus di tengah bantalan tembaga. Lepaskan dari selubung silikon dan identifikasi input — tanda panah pada strip strip yang jauh dari itu. Klip input ujungnya ke alat tangan ketiga Anda dengan bagian belakang strip menghadap Anda. Berikan timah pada pad tembaga tengah dengan menyentuh besi solder Anda, lalu oleskan sedikit solder. Pindahkan ujung Anda di sekitar bantalan tembaga untuk menyebarkan manik solder.
Sekarang setelah dua komponen Anda dilipat, akan lebih mudah untuk menyoldernya bersama. Ambil kawat putih Anda di satu tangan dan besi solder di tangan lainnya. Pegang ujung kawat kaleng ke bantalan tembaga kaleng, dan panaskan kedua komponen sekaligus. Solder pada masing-masing harus mengalir bersama, jika tidak, Anda mungkin perlu menerapkan lebih banyak. Lepaskan setrika Anda sebelum melepaskan kawat, sehingga solder memiliki peluang untuk mendinginkan, mengamankan kawat pada tempatnya. Jika Anda merasa sulit atau terlalu panas untuk memegang kawat dengan jari-jari Anda, gunakan pinset atau tang.
Balikkan strip NeoPixel Anda dan kabel timah dan solder yang sama ke dua bantalan tembaga lainnya (kabel merah untuk 5V, kabel hitam untuk GND). Tidak masalah di sisi mana pad tembaga yang Anda solder, tetapi sisi yang bergantian memberikan sambungan solder sedikit lebih banyak ruang siku. Pangkas kelebihan kawat yang menonjol dari pad tembaga. Sekarang Anda siap untuk memasukkan strip ke papan tempat memotong roti Anda dan mendapatkan LED menyala (kita akan melakukannya nanti)!
Jika Anda melakukan kesalahan, menerapkan terlalu banyak solder, atau hanya ingin membongkar pekerjaan Anda, Anda dapat melakukan desolder sambungan dengan hanya memanaskannya kembali dan menarik kawatnya. Untuk komponen yang lebih terjerat, Anda dapat menggunakan jalinan pematrian tembaga untuk menghilangkan kelebihan solder (area permukaannya yang sangat disatukan menarik solder dengan aksi kapiler), atau pompa pematrian hisap.
Latih keterampilan menyolder Anda lagi dengan memasang kabel pada dua lead diagonal tombol. Berikan timah pada kawat dan timah tombol, lalu panaskan kembali untuk memungkinkan solder mengalir. Sisihkan tombol ini untuk tugas akhir.

LED yang Dapat Dialamatkan dan Perpustakaan Kode

Sekarang strip sudah disolder, kita harus memprogram Arduino untuk menyalakan LED. NeoPixel adalah nama merek Adafruit untuk strip LED "pintar" beralamat WS2812 (berbeda dengan strip LED analog ). Setiap piksel memiliki chip di dalam untuk berkomunikasi dengan papan Arduino dan piksel lainnya di strip (tidak dapat menyala tanpa controller). Untuk mengontrol strip, beberapa fungsi Arduino tambahan diperlukan, dan kita bisa mendapatkannya dengan menginstal pustaka kodePerpustakaan kode Arduino memberdayakan Anda untuk meningkatkan alat komputasi yang kuat menggunakan perintah sederhana. Arduino mengenali modul tambahan ini dan kemudian Anda dapat menggunakan perintah mereka di dalam program Anda. Perpustakaan Arduino ada untuk semua jenis tugas kompleks, seperti mengendalikan panel LED besar, membaca sensor, membuat suara, dan banyak lagi.
Di perangkat lunak Arduino Anda, navigasikan ke Sketsa -> Sertakan Perpustakaan -> Kelola Perpustakaan ...
Ketika Manajer Perpustakaan terbuka, cari "NeoPixel" di bidang kanan atas. Secara opsional pilih versi perpustakaan dari menu dropdown, dan klik tombol "Instal". Sekarang Anda siap untuk menggunakan perpustakaan NeoPixel di sketsa Arduino Anda! Anda dapat menggunakan pengelola perpustakaan untuk menginstal semua jenis ekstensi menyenangkan ke bahasa pemrograman Arduino yang membantu Anda berinteraksi dengan sensor, motor, dan banyak lagi.
Perhatikan strip piksel Anda. Setiap piksel mengandung LED RGB yang sangat kecil, yang secara teoritis dapat membuat warna cahaya apa pun. Namun, menghasilkan warna putih murni merupakan tantangan bagi LED RGB dan sering membuat pengguna kecewa dengan kualitas cahaya yang dihasilkan kurang baik atau bercampur. Untuk alasan ini, strip RGBW juga menyertakan LED putih di dalam paketnya.
Pengkodean untuk piksel-piksel ini akan mencakup empat nilai kecerahan untuk menggambarkan warna piksel: merah, hijau, biru, dan putih. Ini mirip dengan analogWrite (); dalam contoh LED RGB dari latihan pertama Anda: Anda memberikan angka dari 0-255 untuk mewakili kecerahan LED. Fungsi-fungsi di perpustakaan NeoPixel mengambil angka piksel dan nilai warna ini sebagai argumen, kemudian menerjemahkannya ke dalam perintah untuk mengirim sepanjang strip LED.
Sekarang strip NeoPixel kami memiliki kabel yang melekat padanya, mari kita hubungkan ke papan tempat memotong roti. Kawat 5V (merah) pergi ke bus power papan tempat memotong roti Anda, dan kabel arde (hitam) pergi ke bus tanah papan tempat memotong roti. Hubungkan kabel data (putih) ke pin Arduino 6.
Unduh / salin kode dari modul Tinkercad Circuits (Tombol kode-> tombol kode unduhan) dan buka di perangkat lunak Arduino Anda. Hubungkan kabel USB Anda dan unggah ke Arduino Uno Anda, dan saksikan piksel menyala dan berubah warna.
Mari kita lihat sketsa Arduino:
#termasuk <Adafruit_NeoPixel.h>

# tentukan PIN 6

#define NUM_LEDS 19

#define BRIGHTNESS 50

// Parameter 1 = jumlah piksel dalam strip
// Parameter 2 = nomor pin (kebanyakan valid)
// Parameter 3 = flag tipe pixel, tambahkan bersama sesuai kebutuhan:
// NEO_RGB Piksel ditransfer untuk bitstream RGB
// NEO_GRB Piksel ditransfer untuk bitstream GRB, benar jika warna ditukar pada saat pengujian
// NEO_RGBW Piksel ditransfer untuk bitstream RGBW
// NEO_KHZ400 400 KHz bitstream (mis. FLORA piksel)
// NEO_KHZ800 800 KHz bitstream (mis. Strip LED Kepadatan Tinggi), benar untuk stick neopixel
Adafruit_NeoPixel strip = Adafruit_NeoPixel (NUM_LEDS, PIN, NEO_GRBW + NEO_KHZ800);
Bagian pertama instantiates strip NeoPixel dan mengatur bit yang dapat dikonfigurasi dari program seperti pin yang terhubung ke strip dan tombol NeoPixel, jumlah piksel, dan tingkat kecerahan global. #definepernyataan mirip dengan deklarasi variabel, tetapi digunakan untuk informasi yang tidak berubah saat program sedang berjalan. Mereka mengambil lebih sedikit memori daripada deklarasi variabel biasa.
pengaturan batal () {

  strip.setBrightness (BRIGHTNESS);
  strip.begin ();
  strip.show (); // Inisialisasi semua piksel ke 'mati'
}
strip.show();digunakan kapan saja Anda ingin pikselnya berubah. Mengatur warna piksel dan menunjukkan perubahan terbaru dipecah menjadi dua perintah terpisah.
membatalkan loop () {
  // Beberapa contoh prosedur yang menunjukkan cara menampilkan ke piksel:
  colorWipe (strip.Color (255, 0, 0), 50); // Merah
  colorWipe (strip.Color (0, 255, 0), 50); // Hijau
  colorWipe (strip.Color (0, 0, 255), 50); // Biru
  colorWipe (strip.Color (0, 0, 0, 255), 50); // Putih

  whiteOverRainbow (20,75,5);  

  pulseWhite (5); 

  // fullWhite ();
  // delay (2000);

  rainbowFade2White (3,3,1);
}
Loop utama hanya memanggil fungsi lain. Mari kita lihat lebih dekat colorWipe();, didefinisikan tepat di bawah loop utama, dan mengambil dua argumen: warna ( strip.Color(r, g, b, w)), dan nilai kecepatan.
// Isi titik-titik satu demi satu dengan warna
batal colorWipe (uint32_t c, tunggu uint8_t) {
  untuk (uint16_t i = 0; i <strip.numPixels (); i ++) {
    strip.setPixelColor (i, c);
    strip.show ();
    tunda (tunggu);
  }
}
Definisi fungsi dimulai dengan tipe data apa yang akan dikembalikan fungsi , atau dikirim kembali ke program utama. Dalam hal ini fungsinya tidak menghasilkan apa-apa, jadi kata void digunakan pada awal definisi. Berikutnya adalah nama fungsi, yang terserah Anda. Kemudian dalam tanda kurung adalah argumen fungsi yang digunakan, dalam hal ini integer 32 bit unsigned yang disebut "c" dan integer 8 bit unsigned yang disebut "tunggu." Di dalam fungsi, variabel lokal ini digunakan untuk referensi informasi yang Anda berikan dari loop utama (atau dari fungsi lain). Fungsi itu sendiri langkah melalui semua piksel di strip (menggunakan for for dan fungsi NeoPixel disebutstrip.numPixels();), mewarnai dan perlihatkan masing-masing sebelum pindah ke yang berikutnya. Fungsi-fungsi lain dalam program strandtest RGBW bekerja dengan cara yang sama, dan menggunakan matematika warna pintar untuk mencapai pola cahaya yang menakjubkan.

Tuliskan Fungsi Anda Sendiri

Anda dapat dengan mudah memodifikasi colorWipe (); untuk mulai mengkodekan animasi unik Anda sendiri. Coba salin seluruh definisi fungsi, dan ubah nama fungsinya (atau salin dan tempel cuplikan ini tepat setelah kurung kurawal penutupan loop utama Anda).
// Animasi NeoPixel pertamaku
membatalkan animasi Eksperimen (uint32_t c, tunggu uint8_t) {
  untuk (uint16_t i = 0; i <strip.numPixels (); i ++) {
    strip.setPixelColor (i, c);
    strip.show ();
    tunda (tunggu);
  }
}
Kemudian mulailah bermain-main dengan kode tersebut. Katakanlah saya ingin menyalakan piksel acak di strip alih-alih menerangi mereka secara berurutan. Saya bisa menggunakan bawaan acak Arduino (); berfungsi untuk memilih piksel, yang menghasilkan angka acak antara dua argumen:
strip.setPixelColor (acak (0, strip.numPixels ()), c);
Panggil fungsi baru Anda di dalam loop utama Anda:
membatalkan loop () {
  animationExperiment (strip.Color (255, 0, 0), 50); // Merah
}
Unggah eksperimen kode Anda berulang kali ke papan Arduino Uno Anda, buat perubahan kecil setiap kali. Jika Anda menemukan efek yang Anda suka, berhenti mengedit fungsi itu dan membuat yang baru, baik dengan menyalin / menempelkan fungsi dan mengubah namanya, atau mengetikkan definisi:
membatalkan functionName () {
  //isi
}
Selamat, itu saja yang ada untuk membuat fungsi di Arduino! Mereka adalah alat yang berguna untuk memisahkan sepotong kode yang ingin Anda akses berulang kali, dan membuat kode Anda lebih mudah dibaca.

Merencanakan Kekuatan

Saat kami menyentuh di motor DC dan sirkuit NeoPixel, kemungkinan Anda ingin memberi daya pada proyek Arduino Anda dengan sesuatu selain kabel USB Anda. Apakah Anda sedang membangun tanda LED yang dihubungkan ke dinding, atau sirkuit GPS bertenaga baterai untuk petualangan geocaching berikutnya, hanya sedikit matematika sederhana yang akan membantu Anda memilih catu daya yang tepat setiap saat. Yang Anda lakukan hanyalah menambah undian saat ini dari setiap komponen, dan memilih persediaan yang cocok atau melebihi kebutuhan arus listrik Anda. Komponen mendaftar menggambar mereka saat ini di halaman produk dan lembar data. Sebagai contoh, 10 LED yang masing-masing menarik ~ 20mA, ketika dihubungkan ke papan Arduino yang menarik ~ 50mA. 10 * 20 + 50 = 250mA. Baterai 250mAh akan menjalankan sirkuit ini selama satu jam. Paket AA yang dapat diisi ulang pada gambar di atas menyediakan 1900mAh, sehingga dapat memberi daya pada sirkuit untuk 1900mAh / 250mA = 7,6 jam.
Pada kenyataannya, sirkuit Anda mungkin menggunakan daya yang jauh lebih kecil daripada maksimum yang dihitung. LED yang diredupkan dengan PWM hanya menggunakan sebagian kecil dari kekuatan mereka yang memiliki kecerahan penuh, misalnya. Memiliki lebih banyak tersedia saat ini daripada yang Anda butuhkan bukanlah hal yang buruk, karena membantu mencegah kelebihan pasokan Anda. Sirkuit hanya menarik daya sebanyak yang mereka butuhkan!
Untuk sebagian besar proyek Arduino, paket 4xAA atau 3xAAA sudah cukup. Anda dapat terhubung langsung ke jack 2.1mm barel Arduino dengan baterai atau pasokan dinding, atau colokkan kabel USB ke adaptor dinding. Banyak papan kompatibel Arduino yang lebih kecil memiliki port JST di papan, konektor umum untuk baterai lipoly. Beberapa bahkan memiliki pengisian daya USB tepat di papan! Baterai Lipoly memiliki masalah keamanan khusus, jadi pastikan untuk tidak membuat hubungan pendek atau menyalahgunakannya, menyimpannya pada suhu yang ekstrem, dan membaca peringatan keselamatan produsen mana pun sebelum bekerja dengan mereka.

Komentar

Postingan populer dari blog ini