Daftar Isi:
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-13 06:57
Dalam pelajaran ini, kita akan menggunakan motor servo, fotoresistor, dan resistor pull-down untuk merakit sistem sumber cahaya pelacakan otomatis.
Langkah 1: Komponen:
- Papan Arduino Uno * 1
- Kabel USB * 1
- Motor servo * 1
- fotoresistor * 1
- Resistor (10k) * 1
- Papan tempat memotong roti * 1
- Kabel jumper
Langkah 2: Prinsip
Motor servo dan fotoresistor memindai dan mencari sumber cahaya dalam 180 derajat dan merekam lokasi sumber cahaya. Setelah selesai memindai, motor servo dan fotoresistor berhenti pada arah sumber cahaya.
Langkah 3: Prosedur:
Langkah 1:
Membangun sirkuit.
Langkah 2:
Unduh kode dari
Langkah 3:
Unggah sketsa ke papan Arduino Uno
Klik ikon Unggah untuk mengunggah kode ke papan kontrol.
Jika "Selesai mengunggah" muncul di bagian bawah jendela, itu berarti sketsa telah berhasil diunggah.
Sekarang, jika Anda menggunakan senter untuk menyinari fotoresistor, Anda akan melihat motor servo dan fotoresistor berputar, dan akhirnya berhenti di arah sumber cahaya.
Langkah 4: Diagram Skema
Langkah 5: Kode
/********************************************************************
* nama:
Secara Otomatis Melacak Sumber Cahaya
* fungsi
: jika Anda menggunakan senter untuk menyinari fotoresistor, * kamu akan lihat
motor servo dan fotoresistor berputar, * dan akhirnya
berhenti di arah sumber cahaya.
***********************************************************************
/Email: [email protected]
//Situs web: www.primerobotics.in
#termasuk
const int fotoselPin = A0;
/************************************************/
Servo myservo;//membuat objek servo untuk mengontrol servo
int nilai keluaran = 0;
int sudut = {0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160, 170, 180};
int maxVal = 0;
int maxPos = 0;
/*************************************************/
batalkan pengaturan()
{
Serial.begin(9600);
myservo.attach(9);//menyambungkan servo pada pin 9 ke objek servo
}
/*************************************************/
lingkaran kosong()
{
untuk(int i = 0;
saya < 19; saya ++)
{
myservo.write(angle);//menulis sudut ke servo
nilai keluaran
= analogRead(photocellPin);//membaca nilai A0
Serial.println(outputValue);//print it
if(outputValue > maxVal)//jika nilai A0 saat ini lebih besar dari sebelumnya
{
maxVal = outputValue;//tulis nilainya
maxPos
= aku;//
}
penundaan (200);
}
myservo.write(angle[maxPos]);//tulis sudut ke servo yang A0 memiliki nilai terbesar
sementara(1);
}