Lampu pintar menggunakan Arduino. Menyambungkan photoresistor ke Arduino dan bekerja dengan sensor cahaya Menyambungkan photoresistor ke Arduino

Hai semua! Saya Artem Luzhetsky dan saya akan mengendalikan satu siri artikel khusus untuk "Rumah Pintar" dan IoT (Bahasa Inggeris - Internet of Things, Internet of Things). Kami akan melihat cara yang menakjubkan untuk mencipta rangkaian rumah daripada pelbagai peranti yang akan berfungsi sama ada secara autonomi atau dengan bantuan seseorang. Nah? Mari kita mulakan!

Artikel pertama adalah pengenalan, saya ingin anda memahami bahawa saya akan bekerja dengan papan dan modul yang paling biasa supaya kebanyakan orang boleh mencuba tangan mereka dalam pembangunan IoT.

Jadi, pertama kita memerlukan dua mikropengawal yang akan kita gunakan: dan .

Arduino UNO

Saya rasa tidak perlu memperkenalkan anda kepada papan ini; ia sangat popular di kalangan pemula dan peminat DIY. Saya hanya akan mengatakan bahawa keupayaan papan ini adalah terhad dan UNO tidak boleh berfungsi dengan protokol https, mikropengawal ATmega328P tidak mempunyai kuasa pengkomputeran yang mencukupi, jadi apabila kita perlu bekerja dengan mikropengawal dan protokol https, kita akan memprogramkan ESP8266 .

ESP8266

Saya akan bekerja dengan modul Troyka ESP8266 dari syarikat Amperka, tetapi anda boleh menggunakan modul ESP 8266 biasa dengan selamat, mereka hampir tidak mempunyai perbezaan, perkara utama semasa menyambung ialah melihat makna pin dan ingat bahawa ESP beroperasi pada logik 3.3 volt, jadi anda perlu sama ada menyambung melalui 5 volt, tetapi sambungkan penstabil voltan ke litar, atau hanya gunakan pin dengan bekalan voltan 3.3 volt.

Mikropengawal ini bukanlah yang paling berkuasa dalam siri Espressif di pasaran umum, tetapi ia adalah salah satu yang paling murah dan paling biasa. Ia akan menjadi asas kepada perkembangan IoT kami.

Maklumat tambahan

Kami juga perlu membuat semua eksperimen:

  1. LED
  2. Fotoperintang
  3. Termistor
  4. Pencari julat ultrasonik
  5. Piezodinamik
  6. Servo Mini
  7. penderia IR
  8. alat kawalan jauh IR

Kami tidak perlu mempunyai semua modul ini untuk berfungsi dengan IoT, tetapi untuk melakukan semua projek masa depan, kami akhirnya perlu membeli semuanya.

Program dan perpustakaan

Mula-mula, muat turun perpustakaan yang akan membantu anda bekerja dengan lebih mudah dalam IDE Arduino jika anda menggunakan ESP8266 - http://wiki.amperka.ru/_media/iot-m:iot-m-libs.zip

Kedua, untuk mendapatkan pemahaman yang lebih baik tentang IoT, kami memerlukan tapak web yang akan memberi kami keupayaan untuk menghantar data kepada mereka.

  1. www.dweet.io
  2. maker.ifttt.com
  3. narodmon.ru
  4. dan lain-lain.

Ketiga, kami juga memerlukan pelbagai aplikasi Android supaya kami boleh mengawal rumah pintar menggunakan telefon kami.

  1. OpenHab
  2. Kejap
  3. dan lain-lain.

Kami akan berkenalan dengan semua kaedah, program dan tapak secara terperinci dalam projek yang akan datang.

2. Membuat "lampu pintar"

Adakah saya sudah membuat anda bosan? Mari buat lampu pintar paling mudah yang akan menyala jika bilik gelap.

Malah, anda tidak memerlukan UNO untuk ini, anda boleh menggunakan photosensor tersuai digital, tetapi pada masa hadapan kami akan menukar projek ini di luar pengiktirafan, jadi kami perlu bermula di suatu tempat.

Jika anda tidak pasti bahawa anda sudah bersedia untuk bekerja dengan elektrik 220 volt, kemudian gunakan LED biasa dan bukannya lampu suluh. Pada mulanya, saya mengambil lampu TLI-204 lama saya, ini boleh didapati di hampir mana-mana kedai (saya mencabutnya terlebih dahulu).

Lampu mempunyai dua jenis operasi (hidup/mati), apa yang saya mahu lakukan ialah saya ingin meningkatkan fungsinya, meninggalkan keupayaan untuk menghidupkan dan mematikan lampu sepenuhnya.

Tidak mungkin untuk menyambungkan photoresistor dengan relay selari dengan litar tanpa menggunakan suis lain, jadi saya memutuskan untuk memasang suis togol tiga kedudukan dan bukannya suis dua kedudukan.

Gambar rajah elektrik am sepatutnya kelihatan seperti ini:

Jika semuanya dilakukan dengan betul, maka dalam kedudukan ketiga suis anda boleh, dengan membekalkan arus dari mikropengawal ke geganti, menghidupkan lampu.

Mari sambungkan photoresistor ke Arduino. Rajah kelihatan seperti ini:

3. Kod untuk "lampu pintar"

Sekarang mari kita tulis kod yang akan memindahkan arus ke geganti jika bilik gelap.

#define SHINE 5 //PIN PADA PHOTORESISTOR #define REL 13 //PIN PADA relay persediaan void())( pinMode(SHINE, INPUT); pinMode(REL, OUTPUT); Serial.begin(9600); ) lompang gelung ())( jika (analogRead(SHINE)<600) // Если света в комнате мало, то включаем лампу { digitalWrite(REL, HIGH) } else // если много, то выключаем { digitalWrite(REL, LOW); } Serial.printIn(analogRead(SHINE)); selay(500); }

Apabila anda menyambungkan semuanya, ingat untuk mengalih keluar penderia foto daripada llama, jika tidak, anda akan dilayan dengan pertunjukan cahaya. Semuanya harus berfungsi.

Lain kali kami akan cuba merumitkan kod dan menambah beberapa lagi fungsi. Jumpa lagi!

Mungkin semua orang mempunyai impian pada zaman kanak-kanak (dan lebih daripada satu). Anda juga boleh cuba mengingati perasaan yang memenuhi jiwa kanak-kanak apabila impiannya menjadi kenyataan, atau kilauan yang jauh dan biasa di matanya... Semasa kecil, saya bermimpi mempunyai cahaya malam saya sendiri.

Sekarang saya pelajar tahun 4 di BSUIR, dan apabila kami diberitahu bahawa projek kursus dalam reka bentuk litar boleh dilakukan bukan di atas kertas, tetapi pada sekeping perkakasan, saya sedar: cahaya malam yang saya inginkan sebagai seorang kanak-kanak boleh dibuat sendiri. Selain itu, jadikan bukan sahaja objek yang akan menerangi bilik dalam gelap, tetapi peranti yang boleh dikawal dengan mudah untuk disesuaikan dengan sebarang mood. Kenapa tidak? Saya memutuskan untuk menambah keupayaan menukar warna menggunakan tangan saya: semakin dekat tangan saya dengan cahaya malam, semakin terang satu warna (RGB) menyala. Saya juga ingin mengawal lampu malam menggunakan alat kawalan jauh.

Saya akan mengakui dengan serta-merta bahawa saya melihat idea itu di tapak web cxem.net. Secara ringkas, contoh ini menggunakan matriks RGB, yang dikawal menggunakan daftar anjakan dan penderia jarak ultrasonik. Tetapi saya fikir bahawa matriks bersinar hanya dalam satu arah, tetapi saya mahu cahaya malam bersinar di sisi.

Justifikasi elemen litar


Saya mengalihkan perhatian saya kepada mikropengawal Arduino. UNO adalah pilihan yang agak sesuai untuk idea saya, pertama kerana ia adalah platform yang paling popular dan bilangan pin tidak terlalu besar, tidak seperti Mega, dan kedua, anda boleh menyambungkan sumber kuasa luaran kepadanya, dalam kes saya ia adalah 12V , tidak seperti Nano , ketiga... baiklah, saya rasa kita boleh berhenti di dua titik ini. Platform ini sangat popular di seluruh dunia kerana kemudahan dan kesederhanaan bahasa pengaturcaraan, serta seni bina terbuka dan kod programnya.

Maklumat lebih terperinci tentang papan ini boleh didapati dengan mudah di Internet, jadi saya tidak akan membebankan artikel itu.

Jadi, keperluan asas untuk sistem. Diperlukan:
– sensor yang akan mengesan jarak ke halangan untuk mengawal sistem;
– sensor untuk membaca isyarat daripada alat kawalan jauh;
– LED, yang akan menyediakan fungsi pencahayaan yang diperlukan;
– unit kawalan yang akan mengawal keseluruhan sistem.

Projek ini memerlukan pencari jarak sebagai penderia jarak, setiap satunya akan sepadan dengan warna tertentu: merah, hijau, biru. Penderia jarak akan memantau jarak tangan ke lampu malam dan semakin dekat tangan dibawa ke penderia tertentu, semakin kuat warna yang sepadan dengan pengintip ini akan menyala. Sebaliknya, semakin jauh jarak tangan, semakin sedikit voltan digunakan pada warna yang sepadan dengan sensor.

Pencari jarak yang paling popular pada masa ini ialah Sharp GP2Y0A21YK dan HC-SR04. Sharp GP2Y0A21YK ialah pencari jarak inframerah. Ia dilengkapi dengan pemancar IR dan penerima IR: yang pertama berfungsi sebagai sumber pancaran, pantulannya ditangkap oleh yang kedua. Pada masa yang sama, sinaran IR penderia tidak dapat dilihat oleh mata manusia dan pada keamatan sedemikian tidak berbahaya.

Berbanding dengan sensor ultrasonik HC-SR04, sensor ini mempunyai kedua-dua kelebihan dan kekurangan. Kelebihannya termasuk berkecuali dan tidak berbahaya. Kelemahannya ialah julat yang lebih pendek dan pergantungan pada gangguan luar, termasuk beberapa jenis pencahayaan.

Pencari jarak ultrasonik HC-SR04 digunakan sebagai penderia jarak untuk projek itu.
Prinsip operasi HC-SR04 adalah berdasarkan fenomena echolocation yang terkenal. Apabila menggunakannya, pemancar menjana isyarat akustik, yang, setelah dipantulkan dari halangan, kembali ke sensor dan didaftarkan oleh penerima. Mengetahui kelajuan penyebaran ultrasound di udara (kira-kira 340 m/s) dan masa tunda antara isyarat yang dipancarkan dan diterima, adalah mudah untuk mengira jarak ke halangan akustik.

Input TRIG bersambung ke mana-mana pin mikropengawal. Isyarat digital nadi dengan tempoh 10 μs mesti dibekalkan kepada pin ini. Berdasarkan isyarat pada input TRIG, sensor menghantar satu paket denyutan ultrasonik. Selepas menerima isyarat yang dipantulkan, sensor menjana isyarat nadi pada pin ECHO, tempoh yang berkadar dengan jarak ke halangan.

penderia IR. Sudah tentu, isyarat yang diperlukan untuk alat kawalan jauh akan dibaca dan dinyahkod daripada sensor ini. TSOP18 berbeza antara satu sama lain hanya dalam kekerapan. Sensor VS1838B TSOP1838 telah dipilih untuk projek itu.

Projek ini berdasarkan idea untuk menyalakan bilik dalam mana-mana warna, yang bermaksud bahawa anda memerlukan 3 warna utama dari mana pencahayaan akan diperoleh: merah, hijau, biru. Oleh itu, model LED SMD 5050RGB telah dipilih, yang akan menangani tugas dengan sempurna.

Bergantung pada jumlah voltan yang dibekalkan kepada setiap LED, mereka akan mengubah keamatan pencahayaan ini. LED mesti disambungkan melalui perintang, jika tidak, kita berisiko merosakkan bukan sahaja, tetapi juga Arduino. Perintang diperlukan untuk mengehadkan arus pada LED kepada nilai yang boleh diterima. Hakikatnya ialah rintangan dalaman LED sangat rendah dan, jika anda tidak menggunakan perintang, maka arus sedemikian akan melalui LED yang hanya akan membakar kedua-dua LED dan pengawal.

