Light detection + data logga vit arduino (5 / 5 steg)
Steg 5: komplett kod
#include < SD.h >Som standard för SD-kort-biblioteket
MOSI = stift 11
MISO = stift 12
SCLK = STIFT 13
Vi ska alltid ange CS Pin
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 array 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}.
Ogiltiga inställningar)
{
richtingservo.attach(5);
hoekservo.attach(6);
Serial.BEGIN(9600);
richtingservo.write(0);
hoekservo.write(70);
CS Pin är en utgång
pinMode (CS_pin, OUTPUT);
IF (!. SD.begin(CS_pin))
{
Serial.println ("kort fel");
hemkomst.
}
Serial.println ("Card Ready");
}
Ogiltig loop)
{
om (posplaats! = 0)
{
för (int t = posplaats; t > 0; t--)
{
richtingservo.write(t);
Serial.Print ("posplaats"); Serial.println(t);
Delay(120);
}
}
Val = analogRead(ldr);
j = analogRead(ldr);
int jag = 0; Elke keer terug op nul voor licht array waarden
servo posietie juist zetten sv licht array vullen mötte de waarden
för (int pos0 = 0; pos0 < = 181; pos0 ++)
{
richtingservo.write(Plaats[pos0]);
om (pos0% 5 == 0) / / pos0 delen dörr 5 sv als de resten 0 är dan är het op 0,5,10,15,...
{
Delay(300);
Val = analogRead(ldr); meten van de licht waarden
Licht [i] = val; Licht waarden stokeren i matrisen
Serial.Print ("ldr"); Serial.Print(i); Serial.Print(""); Serial.println(val);
i ++;
}
om (richtingservo.read()==180)
{bryta;}
Delay(170);
}
richtingservo.write(180);
Val = analogRead(ldr);
j = analogRead(ldr);
Grootste licht waarden zoeken en i j plaatsen
för (int en = 0; en < 37; a ++)
{
om (licht [a] < = j)
{
j = licht [a];
posplaats = a;
posplaats = posplaats * 5.
Serial.println(posplaats);
}}
richtingservo.write(180);
för (int e = 180, e > posplaats; e--)
{
richtingservo.write(Plaats[e]);
Delay(120);
}
jmkhhhhhhhhhhhhhhhhhhhjkujkjfiejfknjdfq kmdsjf
Val = analogRead(ldr);
j = analogRead(ldr);
int y = 0;
för (int pos1 = 0; pos1 < 75; pos1 ++)
{
hoekservo.write(lichthoek[Pos1]); servo zeten op de plaat voor licht waarden te meten
om (pos1% 5 == 0)
{
Delay(300);
Val = analogRead(ldr); meten van de licht waarden
ldrhoek [y] = val; Licht waarden stokeren i matrisen
Serial.Print ("ldr hoek"); Serial.Print(y); Serial.Print(""); Serial.println(val);
y ++;
}
om (richtingservo.read()==105)
{bryta;}
Delay(200);
}
för (int z = 0; z < 15; z ++)
{
om (ldrhoek [z] < = j)
{
j = ldrhoek [z];
Hoek = z;
Hoek = hoek * 5.
Serial.println(hoek);
}}
hoekservo.write(105);
hoekservo.write(lichthoek[Hoek]);
Fil dataFile = SD.open ("log.txt", FILE_WRITE);
om (dataFile)
{
int data = analogRead(0);
dataFile.println(data);
dataFile.close();
Serial.println(data);
}
annat
{
Serial.println ("kunde inte öppna loggfilen");
}
Delay(5000);
}