Indholdsfortegnelse:

SPORING AF AUTOMATISK LYSKILDE MED ARDUINO UNO R3: 5 trin
SPORING AF AUTOMATISK LYSKILDE MED ARDUINO UNO R3: 5 trin

Video: SPORING AF AUTOMATISK LYSKILDE MED ARDUINO UNO R3: 5 trin

Video: SPORING AF AUTOMATISK LYSKILDE MED ARDUINO UNO R3: 5 trin
Video: CS50 Live, Episode 003 2024, November
Anonim
AUTOMATISK LYSKILDE SPORING MED ARDUINO UNO R3
AUTOMATISK LYSKILDE SPORING MED ARDUINO UNO R3

I denne lektion vil vi bruge en servomotor, en fotoresistor og en pull-down-modstand til at samle et automatisk sporing af lyskildesystem.

Trin 1: Komponenter

- Arduino Uno board * 1

- USB -kabel * 1

- Servomotor * 1

- fotoresistor * 1

- Modstand (10k) * 1

- Brødbræt * 1

- Jumper ledninger

Trin 2: Princip

Servomotoren og fotoresistoren scanner og leder efter lyskilde i 180 grader og registrerer lyskildens placering. Efter endt scanning stopper servomotoren og fotoresistoren i lyskildens retning.

Trin 3: Skematisk diagram

Skematisk diagram
Skematisk diagram

Trin 4: Procedurer

Procedurer
Procedurer
Procedurer
Procedurer

Trin 1:

Byg kredsløbet.

Trin 2:

Download koden fra

Trin 3:

Upload skitsen til Arduino Uno -tavlen

Klik på ikonet Upload for at uploade koden til kontrolkortet.

Hvis "Udført upload" vises nederst i vinduet, betyder det, at skitsen er blevet uploadet.

Nu, hvis du bruger en lommelygte til at skinne fotoresistoren, vil du se servomotoren og fotoresistoren rotere og til sidst stoppe i retning af lyskilden

Trin 5: Kode

/********************************************************************

* navn:

Sporer automatisk lyskilde

* funktion

: hvis du bruger en lommelygte til at skinne fotoresistoren, * du vil se

servomotoren og fotoresistoren roterer, * og endelig

stop i lyskildens retning.

***********************************************************************

/E -mail: [email protected]

// Websted: www.primerobotics.in

#omfatte

const int photocellPin = A0;

/************************************************/

Servo myservo; // opret servoobjekt for at styre 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 opsætning ()

{

Serial.begin (9600);

myservo.attach (9); // fastgør servoen på pin 9 til servoobjektet

}

/*************************************************/

hulrum ()

{

for (int i = 0;

jeg <19; jeg ++)

{

myservo.write (vinkel ); // skriv vinklen til servo

outputValue

= analogRead (photocellPin); // læs værdien af A0

Serial.println (outputValue); // udskriv det

hvis (outputValue> maxVal) // hvis den aktuelle værdi på A0 er større end tidligere

{

maxVal = outputValue; // skriv værdien ned

maxPos

= i; //

}

forsinkelse (200);

}

myservo.write (vinkel [maxPos]); // skriv den vinkel til servo, som A0 har størst værdi

mens (1);

}

Anbefalede: