Stegmotor + Arduino + Solar Tracker (EV) (6 / 8 steg)

Steg 9: kod



Jag lämnar styrkoden, jag hoppas jag inte har väl missat något, eftersom redaktören vände min hela haha XD.

Stepper Motor Solar Tracker av hectorhhg

#include //Integrating bibliotek för att hantera Stepper.h stegmotorer

#include //Integrating design math.h bibliotek för grundläggande matematiska operationer

Deklarera konstanter

#define motorStephor 200 //steps för horisontell motor

#define motorStepver 200 //steps för vertikal motor

Digital pins

#define motor1hor 6

#define motor2hor 7

#define motor1ver 8

#define motor2ver 9

Variabler

int prom; Genomsnitt av fyra LDR

int pyr; BPW34 fotodiod

int h = 60. Åtgärder som utförs av den horisontella motorn

int v = 5; Åtgärder som utförs av den vertikala motorn

int ltsensor; Värdet av det översta vänstra LDR

int rtsensor; Värdet på det topp rätta LDR

int rdsensor; Värdet av längst ner till höger LDR

int ldsensor; Värdet av längst ner till vänster LDR

int sen = 50; Sensibilitet

int dil; Genomsnittliga uppsättning LDR vänster

int dit; Genomsnittliga uppsättning LDR topp

int dir; Genomsnittliga uppsättning LDR höger

int gjorde; Genomsnittliga uppsättning LDR botten

int diff; Skillnaden mellan LDR ovanför botten

int diff2; Skillnaden mellan LDR vänster till höger

int pup; övre växel

int pdown; lägre växel

Stepper horStep (motorStephor, motor1hor, motor2hor);

Stepper Stepper verStep (motorStepver, motor1ver, motor2ver);

Initiering av program

Ogiltiga inställningar)

{

horStep.setSpeed (30); RPM horisontella motor

verStep.setSpeed (10). RPM vertikala motor

Serial Port

Serial.BEGIN(9600);

Stift konfigurationen

pinMode (pyr, ingång);

pinMode (ltsensor, ingång);

pinMode (rtsensor, ingång);

pinMode (ldsensor, ingång);

pinMode (rdsensor, ingång);

pinMode (valp, mata);

pinMode (pdown, ingång);

}

Ogiltig loop)

{

göra

{

pyr = analogRead(0); Behandlingen analoga ingångar

ltsensor = analogRead (1) * 1.022; (konstant är att kalibrera LDR)

rtsensor = analogRead (2) * 1.007;

ldsensor = analogRead(3);

rdsensor = analogRead (4) * 1.013;

valp = digitalRead (3). Behandlingen växlar

pdown = digitalRead(4);

prom = (ltsensor + ldsensor + rtsensor + rdsensor) / 4; Genomsnittliga LDR

dit = (ltsensor + rtsensor) / 2; Genomsnittliga sensorer upp

= (ldsensor + rdsensor) / 2; Genomsnittliga sensorer ner

diff = (dit - gjorde); Skillnaden mellan nivå av strålning

fördröjning (50);

om ((pyr==0) & &(pup==HIGH) & & (prom < = 8) || (pyr==0) & &(pdown==HIGH) & & (prom < = 8)) //If pyr värde är noll och genomsnittet av sensorerna är lika eller mindre än 8 och växlarna har intervallet

MOV(); MOV funktion

}

medan ((pyr == 0) & &(pup==HIGH) & & (prom < = 8) || (pyr==0) & &(pdown==HIGH) & & (prom < = 8));

om (-1 * sen > diff || diff > sen) //If uppmätta skillnaden mellan uppsättningen sensorer är högre eller lägre än värdet som känslighet

{

IF(dit < DID) //If medelvärdet av ovanstående sensorerna är mindre än den nedre sensorer

{

om (pdown == hög)

{

verStep.step (0); Stoppa vertikala motor

fördröjning (10).

}

annat

om (pdown == låg)

{

verStep.step (v). Vrid motorn upp

fördröjning (50);

}

}

annat if(dit > did) //If det genomsnittliga värdet av botten sensorer är mindre än den ovan sensorer

{

om (pup == hög)

{

verStep.step (0); Stoppa vertikala motor

fördröjning (10).

}

annars om (pup == låg)

{

verStep.step (-v); Vrid motorn ner

fördröjning (50);

}

}

annat //any andra fall

{

verStep.step (0); Stoppa vertikala motor

fördröjning (10).

}

}

fördröjning (10).

pyr = analogRead (0); Sensormätningar igen för eventuella förändringar

ltsensor = analogRead (1) * 1.022;

rtsensor = analogRead (2) * 1.007;

ldsensor = analogRead(3);

rdsensor = analogRead (4) * 1.013;

DIL = (ltsensor + ldsensor) / 2; Genomsnittliga sensorer vänster

dir = (rtsensor + rdsensor) / 2; Genomsnittliga sensorer höger

diff2 = (dil - dir); Skillnaden mellan nivå av strålning

fördröjning (50);

om (-1 * sen > diff2 || diff2 > sen) //If uppmätta skillnaden mellan uppsättningen sensorer är högre eller lägre än värdet som känslighet

{

IF(DIL < dir) //If medelvärdet av vänstra sensorn är mindre än den högra sensorn

{

horStep.step (h); Sväng höger motor

fördröjning (10).

}

annat

IF(DIL > dir) //If medelvärdet av vänstra sensorn är större än rätt sensorn

{

horStep.step (-h); Vrid motorn åt

fördröjning (10).

}

annat //any andra fall

{

horStep.step (0); Stoppa horisontella motor

fördröjning (10).

}

}

Delay(10);

}

