Isi kandungan:

Sensor Cahaya (Photoresistor) Dengan Arduino di Tinkercad: 5 Langkah (dengan Gambar)
Sensor Cahaya (Photoresistor) Dengan Arduino di Tinkercad: 5 Langkah (dengan Gambar)

Video: Sensor Cahaya (Photoresistor) Dengan Arduino di Tinkercad: 5 Langkah (dengan Gambar)

Video: Sensor Cahaya (Photoresistor) Dengan Arduino di Tinkercad: 5 Langkah (dengan Gambar)
Video: Tutorial tinkercad Arduino sensor ldr nyala mati lampu led 2024, November
Anonim
Sensor Cahaya (Photoresistor) Bersama Arduino di Tinkercad
Sensor Cahaya (Photoresistor) Bersama Arduino di Tinkercad

Projek Tinkercad »

Mari belajar bagaimana membaca photoresistor, jenis perintang pemboleh ubah yang peka cahaya, menggunakan Input Analog Arduino. Ia juga dipanggil LDR (perintang bergantung cahaya).

Sejauh ini anda sudah belajar mengawal LED dengan output analog Arduino, dan membaca potensiometer, yang merupakan jenis perintang berubah-ubah, jadi kami akan memanfaatkan kemahiran tersebut dalam pelajaran ini. Ingat bahawa input analog Arduino (pin bertanda A0-A6) dapat mengesan isyarat elektrik yang berubah secara beransur-ansur, dan menerjemahkan isyarat itu menjadi angka antara 0 dan 1023.

Imej
Imej

Terokai litar sampel yang tertanam di sini di tempat kerja dengan mengklik Start Simulation dan mengklik pada photoresistor (coklat bujur dengan garis licin di tengah), kemudian seret slaid kecerahan untuk menyesuaikan input cahaya yang disimulasikan.

Dalam pelajaran ini, anda akan membina litar simulasi ini di sepanjang sampel. Untuk membina litar fizikal secara pilihan, kumpulkan papan Arduino Uno anda, kabel USB, papan roti tanpa pateri, LED, perintang (220 ohm dan 4.7k ohm), fotoresistor, dan wayar papan roti.

Anda boleh mengikuti hampir dengan menggunakan Tinkercad Circuits. Anda juga dapat melihat pelajaran ini dari dalam Tinkercad (diperlukan log masuk percuma)! Terokai litar sampel dan bina sendiri di sebelahnya. Tinkercad Circuits adalah program berasaskan penyemak imbas percuma yang membolehkan anda membina dan mensimulasikan litar. Ia sangat sesuai untuk belajar, mengajar, dan membuat prototaip.

Langkah 1: Bina Litar

Bina Litar
Bina Litar
Bina Litar
Bina Litar

Lihatlah litar papan roti yang digambarkan. Adalah berguna untuk melihat versi kabel litar sampel percuma ini untuk perbandingan, yang digambarkan. Dalam langkah ini, anda akan membina versi litar ini sendiri di samping sampel di tempat kerja.

Untuk mengikuti, muatkan tetingkap Litar Tinkercad baru dan bina versi litar anda sendiri di sepanjang sampel.

Kenal pasti fotoresistor, LED, perintang, dan wayar yang disambungkan ke Arduino di tempat kerja Tinkercad Circuits.

Seret Arduino Uno dan papan roti dari panel komponen ke tempat kerja, di sebelah litar yang ada.

Sambungkan rel papan kuasa (+) dan landasan (-) ke Arduino 5V dan ground (GND), masing-masing, dengan mengklik untuk membuat wayar.

Panjangkan rel kuasa dan landasan ke bas masing-masing di pinggir papan roti yang bertentangan (pilihan untuk litar ini tetapi amalan biasa yang baik).

Pasang LED ke dalam dua baris papan roti yang berbeza sehingga katod (kaki negatif, lebih pendek) menyambung ke satu kaki perintang (di mana sahaja dari 100-1K ohm baik-baik saja). Perintang boleh masuk ke salah satu orientasi kerana perintang tidak terpolarisasi, tidak seperti LED, yang mesti disambungkan dengan cara tertentu untuk berfungsi.

Sambungkan kaki perintang yang lain ke tanah.

Pasangkan anod LED (kaki positif, lebih panjang) ke pin Arduino 9.

Seret fotoresistor dari panel komponen ke papan roti anda, sehingga kakinya terpasang pada dua baris yang berbeza.

Klik untuk membuat wayar yang menghubungkan satu kaki fotoresistor dengan kuasa.

Sambungkan kaki yang lain ke pin analog Arduino A0.

Seret perintang dari panel komponen untuk menyambungkan kaki fotoresistor yang disambungkan ke A0 dengan tanah, dan sesuaikan nilainya menjadi 4.7k ohm.

Langkah 2: Kod Dengan Blok

Kod Dengan Blok
Kod Dengan Blok

Mari gunakan editor blok kod untuk mendengar keadaan photoresistor, kemudian tetapkan LED ke kecerahan relatif berdasarkan berapa banyak cahaya yang dilihat oleh sensor. Anda mungkin ingin menyegarkan ingatan anda tentang output analog LED dalam pelajaran Fading LED.

Klik butang "Kod" untuk membuka penyunting kod. Blok Notasi kelabu adalah komen untuk membuat catatan tentang apa yang anda ingin kod anda lakukan, tetapi teks ini tidak dilaksanakan sebagai sebahagian daripada program.

Klik pada kategori Pemboleh ubah dalam penyunting kod.

Untuk menyimpan nilai rintangan photoresistor, buat pemboleh ubah bernama "sensorValue".

Seret blok "set". Kami akan menyimpan keadaan photoresistor kami dalam pemboleh ubah

nilai sensor

Klik pada kategori Input dan tarik blok "pin baca analog", dan masukkan ke blok "set" selepas kata "ke"

Oleh kerana potensiometer kami disambungkan ke Arduino pada pin A0, ubah dropdown ke A0.

Klik kategori Output dan tarik blok "cetak ke monitor bersiri".

Navigasi ke kategori Pemboleh ubah dan seret pemboleh ubah sensorValue anda ke blok "cetak ke monitor bersiri", dan pastikan dropdown diset untuk dicetak dengan baris baru. Secara pilihan, mulakan simulasi dan buka monitor bersiri untuk memastikan pembacaan masuk dan berubah semasa anda menyesuaikan sensor. Nilai input analog berkisar antara 0-1023.

Oleh kerana kami ingin menulis kepada LED dengan angka antara 0 (mati) dan 255 (kecerahan penuh), kami akan menggunakan blok "peta" untuk melakukan pendaraban silang bagi kami. Navigasi ke kategori Matematik dan tarik blok "peta".

Pada slot pertama, seret blok pemboleh ubah sensorValue, kemudian tetapkan julat dari 0 hingga 255.

Kembali ke kategori Output, tarik blok "set pin" analog, yang secara lalai mengatakan "set pin 3 hingga 0." Laraskannya untuk menetapkan pin 9.

Seret blok peta yang anda buat sebelumnya ke bidang "set pin" blok "ke" blok untuk menulis nombor yang disesuaikan ke pin LED menggunakan PWM.

Klik kategori Control dan tarik blok tunggu, dan sesuaikan untuk menunda program selama.1 saat.

Langkah 3: Photoresistor Arduino Code dijelaskan

Apabila penyunting kod dibuka, anda dapat mengklik menu lungsur di sebelah kiri dan memilih "Blok + Teks" untuk mendedahkan kod Arduino yang dihasilkan oleh blok kod. Ikuti semasa kami meneroka kodnya dengan lebih terperinci.

int sensorValue = 0;

Sebelum itu

persediaan ()

kami membuat pemboleh ubah untuk menyimpan nilai semasa yang dibaca dari potensiometer. Ia dipanggil

int

kerana ia adalah nombor bulat, atau nombor bulat.

persediaan tidak sah ()

{pinMode (A0, INPUT); pinMode (9, OUTPUT); Serial.begin (9600); }

Di dalam penyediaan, pin dikonfigurasi menggunakan

pinMode ()

fungsi. Pin A0 dikonfigurasi sebagai input, sehingga kita dapat "mendengarkan" keadaan elektrik potensiometer. Pin 9 dikonfigurasi sebagai output untuk mengawal LED. Untuk dapat menghantar mesej, Arduino membuka saluran komunikasi bersiri baru dengan

Bersiri. Bermula ()

yang mengambil argumen kadar baud (kecepatan untuk berkomunikasi), dalam hal ini 9600 bit sesaat.

gelung kosong ()

{// baca nilai dari sensor sensorValue = analogRead (A0); // cetak bacaan sensor sehingga anda mengetahui julatnya Serial.println (sensorValue);

Apa sahaja selepas satu set garis miring

//

adalah komen, yang membantu orang memahami dengan jelas apa program yang hendak dilakukan, tetapi tidak termasuk dalam program yang dijalankan oleh Arduino anda. Dalam gelung utama, fungsi dipanggil

analogRead ();

memeriksa keadaan pin A0 (yang akan menjadi nombor bulat dari 0-1023), dan menyimpan nilai tersebut dalam pemboleh ubah

nilai sensor

// memetakan bacaan sensor ke jarak untuk LED

analogWrite (9, peta (sensorValue, 0, 1023, 0, 255)); kelewatan (100); // Tunggu 100 milisaat}

Garis berikut komen seterusnya banyak berlaku sekaligus. Ingatlah

analogWrite ()

mengambil dua argumen, nombor pin (9 dalam kes kami), dan nilai untuk menulis, yang harus antara 0 dan 255. Fungsi sebaris

peta ()

mengambil lima argumen: nombor yang akan dinilai (pemboleh ubah sensor yang selalu berubah), minimum yang diharapkan dan maksimum yang diharapkan, dan min dan maksimum yang diinginkan. Jadi

peta ()

fungsi dalam kes kami adalah menilai sensorValue masuk, dan melakukan beberapa pendaraban silang untuk menurunkan output dari 0-1023 hingga 0-255. Hasilnya dikembalikan ke hujah kedua dari

analogWrite ();

menetapkan kecerahan LED yang disambungkan ke pin 9.

Langkah 4: Bina Litar Arduino Fizikal (pilihan)

Bina Litar Arduino Fizikal (pilihan)
Bina Litar Arduino Fizikal (pilihan)

Untuk memprogram Arduino Uno fizikal anda, anda perlu memasang perisian percuma (atau pemalam untuk penyunting web), kemudian membukanya. Pelbagai photocell mempunyai nilai yang berbeza, jadi jika litar fizikal anda tidak berfungsi, anda mungkin perlu menukar perintang yang dipasangkan dengannya. Ketahui lebih lanjut mengenai pembahagi voltan dalam pelajaran Instructables Electronics Class pada perintang.

Pasang litar Arduino Uno dengan memasang komponen dan wayar agar sesuai dengan sambungan yang ditunjukkan di sini di Tinkercad Circuits. Untuk panduan yang lebih mendalam mengenai bekerja dengan papan Arduino Uno fizikal anda, lihat kelas Instructables Arduino percuma.

Salin kod dari tetingkap kod Tinkercad Circuits dan tempelkan ke dalam lakaran kosong dalam perisian Arduino anda, atau klik butang muat turun (anak panah menghadap ke bawah) dan buka

fail yang dihasilkan menggunakan Arduino. Anda juga boleh mendapatkan contoh ini dalam perisian Arduino dengan menavigasi ke Fail -> Contoh -> 03. Analog -> AnalogInOutSerial.

Pasangkan kabel USB anda dan pilih papan dan port anda di menu Alat perisian.

Muat naik kod dan gunakan tangan anda untuk menutupi sensor daripada menerima cahaya, dan / atau menyinari sensor anda!

Buka monitor bersiri untuk melihat nilai sensor anda. Kemungkinan nilai dunia nyata tidak akan meluas hingga 0 atau hingga 1023, bergantung pada keadaan pencahayaan anda. Jangan ragu untuk menyesuaikan julat 0-1023 ke minimum yang anda perhatikan dan maksimum yang diperhatikan untuk mendapatkan julat ekspresi kecerahan maksimum pada LED.

Langkah 5: Seterusnya, Cuba…

Sekarang setelah anda belajar membaca photoresistor dan memetakan outputnya untuk mengawal kecerahan LED, anda sudah bersedia untuk menggunakan kemahiran tersebut dan kemahiran lain yang telah anda pelajari sejauh ini.

Bolehkah anda menukar LED untuk jenis output lain, seperti motor servo, dan membuat beberapa kod untuk mencerminkan tahap cahaya sensor semasa sebagai kedudukan tertentu di sepanjang tolok?

Cuba tukar fotoresistor anda untuk input analog lain seperti sensor jarak ultrasonik atau potensiometer.

Ketahui lebih lanjut mengenai cara memantau input digital dan analog Arduino anda melalui komputer menggunakan Monitor Serial.

Disyorkan: