Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
I denne leksjonen vil vi bruke en servomotor, en fotoresistor og en nedtrekksmotstand for å montere et automatisk sporing av lyskildesystem.
Trinn 1: Komponenter:
- Arduino Uno -bord * 1
- USB -kabel * 1
- Servomotor * 1
- fotoresistor * 1
- Motstand (10k) * 1
- Brødbrett * 1
- Jumper ledninger
Trinn 2: Prinsipp
Servomotoren og fotoresistoren skanner og leter etter lyskilde i 180 grader og registrerer plasseringen av lyskilden. Etter avsluttet skanning stopper servomotoren og fotoresistoren i retning av lyskilden.
Trinn 3: Prosedyrer:
Trinn 1:
Bygg kretsen.
Steg 2:
Last ned koden fra
Trinn 3:
Last opp skissen til Arduino Uno -brettet
Klikk på Last opp -ikonet for å laste opp koden til kontrollkortet.
Hvis "Ferdig opplasting" vises nederst i vinduet, betyr det at skissen er lastet opp.
Hvis du bruker en lommelykt til å skinne fotoresistoren, vil du se servomotoren og fotoresistoren rotere og til slutt stoppe i retning av lyskilden.
Trinn 4: Skjematisk diagram
Trinn 5: Kode
/********************************************************************
* Navn:
Sporer lyskilde automatisk
* funksjon
: hvis du bruker en lommelykt til å skinne fotoresistoren, * du vil se
servomotoren og fotoresistoren roterer, * og endelig
stoppe i retning av lyskilden.
***********************************************************************
/E -post: [email protected]
// Nettsted: www.primerobotics.in
#inkludere
const int photocellPin = A0;
/************************************************/
Servo myservo; // lage servoobjekt for å kontrollere en servo
int outputValue = 0;
int vinkel = {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;
/*************************************************/
ugyldig oppsett ()
{
Serial.begin (9600);
myservo.attach (9); // fester servoen på pinne 9 til servoobjektet
}
/*************************************************/
hulrom ()
{
for (int i = 0;
jeg <19; jeg ++)
{
myservo.write (vinkel ); // skriv vinkelen til servoen
outputValue
= analogRead (photocellPin); // les verdien av A0
Serial.println (outputValue); // skrive den ut
if (outputValue> maxVal) // hvis gjeldende verdi på A0 er større enn tidligere
{
maxVal = outputValue; // skrive ned verdien
maxPos
= i; //
}
forsinkelse (200);
}
myservo.write (vinkel [maxPos]); // skriv vinkelen til servoen som A0 har størst verdi
mens (1);
}