Daftar Isi:

Memutar Dudukan Telepon: 7 Langkah
Memutar Dudukan Telepon: 7 Langkah

Video: Memutar Dudukan Telepon: 7 Langkah

Video: Memutar Dudukan Telepon: 7 Langkah
Video: Cara SETEL/SETTING/ZEROING TELESCOPE‼️Pemula Pasti Bisa 2024, Juli
Anonim
Dudukan Telepon Berputar
Dudukan Telepon Berputar

Instruksi ini dibuat untuk memenuhi persyaratan proyek Makecourse di University of South Florida (www.makecourse.com).

Ingin membuat dudukan telepon berputar sehingga Anda dapat melihat konten telepon dalam orientasi potret atau lanskap tanpa harus memegangnya? Kemudian, tidak terlihat lagi.

Untuk membuat proyek ini, Anda memerlukan:

- Mikrokontroler Arduino dan IDE

- Kabel USB untuk mengunggah kode

- Papan tempat memotong roti

- Kabel Jumper

- Layar LCD

- Servo

- Kolom yang dapat dilampirkan ke servo

- IR Jarak Jauh

- Penerima IR

- Resistor 10k ohm

- Kenu Airframe + Phone Clip (atau sesuatu untuk menahan ponsel di tempatnya)

- Baterai 9 V untuk daya portabel atau hanya Arduino bertenaga USB

Langkah 1: Bangun Sirkuit Penerima IR

Bangun Sirkuit Penerima IR
Bangun Sirkuit Penerima IR
Bangun Sirkuit Penerima IR
Bangun Sirkuit Penerima IR

Pertama, lompat GND dan +5V dari Arduino ke rel daya di papan tempat memotong roti Anda. Kemudian, lompat resistor 10k ohm Anda dari rel daya +5V ke pin keluaran fototransistor penerima IR Anda. Selanjutnya, gunakan kabel jumper untuk menghubungkan ke pin 11 pada Arduino dari pin output penerima IR. Kemudian, gunakan dua kabel jumper untuk mengirim ground dan +5V ke masing-masing pin pada penerima IR. Filter RC yang digambarkan dalam skema di atas tidak diperlukan. Terakhir, saya tidak membuat skema yang ditunjukkan pada langkah ini, dan sumbernya ada di gambar.

Langkah 2: Hubungkan Servo, Kolom, dan Dudukan Telepon

Hubungkan Servo, Kolom, dan Dudukan Telepon
Hubungkan Servo, Kolom, dan Dudukan Telepon
Hubungkan Servo, Kolom, dan Dudukan Telepon
Hubungkan Servo, Kolom, dan Dudukan Telepon
Hubungkan Servo, Kolom, dan Dudukan Telepon
Hubungkan Servo, Kolom, dan Dudukan Telepon

Sekarang, gunakan dua kabel jumper untuk melompat dari tanah dan +5V dari rel daya papan tempat memotong roti ke kabel coklat dan merah servo, masing-masing. Kemudian, gunakan satu kabel jumper untuk memasang pin 9 pada Arduino ke kabel oranye servo.

Kemudian, pasang kolom ke kepala servo seperti yang ditunjukkan pada gambar kedua.

Terakhir, tempelkan sesuatu untuk menahan telepon ke kolom, seperti Kenu Airframe+, seperti yang ditunjukkan pada gambar ketiga.

Langkah 3: Hubungkan Layar LCD untuk Pembacaan Servo

Hubungkan Layar LCD untuk Pembacaan Servo
Hubungkan Layar LCD untuk Pembacaan Servo

Lompat ke tanah dan +5V dari rel daya papan tempat memotong roti Anda ke masing-masing pin pada Layar LCD. Juga, lompat pin SDA dan SCL dari LCD ke Ardiuno. Pin SDA dan SCL Arduino dapat diidentifikasi dari bagian belakang papan Arduino dan merupakan dua pin di atas AREF dan Ground di atas pin 13. Pin SCL adalah yang tertinggi. Hal ini memungkinkan layar LCD untuk membaca posisi servo saat ini.

Langkah 4: Gunakan Kode dan Pustaka yang Terlampir untuk Memprogram Arduino

Gunakan Kode dan Pustaka yang Terlampir untuk Memprogram Arduino
Gunakan Kode dan Pustaka yang Terlampir untuk Memprogram Arduino

Unduh file RotatingMountCode.zip. Instal Arduino IDE dan unzip file yang diunduh ke Documents\Arduino. Pastikan Anda menyalin isi folder sketsa dan perpustakaan saya ke folder sketsa dan perpustakaan Anda. Buka sketsa ServoIRandLCD dan unggah ke Arduino Anda.

Lihat langkah selanjutnya untuk penjelasan kode.

Langkah 5: Hubungkan Sumber Daya yang Diinginkan ke Arduino dan Gunakan Remote untuk Memutar Mount

Hubungkan Sumber Daya yang Diinginkan ke Arduino dan Gunakan Remote untuk Memutar Mount!
Hubungkan Sumber Daya yang Diinginkan ke Arduino dan Gunakan Remote untuk Memutar Mount!
Hubungkan Sumber Daya yang Diinginkan ke Arduino dan Gunakan Remote untuk Memutar Mount!
Hubungkan Sumber Daya yang Diinginkan ke Arduino dan Gunakan Remote untuk Memutar Mount!

Biarkan Arduino terhubung ke komputer Anda atau cabut dari komputer Anda dan gunakan baterai 9V untuk memberikan daya DC ke Arduino. Terakhir, gunakan remote IR murah untuk mengontrol servo dan orientasi dudukan telepon!

