Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Tässä oppitunnissa käytämme servomoottoria, valoresistoria ja alasvetovastusta kootaksemme automaattisesti seurannan valonlähdejärjestelmän.
Vaihe 1: Komponentit:
- Arduino Uno -levy * 1
- USB -kaapeli * 1
- Servomoottori * 1
- valovastus * 1
- Vastus (10k) * 1
- Leipälauta * 1
- Hyppyjohdot
Vaihe 2: Periaate
Servomoottori ja valoresistori skannaavat ja etsivät valonlähdettä 180 astetta ja tallentavat valonlähteen sijainnin. Skannauksen päätyttyä servomoottori ja valovastus pysähtyvät valonlähteen suuntaan.
Vaihe 3: Toimenpiteet:
Vaihe 1:
Rakenna piiri.
Vaihe 2:
Lataa koodi osoitteesta
Vaihe 3:
Lataa luonnos Arduino Uno -levylle
Napsauta Lähetä -kuvaketta ladataksesi koodin ohjauspaneelille.
Jos "Valmis lataus" näkyy ikkunan alareunassa, se tarkoittaa, että luonnos on ladattu onnistuneesti.
Jos nyt käytät taskulamppua valovoiman loistamiseen, näet servomoottorin ja valovastuksen pyörivän ja lopulta pysähtyvän valonlähteen suuntaan.
Vaihe 4: Kaavio
Vaihe 5: Koodi
/********************************************************************
* nimi:
Valonlähteen automaattinen seuranta
* toiminto
: jos käytät taskulamppua valovastuksen kiiltoon, * tulet näkemään
servomoottori ja valovastus pyörivät, * ja lopuksi
pysähdy valonlähteen suuntaan.
***********************************************************************
/Sähköposti: [email protected]
// Verkkosivusto: www.primerobotics.in
#sisältää
const int valokennoPin = A0;
/************************************************/
Servo myservo; // luo servo -objekti servoa ohjaamaan
int outputValue = 0;
int kulma = {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;
/*************************************************/
mitätön asennus ()
{
Sarja.alku (9600);
myservo.attach (9); // kiinnittää nastan 9 servon servo -objektiin
}
/*************************************************/
tyhjä silmukka ()
{
for (int i = 0;
i <19; minä ++)
{
myservo.write (kulma ); // kirjoita servokulma
outputValue
= analogRead (valokennoPin); // lue A0: n arvo
Serial.println (outputValue); // tulosta se
if (outputValue> maxVal) // jos A0: n nykyinen arvo on suurempi kuin edellinen
{
maxVal = outputValue; // kirjoita arvo muistiin
maxPos
= minä; //
}
viive (200);
}
myservo.write (kulma [maxPos]); // kirjoita servokulma, jolla A0: lla on suurin arvo
kun taas (1);
}