Jalur LED yang digunakan dalam projek ini dikuasakan oleh 12V.

Disebabkan fakta bahawa voltan pada LED dalam keadaan "mati" adalah 6V dan perlu untuk mengawal bekalan kuasa, yang melebihi 5V, adalah perlu untuk menambah transistor ke litar dalam mod pensuisan. Pilihan saya jatuh pada model BC547c.

Mari kita pertimbangkan secara ringkas, bagi mereka yang terlupa, prinsip operasi transistor n-p-n. Jika anda tidak menggunakan voltan sama sekali, tetapi hanya litar pintas pangkalan dan terminal pemancar, walaupun tidak litar pintas, tetapi melalui perintang beberapa ohm, ternyata voltan pemancar asas adalah sifar. Akibatnya, tiada arus asas. Transistor ditutup, arus pengumpul boleh diabaikan kecil, hanya arus awal yang sama. Dalam kes ini, transistor dikatakan berada dalam keadaan cutoff. Keadaan yang bertentangan dipanggil ketepuan: apabila transistor terbuka sepenuhnya, supaya tidak ada tempat untuk dibuka lebih jauh. Dengan tahap pembukaan ini, rintangan bahagian pemancar-pengumpul adalah sangat rendah sehingga mustahil untuk menghidupkan transistor tanpa beban dalam litar pengumpul; ia akan terbakar serta-merta. Dalam kes ini, voltan baki pada pengumpul boleh hanya 0.3...0.5V.

Kedua-dua keadaan ini, ketepuan dan pemotongan, digunakan apabila transistor beroperasi dalam mod pensuisan, seperti kenalan geganti biasa. Maksud utama mod ini ialah arus asas yang kecil mengawal arus pengumpul yang besar, iaitu beberapa puluh kali lebih besar daripada arus asas. Arus pengumpul yang besar diperoleh kerana sumber tenaga luaran, tetapi masih, penguatan semasa, seperti yang mereka katakan, adalah jelas. Dalam kes kami, litar mikro, yang voltan operasinya ialah 5V, termasuk 3 jalur dengan LED beroperasi dari 12V.

Mari kita mengira mod pengendalian lata kunci. Ia adalah perlu untuk mengira nilai perintang dalam litar asas supaya LED terbakar pada kuasa penuh. Syarat yang perlu semasa mengira ialah keuntungan semasa lebih besar daripada atau sama dengan hasil bahagi pembahagian arus pengumpul maksimum yang mungkin dengan arus asas minimum yang mungkin:

Oleh itu, jalur boleh mempunyai voltan operasi 220V, dan litar asas boleh dikawal dari litar mikro dengan voltan 5V. Jika transistor direka untuk beroperasi dengan voltan sedemikian pada pengumpul, maka LED akan menyala tanpa masalah.
Kejatuhan voltan merentasi simpang pemancar asas ialah 0.77V, dengan syarat arus asas ialah 5mA dan arus pengumpul ialah 0.1A.
Voltan merentasi perintang asas ialah:

Mengikut Hukum Ohm:

Daripada julat rintangan standard kami memilih perintang 8.2 kOhm. Ini melengkapkan pengiraan.

Saya ingin menarik perhatian anda kepada satu masalah yang saya hadapi. Apabila menggunakan perpustakaan IRremote, Arduino membeku apabila melaraskan warna biru. Selepas carian yang panjang dan teliti di Internet, ternyata perpustakaan ini menggunakan Pemasa 2 secara lalai untuk model Arduino ini. Pemasa digunakan untuk mengawal output PWM.

Pemasa 0 (Masa sistem, PWM 5 dan 6);
Pemasa 1 (PWM 9 dan 10);
Pemasa 2 (PWM 3 dan 11).

Pada mulanya, saya menggunakan PWM 11 untuk mengawal warna biru. Oleh itu, berhati-hati apabila bekerja dengan PWM, pemasa dan perpustakaan pihak ketiga yang mungkin menggunakannya. Adalah pelik bahawa tiada apa yang dikatakan tentang nuansa ini pada halaman utama di Github. Jika anda mahu, anda boleh menyahkomen baris dengan pemasa 1 dan mengulas keluar 2.

Menyambungkan elemen pada papan roti kelihatan seperti ini:

Selepas ujian pada papan roti, fasa "Meletakkan elemen pada papan" dan "Bekerja dengan besi pematerian" bermula. Selepas ujian pertama papan siap, satu pemikiran merayap ke dalam kepala saya: sesuatu telah berlaku. Dan di sini bermula fasa, biasa kepada ramai, "Kerja yang teliti dengan penguji." Walau bagaimanapun, masalah (beberapa kenalan bersebelahan secara tidak sengaja dipateri bersama) telah dihapuskan dengan cepat dan inilah cahaya nakal yang telah lama ditunggu-tunggu oleh LED.

Kemudian ia hanya masalah badan. Atas sebab ini, papan lapis dengan lubang untuk penderia kami telah dipotong. Penutup belakang dibuat khas boleh tanggal supaya anda boleh menikmati pemandangan dari dalam dan, jika mahu, selesaikan atau buat semula sesuatu. Ia juga mempunyai 2 lubang untuk memprogram semula papan dan bekalan kuasa.

Badan itu dilekatkan dengan gam epoksi dua komponen. Perlu diperhatikan keanehan gam ini bagi mereka yang belum pernah menemuinya sebelum ini. Produk ini datang dalam dua bekas berasingan, dan apabila kandungannya bercampur, tindak balas kimia segera berlaku. Selepas mencampurkan, anda perlu bertindak dengan cepat, dalam masa 3-4 minit. Untuk kegunaan selanjutnya, anda perlu mencampur bahagian baru. Jadi jika anda cuba mengulangi ini, nasihat saya kepada anda adalah untuk mencampurkan dalam bahagian kecil dan bertindak dengan cepat, tidak akan ada banyak masa untuk berfikir. Oleh itu, ia patut difikirkan terlebih dahulu tentang bagaimana dan di mana untuk melekatkan badan. Lebih-lebih lagi, ini tidak boleh dilakukan dalam sekali duduk.

Untuk memasang jalur dengan LED, tiub telah dimasukkan ke dalam penutup atas di mana semua wayar dilalui dengan sempurna.

Apabila isu dengan tudung lampu timbul, saya teringat bagaimana semasa kecil saya membuat kraf daripada benang mudah, gam dan belon, yang berfungsi sebagai asas. Prinsip untuk tudung lampu adalah sama, tetapi membungkus polihedron ternyata lebih sukar daripada bola. Oleh kerana tekanan yang dikenakan oleh benang pada struktur, ia mula mengecil ke atas dan benang mula jatuh. Dengan segera, dengan tangan saya ditutup dengan gam, ia telah memutuskan untuk menguatkan struktur dari atas. Dan kemudian CD itu datang untuk menyelamatkan. Hasil akhirnya ialah lampu malam ini:

Apa yang anda ingin katakan pada akhirnya?

Apakah yang perlu saya ubah dalam projek? Untuk membekalkan isyarat TRIG kepada penderia jarak, seseorang boleh menggunakan satu output Arduino dan bukannya tiga. Saya juga akan menyediakan lubang untuk sensor IR (yang saya terlupa), yang, sayangnya, masih tersembunyi dalam kes yang mana ia, secara semula jadi, tidak dapat membaca isyarat dari alat kawalan jauh. Walau bagaimanapun, siapa yang mengatakan bahawa anda tidak boleh memateri atau menggerudi apa-apa?