"mov funktion"

void mov)

{

om (pup == hög)

{

verStep.step (72); Vrid 72 steg upp (är stegen för att byta position en gång dölja solen)

fördröjning (50);

}

annat if (pdown == hög)

{

verStep.step (-72); Tur 72 steg ner

fördröjning (50);

}

fördröjning (10).

}

Se Steg
Relaterade Ämnen

Arduino Solar Tracker med lysdioder!

Så jag kom nyligen över lite information hade jag glömt. Lysdioder generera lite spänning när under belysning av ett spektrum av våglängder. Dags att utnyttja denna underlighet för att göra en DIY solar tracker för mina solpaneler!Koden finns över på...

Arduino Solar Tracker

vad är gör:Den söker efter den ljusaste ljuskällan som solen.Steg 1: Hur det fungerar How it works:Jag hade gjort en sensor på 4 LDRs med blad mellan demDen med stips är LDRsNär pinnen på toppen är rättat till solen eller den ljusaste punktende fyra...

Solar tracker med arduino - från varje dag material

Här solar tracker modellera konstruktion är så enkelt att det finns inget behov av ett fullt utrustat laboratorium för att skapa den. Jag gjorde det faktiskt i mitt kök! Å andra sidan är huvudtanken och mjukvaran så att jag skulle våga använda dem i...

Arduino DIY Solar Tracker

Hej töntarFörra veckan såg jag en fantastisk instrcutable för Geo Bruce trevlig och enkel solar tracker.Så jag tänkte göra min egen och här är resultatet.Det är inspirerat från Geo Bruce arbete.Steg 1: Objekt krävs Vissa objekt kommer att krävs som ä...

Arduino 2-axlig servo solar tracker

vad är en solar tracker?En solar tracker kan öka effektiviteten i en solpanel med upp till 100%! Det gör detta genom att alltid hålla panelen vinkelrätt mot inkommande strålar av solljus.här är en ekvation att bevisa detta:P = AW synd θP = effekt gen...

Arduino & Lego Solar Tracker (dubbla axeln)

Jag gjorde en solar tracker med lego och arduino.Det är ett mycket trevligt och enkelt projekt om du vill lära dig arduino och elektronik. Ingen lödning behövs.Dess syfte är endast lärorikt eftersom motorerna inte är stark nog att stödja vikten av so...

Enkelverkande PIC kontrollerade Solar Tracker DIY Kit

Hej allaJag kommer inte in så mycket djupet med detta instructable på grund av min nuvarande tidsbrist. Som sagt, jag helt planerar att uppdatera detta instructable eftersom tiden går med nya algoritmer och program för optimering.Intro:Jag var leka m...

Dual axis solar tracker med online energi monitor

Projektet var ett av mina sista projekt jag gjorde på min utbytesstudier i Finland.För detta projekt arbetat jag tillsammans med Fatbardh.Detta är en mycket större och mer avancerad version av ett av mina första projekt någonsin.Också en solar tracke...

Internet Enabled Solar Tracker

Detta är en Solar Tracker. En full storlek, cloud ansluten, smartphone tillgänglig Solar Tracker byggda främst från 2x4s och plywood, anställa trä pinne redskap, återvunnet gardin polacker, muttrar, bultar och gängstång. Solar tracker använder ett he...

DIY Mini Solar Tracker

Hej därMin allra första instructable är min design kallad DIY Mini Solar Tracker är en solpanel som spårar solen! Jag använde detta för mitt åttonde klass science fair projekt och mina klasskamrater tyckte det var fantastiskt! Tracker användningsområ...

Enkla Dual Axis Solar Tracker

En español.Vi på BrownDogGadgets.com älskar att använda solenergi med våra elektronik projekt. För det mesta är det extremt lätt att arbeta in i små, låg spänning, projekt.En ofta förekommande fråga vi får från studenter och hobbyister är "Hur kan ja...

DIY Solar Tracker

IntroduktionVårt mål är att introducera unga studenter till teknik och lära dem om solenergi; genom att ha bygga dem en Helios som en del av kursplanen. Det finns en insats i engineering till push energiproduktion från användning av fossila bränslen...

Klockan baserat solar tracker experiment

detta är mitt första försök på klockan baserat solar tracker.Jag föreslog idén att Solköken internationella flera månader sedan.Detta visar idén mycket tydligare än min diagram från den tiden.Gör din egen.De bör förbättra solpanel produktivitet med 2...

Bärbar Solar Tracker (ingen microcontroller krävs!)

Någonsin velat hålla din solpanel i full sol hela dagen utan att ständigt flytta den? En solar tracker kan vara svaret. Denna tracker har fördelen att vara bärbar - om du flyttar den, tracker kommer automatiskt justera tillbaka till solen, till skill...

Bärbar Solar Tracker Project - kretsdesign och Breadboarding

i teorin solenergi är awesome. Det är ren, gratis och riklig. Nackdelen är att för att konvertera direkt ljus till elektrisk energi kräver en solar givare som en solpanel. Det aktuella läget för denna teknik lämnar mer än lite att önska i hållbarhet,...

Servo baserade dual axis solar tracker

servo baserade dual axis solar trackerkod: http://www.edaboard.com/thread285813.html#post1221635...

Baserade Arduino Solar PV energimätare med Xively anslutning (kan övervakas på android eller iPhone)

Det har varit ungefär två dagar sedan jag gjorde den Arduino PV generationen mätare, men det var ett misstag att inte att ta de steg för steg bilderna innan du fortsätter för provningen. Och det var en hemsk idé att Visa raw du för så kallade elmätar...

Arduino Motion Tracker

Hej alla!Detta är min första arduino baserade instructable jag hoppas du kommer att gilla det:) Jag är ett stort fan av den första Alien-filmen och de "gamla-sci-fi" prylarna, så jag beslöt att göra en fullt fungerande bärbar motion-tracker. I d...

Arduino solar storma controller + effektreglering och data loggning online med Xbee WiFi

För ett tag sedan jag började arbeta på en sol laddningsregulatorn, det var baserat på en PIC mikrokontroller, en 20 x 4 tecken display och koden är skriven i assembler. Det fungerade bra och arbetade fortfarande när jag bestämde mig att lägga mer ti...