Isi kandungan:

Pengadun Warna Dengan Arduino: 9 Langkah (dengan Gambar)
Pengadun Warna Dengan Arduino: 9 Langkah (dengan Gambar)

Video: Pengadun Warna Dengan Arduino: 9 Langkah (dengan Gambar)

Video: Pengadun Warna Dengan Arduino: 9 Langkah (dengan Gambar)
Video: Kecurangan penjual gas elpiji!!!!! 2024, November
Anonim
Image
Image

Oleh tliguori330Mengikuti Lagi oleh pengarang:

Sfera Warna Dengan Arduino
Sfera Warna Dengan Arduino
Bot Doodle Dengan Proses Reka Bentuk
Bot Doodle Dengan Proses Reka Bentuk
Bot Doodle Dengan Proses Reka Bentuk
Bot Doodle Dengan Proses Reka Bentuk
Arduino Touch Piano
Arduino Touch Piano
Arduino Touch Piano
Arduino Touch Piano

Tentang: Sentiasa belajar….. Lebih Lanjut Mengenai tliguori330 »

Pengadun warna adalah projek yang bagus untuk sesiapa sahaja yang bekerja dan berkembang dengan Arduino. Pada akhir arahan ini anda akan dapat mencampurkan dan memadankan hampir setiap warna yang dapat dibayangkan dengan memutar 3 tombol. Tahap kemahiran cukup rendah sehingga pemula yang lengkap dapat menyelesaikannya dengan jayanya, tetapi juga cukup menarik untuk dinikmati oleh doktor haiwan berpengalaman. Kos projek ini hampir tidak ada dan kebanyakan kit Arduino dilengkapi dengan bahan yang diperlukan. Inti kod ini adalah beberapa fungsi arduino asas yang ingin dipahami oleh sesiapa yang menggunakan arduino. Kami akan mengkaji lebih mendalam mengenai fungsi analogRead () dan analogWrite () seperti fungsi biasa yang disebut peta (). Pautan ini membawa anda ke halaman rujukan arduino untuk fungsi-fungsi ini.

Langkah 1: Bahagian dan Komponen

Bahagian dan Komponen
Bahagian dan Komponen
Bahagian dan Komponen
Bahagian dan Komponen
Bahagian dan Komponen
Bahagian dan Komponen
Bahagian dan Komponen
Bahagian dan Komponen

Arduino Uno

Potensiometer (x3)

LED RGB

220 ohm perintang (x3)

Wayar pelompat (x12)

Papan roti

Langkah 2: Rancang Kemajuan Anda

Rancang Kemajuan Anda
Rancang Kemajuan Anda

Sangat berguna untuk merancang bagaimana anda akan menyelesaikan projek anda. Pengekodan adalah mengenai perkembangan logik dari satu langkah ke langkah seterusnya. Saya membuat carta alir yang menggariskan bagaimana saya mahu lakaran saya berjalan. Tujuan keseluruhannya adalah untuk mengendalikan 3 tombol (potensiometer) masing-masing daripada tiga warna LED RGB. Untuk mencapai ini, kita perlu membuat lakaran yang sesuai dengan carta alir. Kami mahu….

1) Baca 3 potensiometer yang berbeza dan simpan nilainya dalam pemboleh ubah.

2) Kami akan menukar nilai-nilai tersebut agar sesuai dengan julat LED RGB.

3) Akhirnya kita akan menuliskan nilai-nilai yang ditukar tersebut ke setiap warna RGB.

Langkah 3: Cara Menggunakan Potensiometer

Cara Menggunakan Potensiometer
Cara Menggunakan Potensiometer
Cara Menggunakan Potensiometer
Cara Menggunakan Potensiometer

Salah satu komponen paling asas dalam kit elektronik, potensiometer dapat digunakan dalam banyak projek yang berbeza. potensiometer berfungsi dengan membenarkan pengguna mengubah rintangan litar secara fizikal. Contoh potensiometer yang paling petani adalah peredupan cahaya. meluncur atau memusing tombol mengubah panjang litar. jalan yang lebih panjang menghasilkan lebih banyak rintangan. Peningkatan rintangan menurunkan arus dan cahaya redup. Ini boleh datang dalam semua bentuk dan saiz yang berbeza tetapi kebanyakannya mempunyai susunan asas yang sama. Seorang pelajar meminta pertolongan untuk membetulkan gitarnya dan kami mendapati tombol di atasnya sama dengan potensiometer. Secara amnya anda kaki luar dihubungkan dengan 5 volt dan tanah dan kaki tengah menuju ke pin analog seperti A0

Langkah 4: Skema Pendawaian untuk (3x) Potensiometer

Skema Pendawaian untuk (3x) Potensiometer
Skema Pendawaian untuk (3x) Potensiometer
Skema Pendawaian untuk (3x) Potensiometer
Skema Pendawaian untuk (3x) Potensiometer
Skema Pendawaian untuk (3x) Potensiometer
Skema Pendawaian untuk (3x) Potensiometer

