Stap 5: volledige code
#include < SD.h >Standaard ingesteld voor de SD-kaart-bibliotheek
MOSI = Pin 11
MISO = Pin 12
SCLK = PIN 13
We moeten altijd de CS-pincode instellen
int CS_pin = 10;
#include < Servo.h >
Servo richtingservo; Servo 1
Servo hoekservo; Servo 2
int ldr = 0; / / analogpin 0
int val;
int j;
int posplaats;
int hoek;
int licht [38];
int ldrhoek [19];
een matrix van 181
int plaats [] {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17, =
18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,
36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,
54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,
72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,
90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,
106,107,108,109,110,111,112,113,114,115,116,117,118,119,
120,121,122,123,124,125,126,127,128,129,130,131,132,
133,134,135,136,137,138,139,140,141,142,143,144,145,
146,147,148,149,150,151,152,153,154,155,156,157,158,
159,160,161,162,163,164,165,166,167,168,169,170,171,
172,173,174,175,176,177,178,179,180};
int lichthoek [] {30,31,32,33,34,35,36,37,38,39,40,41, =
42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,
59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,
76,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,
94,95,96,97,98,99,100,101,102,103,104,105};
void setup)
{
richtingservo.attach(5);
hoekservo.attach(6);
Serial.begin(9600);
richtingservo.write(0);
hoekservo.write(70);
CS-Pin is een uitgang
pinMode (CS_pin, uitvoer);
if (!. SD.begin(CS_pin))
{
Serial.println ("Card Failure");
terugkeer;
}
Serial.println ("Card Ready");
}
void loop)
{
Als (posplaats! = 0)
{
voor (int t = posplaats; t > 0; t--)
{
richtingservo.write(t);
Serial.Print ("posplaats"); Serial.println(t);
delay(120);
}
}
Val = analogRead(ldr);
j = analogRead(ldr);
int i = 0; elke keer terug op nul voor licht matrix waarden
Servo posietie juist zetten nl licht matrix vullen ontmoette de waarden
voor (int pos0 = 0; pos0 < = 181; pos0 ++)
{
richtingservo.write(plaats[pos0]);
Als (pos0% 5 == 0) / / pos0 delen deur 5 nl als de rest 0 is dan is het op 0,5,10,15,...
{
delay(300);
Val = analogRead(ldr); meten van de licht waarden
licht [i] = val; licht stokeren van de waarden in matrix
Serial.Print ("ldr"); Serial.Print(i); Serial.Print(""); Serial.println(val);
i ++;
}
Als (richtingservo.read()==180)
{breken;}
delay(170);
}
richtingservo.write(180);
Val = analogRead(ldr);
j = analogRead(ldr);
grootste licht waarden zoeken nl in j plaatsen
voor (int een = 0; een < 37; a ++)
{
Als (licht [a] < = j)
{
j = licht [a];
posplaats = een;
posplaats = posplaats * 5;
Serial.println(posplaats);
}}
richtingservo.write(180);
voor (int e = 180; e > posplaats; e--)
{
richtingservo.write(plaats[e]);
delay(120);
}
jmkhhhhhhhhhhhhhhhhhhhjkujkjfiejfknjdfq kmdsjf
Val = analogRead(ldr);
j = analogRead(ldr);
int y = 0;
voor (int pos1 = 0; pos1 < 75; pos1 ++)
{
hoekservo.write(Lichthoek[Pos1]); Servo zeten op de plaat voor licht te meten waarden
Als (pos1% 5 == 0)
{
delay(300);
Val = analogRead(ldr); meten van de licht waarden
ldrhoek [y] = val; licht stokeren van de waarden in matrix
Serial.Print ("ldr hoek"); Serial.Print(y); Serial.Print(""); Serial.println(val);
y ++;
}
Als (richtingservo.read()==105)
{breken;}
delay(200);
}
voor (int z = 0; z < 15; z ++)
{
Als (ldrhoek [z] < = j)
{
j = ldrhoek [z];
hoek = z;
hoek = hoek * 5;
Serial.println(hoek);
}}
hoekservo.write(105);
hoekservo.write(Lichthoek[hoek]);
Bestand dataFile = SD.open ("log.txt", FILE_WRITE);
Als (dataFile)
{
int gegevens = analogRead(0);
dataFile.println(data);
dataFile.close();
Serial.println(Data);
}
anders
{
Serial.println kon niet ("open log file");
}
delay(5000);
}