Πίνακας περιεχομένων:

Mr Tracker: 3 Βήματα
Mr Tracker: 3 Βήματα

Βίντεο: Mr Tracker: 3 Βήματα

Βίντεο: Mr Tracker: 3 Βήματα
Βίντεο: 🚀 RUTUBE и ТОЧКА. Разработка РУТУБА за 5 часов *БЕЗ ВОДЫ* [Next / React / Nest / PostgreSQL / Redux] 2024, Ιούλιος
Anonim
Κύριε Τράκερ
Κύριε Τράκερ

Ο ηλιακός ιχνηλάτης παρέχει 30% περισσότερη ηλεκτρική ενέργεια από τον κανονικό ηλιακό πίνακα

  • Γεια Θέλετε να φτιάξετε το δικό σας Solar Tracker.
  • Ακολουθούν μερικά εύκολα βήματα με τα οποία μπορείτε να φτιάξετε τον δικό σας ηλιακό ιχνηλάτη.

Υλικό που απαιτείται

  • Πίνακας ψωμιού
  • Aurdino Uno/Nano/Pro mini
  • Μπαταρία 9V
  • 2 ηλιακά πάνελ (οποιουδήποτε μεγέθους)
  • 2 LDR (εάν θέλετε να κάνετε 2 άξονες, έτσι θα χρειαστείτε 4 LDR).
  • Καλώδια βραχυκυκλωτήρων
  • Χαρτόνι
  • 1 σερβοκινητήρας

Βήμα 1: Ελέγξτε αυτό το διάγραμμα πώς θα είναι το κύκλωμα

Ελέγξτε αυτό το διάγραμμα πώς θα είναι το κύκλωμα
Ελέγξτε αυτό το διάγραμμα πώς θα είναι το κύκλωμα

Βήμα 2: Πώς να κωδικοποιήσετε

Εάν δεν γνωρίζετε για το servo moter. Το Servo περιστρέφεται μόνο 180 μοίρες. Το πλεονέκτημα της χρήσης servo εξαρτάται από εμάς πόσο θέλουμε να περιστρέψουμε.

LDR, Η αντίσταση του LDR είναι χαμηλή όταν έχει πολύ φως και στο σκοτάδι έχει πολύ υψηλή αντίσταση. Θα βάλουμε τον κωδικό Inside If condition για να μπορούμε εύκολα να περιστρέψουμε τον ηλιακό μας πίνακα χρησιμοποιώντας την αντίσταση του ldr.

Μπορείτε να γράψετε τον δικό σας κωδικό για αυτόν τον ηλιακό ιχνηλάτη. Σύμφωνα με τον σχεδιασμό του ηλιακού ιχνηλάτη.

Ο κωδικός του ηλιακού ιχνηλάτη μου είναι:-

Βήμα 3: Κωδικός:-

#include Servo sg90; int αρχική_θέση = 90; int LDR1 = A0; // συνδέστε το LDR1 στο Pin A0

int LDR2 = A1; // Συνδέστε το LDR2 στο pin A1

σφάλμα int = 5;

int servopin = 9; // Μπορείτε να αλλάξετε το σερβο απλά βεβαιωθείτε ότι βρίσκεται στην καρφίτσα PWM του arduino

void setup ()

{

sg90.attach (servopin);

pinMode (LDR1, INPUT); pinMode (LDR2, INPUT);sg90.write (αρχική_θέση);

// Μετακινήστε το σερβο σε 90 μοίρες

καθυστέρηση (2000). }

κενός βρόχος ()

{

int R1 = analogRead (LDR1); // διαβάστε το LDR 1

int R2 = analogRead (LDR2); // διαβάστε LDR 2 int diff1 = abs (R1 - R2); int diff2 = abs (R2 - R1);if ((diff1 <= error) || (diff2 <= error)) {}

αλλιώς {

εάν (R1> R2)

{

if (αρχική_πόθεση> 60) {αρχική_πόθεση = --αρχική_πόθεση?

}

} if (R1 <R2) {

εάν (αρχική_πόθεση <120) {αρχική_θέση = ++ αρχική_θέση? }}} sg90.write (αρχική_θέση); καθυστέρηση (50)?

}

Συνιστάται: