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: schema
4 ž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 „Įkėlimas baigtas“, tai reiškia, kad eskizas buvo sėkmingai įkeltas.
Dabar, jei fotorezistoriui apšviesti naudojate žibintuvėlį, pamatysite, kaip sukasi servovariklis ir fotorezistorius, ir galiausiai sustosite šviesos šaltinio kryptimi
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);
}