Isi kandungan:

Motor Stepper terkawal cahaya + pendakap / pendirian dinding: 6 langkah
Motor Stepper terkawal cahaya + pendakap / pendirian dinding: 6 langkah

Video: Motor Stepper terkawal cahaya + pendakap / pendirian dinding: 6 langkah

Video: Motor Stepper terkawal cahaya + pendakap / pendirian dinding: 6 langkah
Video: Photoresistor attached to a stepper motor finding the direction of brightest light source 2024, November
Anonim
Motor Stepper terkawal cahaya + pendakap / pendirian dinding
Motor Stepper terkawal cahaya + pendakap / pendirian dinding

Dudukan ini digunakan untuk menempatkan motor stepper terkawal Arduino, yang dirancang untuk mengawal tirai secara automatik sesuai dengan tingkat cahaya di dalam bilik. Anda juga dapat menambahkan layar LCD untuk mencetak tahap cahaya. Gear 3D hanya untuk demonstrasi, gear sebenar mungkin diperlukan untuk aplikasi praktikal seperti tirai tetapi juga aplikasi lain yang dapat anda fikirkan.

Langkah 1: Bahan

Untuk memulakan projek ini, anda memerlukan;

- 2 set cip Arduino- Perisai motor Arduino- Skrin LCD Arduino- 1 Breadboard- 1 Motor Stepper dwi-polar- 1 D bateri- 1 Perintang Bergantung Cahaya - 1 Perintang 10k Ω- 10 wayar Lelaki-lelaki- 6 Lelaki- wayar wanita- Akses ke pencetak 3D

Langkah 2: Pembinaan Arduino

Pembinaan Arduino
Pembinaan Arduino

Bariskan perisai motor pertama dengan pin Arduino dan setelah mereka berbaris, letakkan dengan kuat. Seterusnya pasangkan wayar motor stepper ke dalam pin 8, 9, 10 dan 11 pelindung motor. Selepas itu sambungkan bateri D di slot seperti yang ditunjukkan dalam rajah. Seterusnya anda ingin mendapatkan 6 wayar (lelaki ke wanita) untuk skrin LCD dan pasangkannya ke unit Arduino yang lain seperti yang ditunjukkan dalam rajah litar. Kemudian siapkan LDR seperti yang ditunjukkan di atas, dengan perintang menyambung ke baris negatif. Semasa menambahkan LDR, di sisi dengan perintang, tambahkan sambungan A0 dan di seberang, tambahkan 1 input 5V untuk setiap papan yang anda gunakan, jadi jika anda menggunakan 2 papan, anda mahu masing-masing mempunyai pin 5V dan A0 ke LDR.

Sambungkan semua wayar sehingga sama dengan rajah-2 Input ke LDR- 2 Output dari LDR dan perintang yang menyambung ke ground- 8 wayar ke LCD, 1 5V, 1 Ground dan 6 input- 4 wayar yang menyambung ke stepper- 2 sambungan ke bateri- Landasan papan roti harus disambungkan

Langkah 3: Pengekodan Arduino

Pengekodan Arduino
Pengekodan Arduino

Berikut adalah beberapa contoh kod untuk menukar status gear berdasarkan LDR

Ini adalah kod yang membolehkan projek mengawal tirai secara automatik. Foto di atas menerangkan jalan yang berbeza melalui penyataan IF bersarang dari segi tirai naik, turun atau tinggal di mana ia berada. (klik pada gambar untuk melihatnya sepenuhnya kerana terdapat masalah pemformatan)

# defineLDRA0 // Mendefinisikan pemboleh ubah "LDR" hingga A0 pin # termasuk// Termasuk kod motor stepper

constintstepsPerRevolution = 200; // Apabila motor stepper diaktifkan, putaran penuhnya sama dengan 200 langkah

SteppermyStepper (stepPerRevolution, 8, 9, 10, 11); // Mendefinisikan input ke stepper sebagai pin 8, 9, 10, 11