Saya ingin ambil perhatian bahawa ini adalah semester yang menarik, dan peluang yang baik untuk mencuba melakukan sesuatu yang bukan di atas kertas, yang mana saya boleh meletakkan tanda lain di sebelah item "impian zaman kanak-kanak". Dan jika anda berfikir bahawa mencuba sesuatu yang baru adalah sukar, dan anda tidak tahu apa yang perlu dilakukan dahulu, jangan risau. Ramai orang mempunyai pemikiran yang bermain di kepala mereka: di mana untuk bermula dan bagaimana ini boleh dilakukan? Terdapat banyak tugas dalam hidup yang anda boleh keliru, tetapi apabila anda mencuba, anda akan dapati bahawa dengan sekelip mata anda boleh memindahkan gunung, walaupun anda perlu mencuba sedikit untuk ini.

Untuk projek seterusnya kami akan menggunakan photoresistor. Dan kami akan mempertimbangkan pelaksanaan lampu malam untuk bilik tidur, yang akan dihidupkan secara automatik apabila gelap dan dimatikan apabila ia menjadi terang.

Rintangan photoresistor bergantung kepada cahaya yang jatuh padanya. Menggunakan photoresistor bersama-sama dengan perintang 4.7 kOhm konvensional, kami mendapat pembahagi voltan di mana voltan yang melalui photoresistor berubah bergantung pada tahap cahaya.

Kami menggunakan voltan dari pembahagi kepada input Arduino ADC. Di sana kita membandingkan nilai yang terhasil dengan ambang tertentu dan menghidupkan atau mematikan lampu.

Gambar rajah litar pembahagi ditunjukkan di bawah. Apabila pencahayaan meningkat, rintangan photoresistor menurun dan, dengan itu, voltan pada output pembahagi (dan input ADC) meningkat. Apabila pencahayaan jatuh, semuanya adalah sebaliknya.

Foto di bawah menunjukkan litar yang dipasang pada papan roti. Voltan 0V dan 5V diambil daripada Arduino. Pin A0 digunakan sebagai input ADC.

Di bawah ialah lakaran Arduino. Dalam tutorial ini, kami hanya menghidupkan dan mematikan LED yang dibina ke dalam papan Arduino. Anda boleh menyambungkan LED yang lebih terang ke kaki 13 (melalui perintang ~220 Ohm). Jika anda menyambungkan beban yang lebih berkuasa, seperti lampu pijar, maka ia harus disambungkan melalui geganti atau thyristor.

Terdapat bahagian komen dalam kod program, ia digunakan untuk debugging. Ia mungkin untuk mengawal nilai ADC (dari 0 hingga 1024). Selain itu, anda perlu menukar nilai 500 (ambang hidup dan mati) dalam kod kepada yang anda pilih secara eksperimen dengan menukar pencahayaan.

/* ** Lampu malam ** ** www.hobbytronics.co.uk */ int sensorPin = A0; // tetapkan kaki input untuk ADC unsigned int sensorValue = 0; // nilai digital bagi persediaan void photoresistor() ( pinMode(13, OUTPUT); Serial.begin(9600); // mulakan output data bersiri (untuk ujian) void loop() ( sensorValue = analogRead(sensorPin); // baca nilai daripada photoresistor if(sensorValue<500) digitalWrite(13, HIGH); // включаем else digitalWrite(13, LOW); // выключаем // Для отладки раскомментируйте нижеследующие строки //Serial.print(sensorValue, DEC); // вывод данных с фоторезистора (0-1024) //Serial.println(""); // возврат каретки //delay(500); }

Selamat petang atau malam, bergantung pada siapa anda. Hari ini saya akan berkongsi arahan untuk membuat lampu malam kecil. Asasnya ialah penyebar matte daripada mentol lampu LED yang terbakar. Dan di dalamnya kami akan meletakkan Arduino Pro Mini dan SW2812 LED. Saya akan menyiarkan hanya satu lakaran, tetapi terdapat banyak pilihan untuk warna atau iridescence. Mari mulakan, seperti biasa, dengan senarai perkara yang anda perlukan:

Penyebar daripada lampu LED, asas E27
- Bekalan kuasa 5V
- Arduino Pro Mini 5V
- USB-TTL (untuk memuat naik lakaran ke Arduino)
- LED WS2812
- Plastik nipis
- Pita bermuka dua
- Mengecas daripada telefon tidak perlu, tetapi ia berfungsi
- Besi pematerian
- Wayar
- Pateri, rosin
- Pistol gam panas

Langkah 1. Membuat badan.
Mula-mula kita perlu dapatkan diffuser. Kami mengambil mentol lampu LED dengan soket E27. Sudah tentu, lebih baik mengambil mentol lampu terpakai:

Dengan sebelah tangan kami memegang mentol di bahagian tapak dan badan plastik, dengan sebelah lagi kami mengambilnya dengan penyebar dan memecahkan mentol lampu. Peresap harus mudah terkeluar dari badan, kerana ia hanya dipegang oleh pengedap:

Sekarang kita perlu membuat asas yang akan kita gamkan LED. Untuk melakukan ini, kami mengambil plastik nipis, penutup dari folder plastik akan dilakukan. Sekarang kita mengukur diameter dalam lubang pelekap peresap, dan kita juga perlu mengukur kedalaman peresap. Mari kita teruskan untuk membuat asas. Ia akan dalam bentuk silinder, diameternya hendaklah 5 mm kurang daripada diameter dalaman lubang pelekap peresap. Dan ketinggian adalah 7 mm kurang daripada kedalaman peresap. Ia sepatutnya kelihatan seperti ini:

Biarlah dulu.

Langkah 2. Elektrik.
Seperti yang saya katakan sebelum ini, pengawal akan menjadi Arduino Pro Mini, versi yang berjalan pada 5 volt. Jalur LED disambungkan dengan mudah; untuk melakukan ini, anda perlu menyambungkan kenalan +5V ke tambah dari bekalan kuasa 5 volt, dan GND ke tolak. Sambungkan pin DIN (input) ke pin 6 Arduino. Port sambungan reben boleh ditukar kepada mana-mana yang mudah dalam lakaran. Kami akan kuasa Arduino daripada bekalan kuasa yang sama. Oleh kerana kami akan menggunakan bekalan kuasa yang stabil, kami menyambungkan tambah dari bekalan kuasa ke pin 5V pada Arduino. Negatif bekalan kuasa mesti disambungkan ke GND Arduino. Skimnya adalah seperti ini:

Jadi, satu LED, pada kecerahan maksimum ketiga-tiga warna, menggunakan 60 mA. Saya muat 25, jadi ternyata:

25 x 60 mA = 1500 mA = 1.5 A

Iaitu, saya memerlukan bekalan kuasa 5 V, 1.5 A. Ini adalah penunjuk arus maksimum yang akan berlaku apabila semua LED dihidupkan ke mod kecerahan maksimum ketiga-tiga warna.

Mari gunakan pengecas telefon lama sebagai bekalan kuasa. Bekalan kuasa mesti dipilih untuk 5 volt, dan dari segi kuasa, hitung berapa banyak LED yang boleh anda muatkan:

Kami memotong palam daripadanya dan menyolder wayar terus ke pita, jangan lupa untuk memeriksa polariti dengan penguji atau multimeter. Anda juga harus membuat petunjuk wayar untuk menghidupkan Arduino. Dan wayar isyarat dari pita ke Arduino.

Kami membuat slot di bahagian bawah silinder untuk melepasi kenalan pita dengan wayar yang dipateri di dalamnya:

Masukkan hujung pita dengan wayar ke dalam slot, pasangkannya dengan gam panas. Seterusnya, kami melekatkan pita dalam bulatan, mengangkatnya sedikit supaya kami mendapat lingkaran pita. Kami juga melekatkan pita ke bahagian atas silinder, bilangan diod bergantung pada diameter, saya mempunyai paling banyak dua LED di bahagian atas secara menyerong, dan walaupun sesentuhnya tergantung ke bawah:

Jika anda mendapat hasil yang sama, jangan berkecil hati, cuma potong pita yang tergantung di tepi dan pateri wayar terus ke LED. Kenalan WS2812:

