Բովանդակություն:

Պարոն Թրեքեր. 3 քայլ
Պարոն Թրեքեր. 3 քայլ

Video: Պարոն Թրեքեր. 3 քայլ

Video: Պարոն Թրեքեր. 3 քայլ
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Հուլիսի
Anonim
Պարոն Թրեքեր
Պարոն Թրեքեր

Արևային որոնիչն ապահովում է 30% ավելի շատ էլեկտրաէներգիա, քան սովորական արևային վահանակը

  • Ողջույն, ցանկանում եք պատրաստել ձեր սեփական արևային հետևող սարքը:
  • Ահա մի քանի հեշտ քայլեր, որոնց միջոցով կարող եք պատրաստել ձեր սեփական արևային հետագծիչը:

Նյութը պարտադիր է:

  • Հացի տախտակ
  • Aurdino Uno/Nano/Pro mini
  • 9 վ մարտկոց
  • 2 արևային պանել (ցանկացած չափի)
  • 2 LDR (եթե ցանկանում եք կատարել 2 առանցք, ապա ձեզանից կպահանջվի 4 LDR):
  • Jumper լարերը
  • Քարտի տախտակ
  • 1 Servo moter

Քայլ 1: Ստուգեք այս դիագրամը, թե ինչպիսին կլինի շրջանը:

Ստուգեք այս դիագրամը, թե ինչպիսին կլինի շրջանը
Ստուգեք այս դիագրամը, թե ինչպիսին կլինի շրջանը

Քայլ 2: Ինչպես կոդավորել:

Եթե չգիտեք servo moter- ի մասին: Servo- ն պտտվում է ընդամենը 180 աստիճանով: servo- ի օգտագործման առավելությունը մեզանից է կախված, թե որքան ենք ցանկանում պտտել:

LDR, LDR- ի դիմադրությունը ցածր է, երբ այն չափազանց լուսավոր է, իսկ մթության մեջ այն ունի շատ բարձր դիմադրություն: Մենք ծածկագիրը կդնենք Inside If վիճակում, որպեսզի կարողանանք հեշտությամբ պտտել մեր արևային վահանակը ՝ օգտագործելով ldr դիմադրությունը:

Դուք կարող եք գրել ձեր սեփական կոդը այս արևային հետագծիչի համար: Ըստ ձեր արևային հետևորդի նախագծման:

Իմ արևային որոնիչի կոդն է ՝-

Քայլ 3: Կոդ

#ներառել Servo sg90; int նախնական_դիրքը = 90; int LDR1 = A0; // միացրեք LDR1- ը Pin A0- ի վրա

int LDR2 = A1; // Միացրեք LDR2- ը A1 կապում

int սխալ = 5;

int servopin = 9; // Դուք կարող եք փոխել servo- ն պարզապես համոզվեք, որ այն գտնվում է arduino- ի PWM կապում

դատարկ կարգավորում ()

{

sg90. կցել (սերվոպին);

pinMode (LDR1, INPUT); pinMode (LDR2, INPUT);sg90. գրել (նախնական_դիրք);

// Տեղափոխեք servo- ն 90 աստիճանի վրա

ուշացում (2000); }

դատարկ շրջան ()

{

int R1 = analogRead (LDR1); // կարդալ LDR 1

int R2 = analogRead (LDR2); // կարդալ LDR 2 int diff1 = abs (R1 - R2); int diff2 = abs (R2 - R1);եթե ((diff1 <= սխալ) || (diff2 <= սխալ)) {}

ուրիշ {

եթե (R1> R2)

{

if (նախնական_դիր> 60) {նախնական_դիր = -սկզբնական_դիրք;

}

} եթե (R1 <R2) {

if (նախնական_դիրք <120) {նախնական_դիրք = ++ նախնական_դիրք; }}} sg90.write (նախնական_դիրք); ուշացում (50);

}

Խորհուրդ ենք տալիս: