Arduino 2-as servo solar tracker (5 / 6 stap)

Stap 5: De code van de Arduino

#define TILTL 2
#define TILTH 3
#define onderste 2
#define TOPLEFT 0
#define TOPRIGHT 1
#include < Servo.h >
#include "math.h"

Servo hservo;
Servo vservo;
int tlsense;
int trsense;
int bsense;
int tavg;
int diff;
int EPD;
int de deler;
int gevoeligheid;
int tiltl;
int tilth;

void setup () {}
vservo.attach(9); de servo op pin 9 hecht aan de servo-object
hservo.attach(10); de servo op pin 10 hecht aan de servo-object
deler = 10; Hiermee wordt de snelheid van de servo. lager aantal = hogere snelheid
gevoeligheid = 5; Hiermee wordt de gevoeligheid van de tracker. lager aantal = hogere gevoeligheid. Als je tracker is voortdurend heen en weer jitterpercentage het getal verhogen
Serial.begin(19200); Open seriële com
Serial.Print ("SolarTracker ready!");
pinMode (BOTTOM, INPUT); instellen van de ingangen
pinMode (TOPLEFT, INPUT);
pinMode (TOPRIGHT, INPUT);
pinMode (TILTL, INPUT);
pinMode (TILTH, INPUT);
}

void loop () {}

tiltl = digitalRead(TILTL); Lees de neigingsensor
tilth = digitalRead(TILTH);
tlsense = analogRead(TOPLEFT); Lees de lichtsensoren
trsense = analogRead(TOPRIGHT);
bsense = analogRead(BOTTOM);
bsense = bsense * 1.05; Ik moest de waarde van deze sensor om er nauwkeuriger aanpassen. Wellicht moet doen hetzelfde maar beginnen door het verlaten van het alleen
tavg = (tlsense + trsense) / 2; krijg een gemiddelde waarde voor de top 2 sensoren
diff = abs (tavg - bsense); Dit rechters hoe ver de tracker moet richten
SPD = diff/deler; en past de snelheid van de reactie dienovereenkomstig
SPD = max (spd, 1); Hiermee stelt u de minimumsnelheid op 1
Serial.Print ("\nTOP:"); Serial.Print (tavg, DEC); afdrukken van de sensor-waardes aan de seriële com
Serial.Print("\tBOTTOM:"); Serial.Print (bsense, DEC);
Serial.Print("\tLEFT:"); Serial.Print (tlsense, DEC);
Serial.Print("\tRIGHT:"); Serial.Print (trsense, DEC);

Als ((tavg < bsense) & & (diff > gevoeligheid) & & (tiltl == laag) & & (tilth == LOW)) {/ / als de gemiddelde waarde van de hoogste sensoren kleiner (meer licht) dan de sensor van de bodem is en de Kantelsensor in het juiste bereik is
vservo.write (90 - EPD); Stuur servo opdracht om te schakelen naar boven plus toevoegen snelheid
Serial.Print ("\tState:"); Serial.Print("up!");
} anders als ((tavg < bsense) & & (diff > gevoeligheid) & & (tiltl == HIGH) & & (tilth == LOW)) {/ / als de gemiddelde waarde van de hoogste sensoren kleiner (meer licht) dan de sensor van de bodem is en de Kantelsensor in het juiste bereik is
vservo.write (90 - EPD); Stuur servo opdracht om te schakelen naar boven plus toevoegen snelheid
Serial.Print ("\tState:"); Serial.Print("up!");
} anders als ((tavg > bsense) & & (diff > gevoeligheid) & & (tiltl == HIGH) & & (tilth == LOW)) {/ / als de waarde van de bodem sensor kleiner (meer licht is) dan is de gemiddelde waarde van de hoogste sensoren en de Kantelsensor in het juiste bereik
vservo.write (90 + spd); Stuur servo opdracht om te schakelen naar beneden plus toevoegen van snelheid
Serial.Print ("\tState:"); Serial.Print("down!");
} anders als ((tavg > bsense) & & (diff > gevoeligheid) & & (tiltl == laag) & & (tilth == HIGH)) {/ / als de waarde van de bodem sensor kleiner (meer licht is) dan is de gemiddelde waarde van de hoogste sensoren en de Kantelsensor in het juiste bereik
vservo.write (90 + spd); Stuur servo opdracht om te schakelen naar beneden plus toevoegen van snelheid
Serial.Print ("\tState:"); Serial.Print("down!");
} else {/ / voor elke andere instantie
vservo.write(90); stoppen met de y-as motor
Serial.Print ("\tState:"); Serial.Print("Stop!");
}

tlsense = analogRead(TOPLEFT); Lees de top 2 sensoren weer omdat ze hebben waarschijnlijk veranderd
trsense = analogRead(TOPRIGHT);
trsense = trsense * 1.03; weer moest ik de waarde van een sensor te maken van de tracker nauwkeuriger aanpassen
diff = abs (tlsense - trsense); Reset de diff-variabele voor de nieuwe waarden
SPD = diff/deler; en het genereren van een snelheid dienovereenkomstig
SPD = max (spd, 1); Stel de minimumsnelheid op 1

Als ((tlsense < trsense) & & (diff > gevoeligheid)) {/ / als de bovenste linker sensor-waarde kleiner (meer licht) dan de top juiste sensor is
hservo.write (90 + spd); Stuur servo opdracht linksaf
Serial.Print ("\tState:"); Serial.Print("left!");
} else if ((tlsense > trsense) & & (diff > gevoeligheid)) {/ / als de bovenste linker sensor-waarde groter (minder licht) dan de top juiste sensor is
hservo.write (90 - EPD); Stuur servo opdracht rechtsaf
Serial.Print ("\tState:"); Serial.Print("right!");
} else {/ / voor elke andere instantie
hservo.write(90); stoppen met de x-as motor
Serial.Print ("\tState:"); Serial.Print("Stop!");
}

delay(10); vertraging 10ms
}

Arduino opiniepeilingen van de sensoren en reageert bijgevolg ervoor nooit te kantelen te ver naar beneden of omhoog. Het verschil in licht bepaalt hoe snel de tracker moet reageren.

Gerelateerde Artikelen

DIY Arduino Solar Tracker

DIY Arduino Solar Tracker

Hallo NerdsVorige week zag ik een geweldige instrcutable voor Geo Bruce's mooi en simpel solar tracker.Dus, ik dacht dat te halen mijn eigen en hier is de output.Het is geïnspireerd door Geo Bruce's werk.Stap 1: Items nodig Sommige items zullen worde
Solar tracker met arduino uit elke dag materialen

Solar tracker met arduino uit elke dag materialen

Deze solar tracker modelbouw is zo eenvoudig dat er geen behoefte aan een volledig uitgerust laboratorium is om te maken. Eigenlijk deed ik het in mijn keuken! Aan de andere kant zijn de belangrijkste idee en software, zodat ik durven zou om ze te ge
Arduino & Lego Solar Tracker (dubbele as)

Arduino & Lego Solar Tracker (dubbele as)

Ik maakte een solar tracker met lego en arduino.Het is een zeer mooi en eenvoudig project als u wilt leren van de arduino en elektronica. Geen solderen vereist.Het doel is alleen educatieve omdat de motoren niet sterk genoeg om het gewicht van de zon
Servo gebaseerd dubbele as solar tracker

Servo gebaseerd dubbele as solar tracker

servo gebaseerd dubbele as solar trackercode: http://www.edaboard.com/thread285813.html#post1221635
Stappenmotor + Arduino Solar Tracker (EV)

Stappenmotor + Arduino Solar Tracker (EV)

Dit instructable is de vertaling van een ander die oorspronkelijk in het Spaans, geschreven was dus ik smeek je gratie als ik heb veel grammaticale fouten, zoja af ik zou graag voorstellen mij om deze te bewerken. Ik doe het omdat ik graag delen mijn
Arduino Solar Tracker met behulp van LED's!

Arduino Solar Tracker met behulp van LED's!

Zo kwam ik onlangs over een beetje informatie had ik vergeten. LEDs produceren een beetje spanning wanneer onder verlichting van een aantal golflengten. Tijd om te exploiteren deze eigenaardigheid om een DIY solar tracker voor mijn zonnepanelen!De co
DIY Mini Solar Tracker

DIY Mini Solar Tracker

Hallo jij daarMijn allereerste instructable is mijn ontwerp genaamd de DIY Mini Solar Tracker is een zonnepaneel dat tracks van de zon! Ik gebruikte deze voor mijn achtste rang wetenschap eerlijke het projectideeà en mijn klasgenoten dacht dat het wa
Eenvoudige dubbele as Solar Tracker

Eenvoudige dubbele as Solar Tracker

En español.Wij bij BrownDogGadgets.com hou van het gebruik van zonne-energie met onze elektronica projecten. Voor het grootste deel is het zeer eenvoudig om te werken in kleine, lage spanning, projecten.Een frequente vraag die wij van studenten en h
DIY Solar Tracker

DIY Solar Tracker

IntroductieWij streven naar de jonge studenten kennismaken met techniek en leren ze over zonne-energie; doordat bouwen ze een Helios als onderdeel van hun curriculum. Er is een inspanning in engineering tot push opwekking van energie uit de buurt van
Dubbele as solar tracker met online energie monitor

Dubbele as solar tracker met online energie monitor

Dit project was één van mijn laatste projecten heb ik op mijn exchange-studie in Finland.Voor dit project werkte ik samen met Fatbardh.Dit is een veel grotere en meer geavanceerde versie van een van mijn eerste projecten ooit.Ook een solar tracker:.D
Single-as PIC gecontroleerd Solar Tracker DIY Kit

Single-as PIC gecontroleerd Solar Tracker DIY Kit

Hallo alleIk ga niet in zo veel diepte met dit instructable vanwege mijn huidige tijdgebrek.  Dat gezegd hebbende, ik ben volledig van plan over het bijwerken van dit instructable naarmate de tijd vordert met nieuwe algoritmes en programma's voor opt
Internet Enabled Solar Tracker

Internet Enabled Solar Tracker

Dit is een Solar Tracker. Een volledige grootte, wolk verbonden, smartphone toegankelijk Solar Tracker gebouwd voornamelijk uit 2x4s en multiplex, met houten peg versnellingen, gerecycleerd gordijn palen, moeren, bouten en ankerstang. De solar tracke
Klok op basis van solar tracker experiment

Klok op basis van solar tracker experiment

dit is mijn eerste poging om de klok gebaseerd solar tracker.Ik stelde het idee om zonne-kooktoestellen internationale enkele maanden geleden.Dit toont het idee veel duidelijker is dan mijn diagrammen uit die tijd.Maak uw eigen.Ze moeten verbeteren z
Draagbare Solar Tracker (geen microcontroller vereist!)

Draagbare Solar Tracker (geen microcontroller vereist!)

Ooit wilde houden uw zonnepaneel in de volle zon hele dag lang zonder voortdurend om het te verplaatsen?  Een zonne-tracker kan het antwoord zijn.  Deze tracker heeft het voordeel dat ze draagbaar - als u het verplaatsen, de tracker zal automatisch a