Sila ambil perhatian bahawa jalur LED pada WS2812B mempunyai arah; pada satu sisi (permulaan atau input) ia mempunyai kenalan DIN, +5V, GND. Dan di sisi lain (hujung atau output) DO, +5V, GND. Jika anda memateri terus ke LED, lihat lokasi kenalan, memfokus pada kekunci (sudut potong). Untuk memudahkan pemasangan, anak panah yang menunjukkan arah dilukis pada pita. Beri perhatian khusus kepada peralihan ke bahagian atas, ternyata selekoh yang sangat tajam, dan terdapat kebarangkalian tinggi untuk memecahkan pita. Saya mendapatnya seperti ini:


Dipateri terus ke LED dari atas:

Dan di tengah, pada tahap kedua, terdapat beberapa lagi LED:

Dan untuk kebolehpercayaan, isi wayar dengan gam panas:

Sekarang kami memasukkan silinder kami dengan LED di dalam bola dari mentol lampu. Menggunakan gam panas, kami membetulkan silinder di dalam bola dalam bulatan:

Jangan lupa buat slot untuk kabel kuasa keluar:

Langkah 3. Menyediakan persekitaran dan perisian tegar.
Untuk memuat turun lakaran (atau perisian tegar) kami akan menggunakan Arduino IDE. Muat turun versi terkini daripada versi rasmi dan pasangkannya.

Untuk melakukan ini, muat turun arkib dahulu. Kemudian bongkar arkib ini. Dan pindahkan fail yang tidak dibungkus ke folder "perpustakaan", yang terletak dalam folder dengan Arduino IDE dipasang. Ia boleh dibuat lebih mudah. Lancarkan Arduino IDE. Kami tidak membongkar arkib yang dimuat turun. Betul-betul dalam IDE Arduino, pilih item menu Sketch – Connect Library. Di bahagian paling atas senarai juntai bawah, pilih "Tambah.Zip perpustakaan". Kotak dialog akan muncul. Seterusnya, pilih pustaka kami, Adafruit_NeoPixel-master. Patutlah tunggu sikit. Buka item menu Lakaran – Sambung Pustaka sekali lagi. Sekarang di bahagian paling bawah senarai juntai bawah anda akan melihat perpustakaan baharu. Selepas memulakan semula Arduino IDE, perpustakaan boleh digunakan.

Muat turun lakaran saya:

Yang tinggal hanyalah memuat naik lakaran ke Arduino. Kami menggunakan Arduino Pro Mini. Versi Arduino yang popular ini tidak mempunyai cip USB-TTL yang dipateri pada papan. Oleh itu, untuk berkomunikasi dengan komputer dan memuat naik lakaran, anda mesti menggunakan USB-TTL yang berasingan. Sambungan mengikut rajah berikut:

Arduino - USB-TTL
RX (P0) – TX
TX (P1) – RX
GND - GND

Kuasa USB-TTL akan dibekalkan daripada port USB komputer. Arduino boleh dikuasakan daripada USB-TLL atau menggunakan bekalan kuasa luaran. Perkara utama ialah pin GND USB-TTL dan Arduino disambungkan. Selalunya anda menjumpai USB-TTL tanpa output pin DTR. Pin DTR mesti disambungkan kepada Reset Arduino untuk melakukan tetapan semula automatik sebelum memuat naik lakaran. Jika anda, seperti saya, tidak mempunyai output ini, anda mesti but semula secara manual sebelum memuat naik lakaran. Kami bertindak seperti ini: kami menyambungkan semua orang mengikut skema yang diterangkan di atas, buka Arduino IDE, buka lakaran yang anda muat turun, tekan butang - Muat turun - dan lihat apa yang tertulis di bawah. Semasa "kompilasi" sedang berjalan, kami tidak melakukan apa-apa, kami hanya menunggu perkataan "muat turun" muncul, kami perlu menekan butang Reset pada Arduino. Jika tidak mudah untuk menekan butang pada papan, anda boleh memaparkan butang yang disambungkan ke GND dan Tetapkan Semula. Atau hanya bawa wayar ke terminal yang sama dan tutupnya pada masa yang betul.

Saya ingin mengatakan bahawa terdapat banyak pilihan untuk menyalakan lampu malam; Saya menulis dalam lakaran hanya beberapa yang saya suka. Anda boleh mengedit lakaran mengikut kehendak anda. Eksperimen dan pilih yang paling anda suka.