Paso 4: código
Aquí está el código que usé para esta sección de la obra de actualización...(Código hackeado de un LED RGB Cruz ejemplo fade por Clay Shirky < clay.shirky
NOTA: La PCB del controlador led enciende el LED cuando baja, no alta.
=============================================
/*
- Inteligente luz accionada Solar del jardín versión 0.01 zzpza < a > truenames.co < punto > Reino Unido
- Ejemplo de código original por Clay Shirky < clay.shirky < a > edu nyu < punto > >
*/
int ledPin = 3; LED conectado al pin digital 3
int ledVal = 0; valor a enviar al pin
int espera = 20; retardo de 20 ms (.02 segundo); acortar para se desvanece más rápido
int solarPin = 0; panel solar de PIN está conectado a
int analogval; valor leído de solarpanel
int ledState = 1;
void setup()
{
Serial.Begin(9600);
pinMode (ledPin, salida);
digitalWrite (ledPin, HIGH); Apagar el LED
ledState = 0;
Delay(500);
}
void fadeDownLed()
{
digitalWrite (ledPin, LOW);
para (int i = 0; i < = 255; i ++)
{
analogWrite(ledPin, i);
Serial.Print ("fadeDownLed");
Serial.println(i);
Delay(20);
}
digitalWrite (ledPin, HIGH);
ledState = 0;
}
void fadeUpLed()
{
digitalWrite (ledPin, HIGH);
para (int i = 255; i > = 0; i--)
{
analogWrite(ledPin, i);
Serial.Print ("fadeUpLed");
Serial.println(i);
Delay(20);
}
digitalWrite (ledPin, LOW);
ledState = 1;
}
void turnOffLed()
{
digitalWrite (ledPin, LOW);
ledState = 1;
}
void turnOnLed()
{
digitalWrite (ledPin, HIGH);
ledState = 0;
}
void readSolarPanel()
{
analogval = analogRead(solarPin);
Serial.println(analogval);
}
void loop()
{
readSolarPanel();
Si (analogval < 100 & & ledState == 0)
{
fadeUpLed();
}
Si (analogval > 100 & & ledState == 1)
{
fadeDownLed();
}
}