Angka 1 pada remote harus mengatur posisi servo ke 0 derajat, angka 2 hingga 90 derajat, dan angka 3 hingga 180 derajat. Sementara itu tombol + dan - pada remote harus menambah atau mengurangi sudut servo masing-masing 1 derajat.

Catatan: Jika Anda menggunakan Remote IR yang berbeda dari yang digambarkan di sini, ada kemungkinan kode IR yang terkait dengan berbagai tombol berubah. Jika demikian, ubah sketsa ServoIRandLCD untuk menggunakan kode IR tersebut.

Langkah 6: Baca Ini untuk Penjelasan Kode Sumber

Baca Ini untuk Penjelasan Kode Sumber
Baca Ini untuk Penjelasan Kode Sumber
Baca Ini untuk Penjelasan Kode Sumber
Baca Ini untuk Penjelasan Kode Sumber

Kode sumber untuk sketsa Arduino dapat ditemukan di bawah atau di file.zip terlampir sebelumnya. Pustaka yang diperlukan hanya dapat ditemukan di file.zip yang dilampirkan sebelumnya pada langkah 4.

Hal pertama yang dilakukan kode ini adalah menyertakan pustaka yang diperlukan untuk menjalankan semua fungsi dalam sketsa. Selanjutnya, ia mendeklarasikan pin 9 pada Arduino sebagai pin sinyal berkemampuan PWM untuk servo. Itu juga membuat pin 11 pada Arduino pin yang digunakan untuk penerima IR. Selanjutnya, ia mendeklarasikan variabel integer yang digunakan untuk melacak posisi servo dalam derajat dan menyetelnya ke 0 derajat, pada awalnya. Kemudian, itu membuat instance objek yang diperlukan untuk objek IRRecv, objek servo, dan objek LCD myDisplay (yang juga dikonfigurasi dalam baris yang sama) sehingga objek ini dapat digunakan nanti.

Selanjutnya, dalam fungsi setup, port serial dimulai pada 9600 bit/detik sehingga monitor serial dapat digunakan untuk melacak posisi servo jika diinginkan. Itu juga menempelkan objek myservo ke pin 9, memulai penerima IR, dan menginisialisasi layar LCD.

Dalam fungsi loop utama, badan yang hanya dijalankan jika transmisi IR diterima dari penerima IR, penerima IR mendekode sinyal yang dikirim ke sana dari remote IR menggunakan fungsi decode(&results) dan kemudian jika pernyataan menentukan apa untuk mengatur servo tergantung pada nilai IR yang diterima. Fungsi tulis digunakan untuk mengatur servo ke derajat yang sesuai, dan fungsi baca digunakan untuk menemukan sudut servo saat ini dan menambah atau menguranginya seperlunya.

Akhirnya, sudut servo saat ini dikirim ke monitor serial dan layar LCD menggunakan fungsi myservo.read(), dan loop utama berulang tanpa batas.

Kode sumber:

#include //Arduino standard library#include //IR library #include "Wire.h" //Wire.h untuk LCD (terkadang diperlukan) #include "LiquidCrystal_I2C.h" //LCD library

#define servopin 9 //ini mendefinisikan pin 9 sebagai pin yang digunakan untuk lead kontrol servo (oranye)

int RECV_PIN = 11; // IR foto-transistor mengirimkan output ke pin 11

int sudut arus = 0; //deklarasikan variabel integer CurrentAngle dan set ke 0

IRrecv irecv(RECV_PIN); // membuat instance objek penerima IR hasil decode_results; // membuat instance objek decode_results. Objek ini terpisah dari penerima IR.

Servo myservo; // membuat instance objek servo bernama 'myservo' // maksimal delapan objek servo dapat dibuat

LiquidCrystal_I2C myDisplay (0x27, 16, 2); // buat instance objek LCD dan atur konfigurasi

batalkan pengaturan() {

Serial.begin(9600); //mulai port serial

myservo.attach(servopin); // pasang servo pada pin 9 ke objek servo

irrecv.enableIRIn(); //mulai penerima

myDisplay.init(); //inisialisasi LCD

myDisplay.backlight(); //nyalakan lampu latar LCD

}

lingkaran kosong() {

if (irrecv.decode(&results)) //jika transmisi diterima…

{ Serial.print("Nilai IR diterima: ");

Serial.println(hasil.nilai); //menampilkan nilai yang diterima

//interpretasi perintah yang diterima… if (results.value == 16724175) ///1 { //left myservo.write(0); }

if (hasil.nilai == 16718055) //2 { //middle myservo.write(90); }

if (results.value == 16743045) ///3 { //right myservo.write(180); }

if (results.value == 16754775) //+ { //increment currentAngle = myservo.read(); myservo.write(sudut saat ini + 1); } if (results.value == 16769055) //- { //mengurangi currentAngle = myservo.read(); myservo.write(sudut saat ini - 1); } }

irrecv.resume(); //Terima nilai berikutnya

//Serial monitor print Serial.print("Posisi servo saat ini: ");

Serial.println(myservo.read()); //ini mengambil posisi servo dan mengirimkannya ke monitor serial

//LCD print myDisplay.clear();

myDisplay.print("Deg. Servo: ");

myDisplay.print(myservo.read());

penundaan (200); //tunda untuk membuat aktuasi servo stabil

}

Langkah 7: Tonton Video Youtube Saya untuk Bantuan

Lihat video YouTube saya yang tidak terdaftar yang sepenuhnya membahas dan mendemonstrasikan proyek jika Anda memiliki pertanyaan!

Direkomendasikan: