Tänkte lägga upp lite skisser på olika projekt samt kod.
I skissen har jag lagt in en ULN2003A för att styra motorn. Det är så klart inte att rekommendera att använda Arduino UNOs 5V för att driva stepmotorn.. (som på skissen) utan den behöver en egen spänningskälla. :)
På motorns axel har jag monterat ett gängstål som justerar vinkeln på solpanelen.
Fotoresistorerna monteras horisontal på panelen. Hmm.. Ska fixa en bild på det. :)
Och koden lägger jag upp i morgon om någon är intresserad? hehe,, eller de gör jag i alla fall.. :)
Har tidigare styrt mina paneler med ett tvåkanaligt digitalt ur, tidsrelä, skruvdragarmotor plus en massa växelreläer.
Här är Koden :)
// Enkel Solföljare.
// Av Fredrik Jönsson
// Av Fredrik Jönsson
// 2012.10.16
#include <Stepper.h>
#define STEPS 100
Stepper stepper(STEPS, 8, 9, 10, 11);
void setup()
{
Serial.begin(9600);
// Hastighet på stepmotor RPMs
stepper.setSpeed(50);
}
void loop()
{
int sen1 = analogRead(2); // Läser av Fotoresistor 1
int sen2 = analogRead(1); // Läser av Fotoresistor 2
int val =sen1-sen2 ; // Räknar ut skillnaden mellan resistorerna 1 och 2.
if (val>20) val=20; // Filtrerar ner värdet så man slipper en gungande panel
if (val<-20) val=-20; // ifall ljusförhållanderna är stora.
if (val<4 && val>-4) val=0; // Filtrerar bort små diff..
Serial.println(val); // Skriver ut det kalylerade värdet. dvs skillnaden.
stepper.step(val); // Kör motorn.
}
#include <Stepper.h>
#define STEPS 100
Stepper stepper(STEPS, 8, 9, 10, 11);
void setup()
{
Serial.begin(9600);
// Hastighet på stepmotor RPMs
stepper.setSpeed(50);
}
void loop()
{
int sen1 = analogRead(2); // Läser av Fotoresistor 1
int sen2 = analogRead(1); // Läser av Fotoresistor 2
int val =sen1-sen2 ; // Räknar ut skillnaden mellan resistorerna 1 och 2.
if (val>20) val=20; // Filtrerar ner värdet så man slipper en gungande panel
if (val<-20) val=-20; // ifall ljusförhållanderna är stora.
if (val<4 && val>-4) val=0; // Filtrerar bort små diff..
Serial.println(val); // Skriver ut det kalylerade värdet. dvs skillnaden.
stepper.step(val); // Kör motorn.
}
Inga kommentarer:
Skicka en kommentar