İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Bu derste, otomatik olarak takip eden bir ışık kaynağı sistemi kurmak için bir servo motor, bir fotodirenç ve bir aşağı çekme direnci kullanacağız.
Adım 1: Bileşenler:
- Arduino Uno kartı * 1
- USB kablosu * 1
- Servo motor * 1
- fotodirenç * 1
- Direnç (10k) * 1
- Ekmek tahtası * 1
- Atlama telleri
2. Adım: İlke
Servo motor ve fotodirenç 180 derecelik bir açıyla ışık kaynağını tarar ve arar ve ışık kaynağının yerini kaydeder. Taramayı bitirdikten sonra servo motor ve fotodirenç ışık kaynağı yönünde durur.
Adım 3: Prosedürler:
Aşama 1:
Devreyi kurun.
Adım 2:
Kodu https://github.com/primerobotics/Arduino adresinden indirin
Aşama 3:
Krokiyi Arduino Uno panosuna yükleyin
Kodu kontrol panosuna yüklemek için Yükle simgesine tıklayın.
Pencerenin altında "Yükleme tamamlandı" görünüyorsa, çizim başarıyla yüklenmiştir.
Şimdi, fotorezistörü parlatmak için bir el feneri kullanırsanız, servo motorun ve fotodirencin döndüğünü ve sonunda ışık kaynağı yönünde durduğunu göreceksiniz.
Adım 4: Şematik Diyagram
Adım 5: Kod
/********************************************************************
* isim:
Işık Kaynağını Otomatik Olarak İzleme
* işlev
: fotodirenci parlatmak için bir el feneri kullanırsanız, * göreceksin
servo motor ve fotodirenç döner, * ve sonunda
ışık kaynağı yönünde durun.
***********************************************************************
/E-posta: [email protected]
//Web sitesi: www.primerobotics.in
#Dahil etmek
const int fotoselPin = A0;
/************************************************/
Servo myservo;//servoyu kontrol etmek için servo nesnesi oluştur
int çıktıDeğeri = 0;
int açı = {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;
/*************************************************/
geçersiz kurulum()
{
Seri.başla(9600);
myservo.attach(9);//pin 9 üzerindeki servoyu servo nesnesine ekler
}
/*************************************************/
boşluk döngüsü()
{
for(int i = 0;
ben < 19; ben ++)
{
myservo.write(angle);//açıyı servoya yaz
çıkış değeri
= analogRead(photocellPin);//A0 değerini oku
Serial.println(outputValue);//yazdır
if(outputValue > maxVal)//A0'ın mevcut değeri öncekinden büyükse
{
maxVal = outputValue;//değeri yazın
maxPos
=i;//
}
gecikme(200);
}
myservo.write(angle[maxPos]);//A0'ın en büyük değere sahip olduğu açıyı servoya yaz
süre(1);
}