voidsetup () {myStepper.setSpeed (60); // Menetapkan seberapa pantas motor melakukan rotationpinMode (LDR, INPUT); // Mendefinisikan pemboleh ubah "LDR" sebagai input Serial.begin (9600); // Memulakan bacaan bersiri }

voidloop () {intlightlevel = analogRead (LDR); // Mendefinisikan pemboleh ubah "lightlevel" sebagai tindakan yang membaca nilai "LDR" Serial.print ("Light Level:"); Serial.println (lightlevel); // Mencetak nilai "lightlevel" dengan kapsyen di atas

/ * Sekarang ada gelung yang mengesan tahap cahaya di setiap titik jalan * 3 pilihan tersedia, naik, turun, tetap dalam posisi yang sama * Ia dirancang supaya jika lampu tetap sama, ia akan tetap sama, jika tidak akan berubah * iaitu jika 950, kemudian pergi ke 952, tidak ada yang akan terjadi, namun jika dari 950 hingga 600 itu akan menarik tirai ke atas dan sebaliknya * Setiap langkah ditandai dengan surat di hadapan langkah untuk mengesan di mana ia berada dalam gelung melalui monitor bersiri * /

if (lightlevel> = 900) {Serial.println ("A"); // Langkah mana yang berada di loopmyStepper.step (3 * stepPerRevolution); // Stepper membuat 3 revolusi ke hadapan. Sekiranya negatif, ia akan bergerak ke belakang (30000); // Meninggalkannya selama 5 minit intlightlevel = analogRead (LDR); // Mendefinisikan "lightlevel" yang berubah-ubah sebagai bacaan terbaru dari LDRSerial.print ("Level Light:"); // Mencetak teks di hadapan pemboleh ubah Serial.println (lightlevel) // Mencetak nilai tahap cahaya

if (lightlevel> = 900) {Serial.println ("B"); myStepper.step (0); delay (10000); intlightlevel = analogRead (LDR); Serial.print ("Tahap Cahaya:"); Serial.println (tahap cahaya);

if (lightlevel> = 900) {Serial.println ("C"); myStepper.step (3 * -stepsPerRevolution); delay (500); intlightlevel = analogRead (LDR); Serial.print ("Tahap Cahaya:"); Serial.println (tahap cahaya);}

lain {Serial.println ("D"); myStepper.step (3 * -stepsPerRevolution); delay (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);}}

lain {Serial.println ("E"); myStepper.step (3 * -stepsPerRevolution); delay (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);

if (lightlevel> = 900) {Serial.println ("F"); myStepper.step (0); delay (500); intlightlevel = analogRead (LDR); Serial.print ("Tahap Cahaya:"); Serial.println (tahap cahaya);}

lain {Serial.println ("G"); myStepper.step (0); delay (10000); intlightlevel = analogRead (LDR); Serial.print ("Level Light:"); Serial.println (lightlevel);}}

}

lain {Serial.println ("H"); myStepper.step (0); delay (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);

if (lightlevel> = 900) {Serial.println ("I"); myStepper.step (3 * stepsPerRevolution); delay (10000); intlightlevel = analogRead (LDR); Serial.print ("Tahap Cahaya:"); Serial.println (tahap cahaya);

if (lightlevel> = 900) {Serial.println ("J"); myStepper.step (3 * -stepsPerRevolution); delay (500); intlightlevel = analogRead (LDR); Serial.print ("Tahap Cahaya:"); Serial.println (tahap cahaya);}

lain {Serial.println ("K"); myStepper.step (3 * -stepsPerRevolution); delay (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);

}}

lain {Serial.println ("L"); myStepper.step (0); delay (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);

if (lightlevel> = 900) {Serial.println ("M"); myStepper.step (0); delay (500); intlightlevel = analogRead (LDR); Serial.print ("Tahap Cahaya:"); Serial.println (tahap cahaya);}

lain {Serial.println ("N"); myStepper.step (0); delay (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);

}}

}

}

Langkah 4: Pilihan: Skrin LCD

Ini akan mencetak tahap cahaya yang dikesan oleh LDR pada layar LCD.

#sertakan

  • // Menambah perpustakaan kristal cecair dengan kod tambahan # tentukan ldr A0 // Tentukan pemboleh ubah "ldr" ke pin A0

    LiquidCrystal lcd (8, 9, 4, 5, 6, 7); // mulakan perpustakaan dengan bilangan pin antara muka

    voidsetup () {// kod yang berjalan sekali di startlcd.begin (16, 2); // tetapkan bilangan lajur dan baris LCD masing-masing pinMode (ldr, INPUT); // Mendefinisikan ldr sebagai pin inputSerial.begin (9600); // Memulakan komunikasi dengan monitor bersiri

    }

    voidloop () {// kod yang akan diulang secara berterusanSerial.println (analogRead (ldr)); // Mencetak bacaan yang diambil ldr (angka antara 0-1023) pada monitorlcd.setCursor bersiri (6, 0); // tetapkan kursor ke lajur 6, baris 0lcd.print (analogRead (ldr)); // Mencetak bacaan ini di screendelay LCD (1000); // Melambatkan arahan seterusnya selama satu saat

    }

    Langkah 5: Bahagian Bercetak

    Gunakan fail berikut untuk mencetak dudukan dan gear. Anda boleh menyesuaikan gear untuk tujuan anda sendiri dan anda boleh menggunakan pendakap untuk memasangnya di dinding atau sebagai paparan. Oleh kerana gear 3D lemah, gear sebenar boleh digunakan sebagai pengganti asalkan sesuai dengan tirai yang akan dikendalikannya.

    Sekiranya gear dicetak 3D akan digunakan, salah satu gigi gear telah ditanggalkan sehingga sekrup set dapat memasangnya ke motor.

    2 kaki depan pendakap dinding juga dapat dilepaskan jika dipasang ke dinding. Mereka hanya ditambahkan sehingga ia akan berdiri ketika kami mengujinya.

    Langkah 6: Penempatan

    Sekarang semua bahagian sudah siap, inilah masanya untuk memulakan penempatan terakhir.

    Pertama, letakkan motor stepper ke dalam kotak yang disediakan di atas pendirian dan pasangkan roda gigi di gandarSeterusnya, gerakkan wayar sehingga mereka berada di belakang pendirian Akhirnya, letakkan arduino dan bateri di belakang tempat duduk

    Papan anda sekarang semestinya kelihatan seperti gambar di atas.

    Tahniah!

    Gear boleh digunakan untuk langsir automatik atau perkara lain yang anda mahukan dikendalikan oleh LDR.

    Anda sudah selesai. Nikmati ciptaan baru anda.

Disyorkan: