Intelligent sol trädgård ljus - del 1 (4 / 5 steg)
Steg 4: kod
Här är koden jag använde för denna del av uppgradering...(Koden hacka från en RGB LED cross fade exempel av Clay Shirky < clay.shirky
OBS! Led controller PCB aktiverar lysdioderna när låg, inte hög.
=============================================
/*
- Intelligent Solar Powered trädgård Light version 0,01 zzpza < i > truenames.co < dot > Storbritannien
- Ursprungliga kodexempel av Clay Shirky < clay.shirky < i > nyu < dot > edu >
*/
int ledPin = 3; LED, ansluten till digital stift 3
int ledVal = 0; värde att skicka till stift
int vänta = 20; 20ms (02 sekund) försening. förkorta för snabbare bleknar
int solarPin = 0; PIN solpanel är ansluten till
int analogval; värdet läsa från solpanel
int ledState = 1;
void setup()
{
Serial.BEGIN(9600);
pinMode (ledPin, produktionen);
digitalWrite (ledPin, hög); Inaktivera lysdioder
ledState = 0;
Delay(500);
}
void fadeDownLed()
{
digitalWrite (ledPin, låg);
för (int jag = 0; jag < = 255; i ++)
{
analogWrite(ledPin, i);
Serial.Print ("fadeDownLed");
Serial.println(i);
Delay(20);
}
digitalWrite (ledPin, hög);
ledState = 0;
}
void fadeUpLed()
{
digitalWrite (ledPin, hög);
för (int jag = 255; jag > = 0; i--)
{
analogWrite(ledPin, i);
Serial.Print ("fadeUpLed");
Serial.println(i);
Delay(20);
}
digitalWrite (ledPin, låg);
ledState = 1;
}
void turnOffLed()
{
digitalWrite (ledPin, låg);
ledState = 1;
}
void turnOnLed()
{
digitalWrite (ledPin, hög);
ledState = 0;
}
void readSolarPanel()
{
analogval = analogRead(solarPin);
Serial.println(analogval);
}
void loop()
{
readSolarPanel();
om (analogval < 100 & & ledState == 0)
{
fadeUpLed();
}
om (analogval > 100 & & ledState == 1)
{
fadeDownLed();
}
}