Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
Šioje pamokoje mes naudosime servo variklį, fotorezistorių ir ištraukiamą rezistorių, kad surinktume automatiškai sekančią šviesos šaltinio sistemą.
1 žingsnis: komponentai:
- „Arduino Uno“lenta * 1
- USB kabelis * 1
- Servo variklis * 1
- fotorezistorius * 1
- Rezistorius (10k) * 1
- Duonos lenta * 1
- jungiamieji laidai
2 žingsnis: principas
Servo variklis ir fotorezistorius nuskaito ir ieško šviesos šaltinio 180 laipsnių kampu ir įrašo šviesos šaltinio vietą. Baigę nuskaityti, servo variklis ir fotorezistorius sustoja šviesos šaltinio kryptimi.
3 žingsnis: Procedūros:
1 žingsnis:
Sukurkite grandinę.
2 žingsnis:
Atsisiųskite kodą iš
3 žingsnis:
Įkelkite eskizą į „Arduino Uno“lentą
Spustelėkite įkėlimo piktogramą, kad įkeltumėte kodą į valdymo skydelį.
Jei lango apačioje rodoma „Įkeltas“, eskizas sėkmingai įkeltas.
Dabar, jei fotorezistoriui apšviesti naudojate žibintuvėlį, pamatysite, kaip sukasi servovariklis ir fotorezistorius, ir galiausiai sustoja ties šviesos šaltinio kryptimi.
4 žingsnis: schema
5 žingsnis: kodas
/********************************************************************
* vardas:
Automatiškai sekantis šviesos šaltinis
* funkcija
: jei fotorezistoriui apšviesti naudojate žibintuvėlį, * pamatysi
sukasi servo variklis ir fotorezistorius, * ir, galiausiai
sustoti šviesos šaltinio kryptimi.
***********************************************************************
/El. Paštas: [email protected]
// Svetainė: www.primerobotics.in
#įtraukti
const int fotoelementasPin = A0;
/************************************************/
Servo myservo; // sukurti servo objektą valdyti servo
int outputValue = 0;
int kampas = {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;
/*************************************************/
negaliojanti sąranka ()
{
Serial.begin (9600);
myservo.attach (9); // prie servo objekto pritvirtina 9 kaiščio servą
}
/*************************************************/
tuštumos kilpa ()
{
už (int i = 0;
i <19; aš ++)
{
myservo.write (kampas ); // parašykite kampą į servo
outputValue
= analogRead (photocellPin); // skaityti A0 reikšmę
Serial.println (outputValue); // atsispausdinti
if (outputValue> maxVal) // jei dabartinė A0 vertė yra didesnė nei ankstesnė
{
maxVal = outputValue; // užrašykite vertę
maxPos
= aš; //
}
vėlavimas (200);
}
myservo.write (kampas [maxPos]); // parašykite kampą į servo, kuris A0 turi didžiausią vertę
tuo tarpu (1);
}