Kaki paling kiri akan disambungkan ke 5v dan kaki paling kanan akan disambungkan ke GND. Anda sebenarnya boleh membalikkan kedua langkah ini dan projek ini tidak akan merugikan. Yang akan berubah ialah memutar tombol hingga ke kiri akan penuh kecerahan dan bukannya jauh. Kaki tengah akan disambungkan ke salah satu pin analog di Arduino. Oleh kerana kita akan mempunyai tiga tombol, kita mahu meningkatkan pekerjaan yang baru sahaja kita buat. Setiap tombol memerlukan 5v dan GND supaya ia dapat dikongsi menggunakan papan roti. Jalur merah pada papan roti disambungkan ke 5 Volt dan jalur biru disambungkan ke tanah. Setiap tombol memerlukan pin analognya sendiri sehingga mereka disambungkan ke A0, A1, A2.

Langkah 5: Menggunakan AnalogRead () dan Pemboleh ubah

Dengan penyediaan potensiometer anda dengan betul, kami bersedia membaca nilai-nilai tersebut. Apabila setiap kita mahu melakukan ini, kita menggunakan fungsi analogRead (). Sintaks yang betul ialah analogRead (pin #); jadi untuk membaca potensiometer tengah kita, kita akan analogRead (A1); Untuk bekerja dengan nombor yang dihantar dari tombol ke Arduino, kami juga ingin menyimpan nombor tersebut dalam pemboleh ubah. Garis kod akan menyelesaikan tugas ini semasa kita membaca potensiometer dan menyimpan nombornya sekarang dalam pemboleh ubah integer "val"

int val = analogRead (A0);

Langkah 6: Menggunakan Monitor Bersiri Dengan 1 Tombol

Image
Image

Pada masa ini kami dapat memperoleh nilai dari kenop dan menyimpannya dalam pemboleh ubah, tetapi ada baiknya jika kami dapat melihat nilai-nilai ini. Untuk melakukan ini, kita perlu memanfaatkan monitor bersiri terbina dalam. Kod di bawah ini adalah lakaran pertama yang sebenarnya akan kami jalankan di Arduino IDE yang boleh dimuat turun di laman web mereka. Dalam penyediaan kekosongan () kita akan mengaktifkan pin analog yang disambungkan ke setiap kaki tengah sebagai INPUT dan mengaktifkan monitor Serial menggunakan Serial.begin (9600); seterusnya kita hanya membaca salah satu tombol dan menyimpannya dalam pemboleh ubah seperti sebelumnya. Perubahannya sekarang ialah kita menambahkan baris yang mencetak nombor apa yang disimpan dalam pemboleh ubah. Sekiranya anda menyusun dan menjalankan lakaran, anda kemudian boleh membuka monitor Serial anda dan melihat nombor bergulir di skrin. Setiap kali kod melengkung kita membaca dan mencetak nombor lain. Sekiranya anda menghidupkan kenop yang disambungkan ke A0, anda akan melihat nilai antara 0-1023. kemudiannya tujuannya adalah untuk membaca semua 3 potntiometers yang memerlukan 2 analogReads dan 2 pemboleh ubah yang berbeza untuk disimpan dan dicetak.

batal persediaan () {

pinMode (A0, INPUT); pinMode (A1, INPUT); pinMode (A2, INPUT); Serial.begin (9600); } gelung void () {int val = analogRead (A0); Serial.println (val); }

Langkah 7: Menggunakan LED RGB

Menggunakan LED RGB
Menggunakan LED RGB
Menggunakan LED RGB
Menggunakan LED RGB
Menggunakan LED RGB
Menggunakan LED RGB

LED RGB 4 Berkaki salah satu komponen kegemaran saya untuk Arduino. Saya dapati Cara membuat warna yang tidak berkesudahan dari campuran 3 warna asas menarik. Penyediaannya serupa dengan LED biasa tetapi di sini kita pada dasarnya mempunyai LED merah, biru dan hijau yang digabungkan. Kaki pendek masing-masing akan dikendalikan oleh salah satu pin PWM di arduino. Kaki terpanjang akan disambungkan ke 5 volt atau tanah, bergantung kepada jika anda berada dalam anoda biasa atau LED katod biasa. Anda perlu mencuba kedua-dua cara untuk menyelesaikan masalah ini. Kita sudah mempunyai 5v dan GND yang disambungkan ke papan roti agar mudah diubah. Rajah di atas menunjukkan menggunakan 3 perintang juga. Saya betul-betul melangkau langkah ini kerana saya belum melakukannya dan LED meletupkan saya.

Untuk membuat warna, kita akan menggunakan fungsi analogWrite () untuk mengawal berapa banyak warna merah, biru, atau hijau yang akan ditambahkan. Untuk menggunakan fungsi ini, anda perlu mengatakan pin # mana yang akan kita bicarakan dan nombor antara 0-255. 0 mati sepenuhnya dan 255 adalah jumlah tertinggi untuk satu warna. Mari sambungkan kaki merah ke pin 9, hijau ke pin 10 dan biru ke pin 11. Ini mungkin memerlukan sedikit percubaan dan ralat untuk mengetahui kaki mana yang warnanya. Sekiranya saya ingin membuat warna ungu, saya boleh melakukan banyak warna merah, tanpa hijau, dan mungkin separuh kekuatan biru. Saya mendorong anda untuk memperhatikan nombor-nombor ini, sangat menarik. Beberapa contoh biasa terdapat pada gambar di atas

batal persediaan () {

pinMode (9, OUTPUT); pinMode (10, OUTPUT); pinMode (11, OUTPUT); } gelung void () {analogWrite (9, 255); analogWrite (10, 0); analogWrite (11, 125)}

Langkah 8: Menggunakan Potensiometer untuk Mengawal LED RGB (dengan Satu Bug)

Menggunakan Potentiometers untuk Mengawal LED RGB (dengan Satu Bug)
Menggunakan Potentiometers untuk Mengawal LED RGB (dengan Satu Bug)
Menggunakan Potentiometers untuk Mengawal LED RGB (dengan Satu Bug)
Menggunakan Potentiometers untuk Mengawal LED RGB (dengan Satu Bug)
Menggunakan Potentiometers untuk Mengawal LED RGB (dengan Satu Bug)
Menggunakan Potentiometers untuk Mengawal LED RGB (dengan Satu Bug)

Sudah tiba masanya untuk mula menggabungkan dua kod kita bersama. Anda harus mempunyai cukup ruang di papan roti standard untuk memuatkan semua 3 tombol dan LED RGB. Ideanya adalah daripada mengetik nilai untuk biru dan hijau merah, kami akan menggunakan nilai yang disimpan dari setiap poteniometer untuk terus mengubah warna. kita akan memerlukan 3 pemboleh ubah dalam kes ini. redval, greenval, blueval adalah semua pemboleh ubah yang berbeza. Perlu diingat bahawa anda boleh menamakan pemboleh ubah ini apa sahaja yang anda mahukan. jika anda menghidupkan kenop "hijau" dan jumlah merah berubah, anda boleh menukar nama agar sesuai dengan betul. anda kini boleh menghidupkan setiap tombol dan mengawal warnanya !!

batal persediaan () {

pinMode (A0, INPUT); pinMode (A1, INPUT); pinMode (A2, INPUT); pinMode (9, OUTPUT); pinMode (10, OUTPUT); pinMode (11, OUTPUT); } persediaan kosong () {int redVal = analogRead (A0); int greenVal = analogRead (A1); int blueVal = analogRead (A2); analogWrite (9, redVal); analogWrite (10, greenVal); analogWrite (11, blueVal); }

Langkah 9: BONUS: Peta () Kod Fungsi dan Pembersih

Anda mungkin menyedari bahawa semasa anda mula memutar tombol untuk satu warna, ia akan tumbuh dan kemudian tiba-tiba jatuh ke bawah. Corak ini berkembang dan kemudian mematikan pengulangan dengan cepat sebanyak 4 kali semasa anda memutar tombol ke atas. Sekiranya anda ingat kita mengatakan potensiometer dapat membaca nilai antara 0 dan 1023. Fungsi analogWrite () hanya menerima nilai antara 0 dan 255. setelah potensiometer melebihi 255, pada dasarnya ia bermula pada 0. Terdapat fungsi yang bagus untuk membantu pepijat disebut peta (). anda boleh menukar satu julat nombor menjadi julat nombor yang lain dalam satu langkah. kami akan menukar nombor dari 0-1023 menjadi nombor dari 0-255. Contohnya, jika tombol diatur ke separuh, ia mesti dibaca sekitar 512. nombor itu akan ditukar menjadi 126 yang merupakan separuh kekuatan untuk LED. Dalam lakaran akhir ini saya menamakan pin dengan nama yang berubah-ubah untuk kemudahan saya. Anda kini mempunyai pengadun warna yang lengkap untuk bereksperimen dengan !!!

// nama pemboleh ubah untuk pin potensiometer

int redPot = A0; int greenPot = A1; int bluePot = A2 // nama pemboleh ubah untuk pin RGB int redLED = 9; int hijauLED = 10; int blueLED = 11; kekosongan persediaan () {pinMode (redPot, INPUT); pinMode (greenPOT, INPUT); pinMode (bluePot, INPUT); pinMode (redLED, OUTPUT); pinMode (hijauLED, OUTPUT); pinMode (blueLED, OUTPUT); Bersiri, bermula (9600); } gelung void () {// baca dan simpan nilai dari potensiometer int redVal = analogRead (redPot); int greenVal = analogRead (greenPot); int blueVal - analogRead (bluePot); // tukar nilai dari 0-1023 ke 0-255 untuk peta RV LED redVal = (redVal, 0, 1023, 0, 255); greenVal = peta (greenVal, 0, 1023, 0, 255); blueVal = peta (blueVal, 0, 1023, 0, 255); // tuliskan nilai-nilai yang ditukar ini ke setiap warna analogWrite LED RGB (redLED, redVal); anaogWrite (greenLED, greenVal); analogWrite (blueLED, blueVal); // tunjukkan nilai pada Serial monitor Serial.print ("red:"); Serial.print (redVal); Serial.print ("hijau:"); Serial.print (greenVal); Serial.print ("biru:"); Serial.println (blueVal); }

Disyorkan: