Paso 4: código
(Código hackeado de un LED RGB Cruz ejemplo fade por Clay Shirky < clay.shirkyNOTA: La PCB del controlador led enciende el LED cuando baja, no alta.
=============================================
/*
- Inteligente luz accionada Solar del jardín versión 0.02 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 analógico esté conectado a
int solarVal; valor leído de solarpanel
int PIRPin = 1; pin analógico PIR está conectado a
int PIRval; valor leído de PIR
int ledState = 1; Estado del LED
int contador = 0; temporizador para LED
void setup()
{
Serial.Begin(9600);
pinMode (ledPin, salida);
digitalWrite (ledPin, HIGH); Apagar el LED
ledState = 0;
Delay(500);
}
void fadeDownLed()
{
digitalWrite (ledPin, LOW);
Serial.println("fadeDownLed");
para (int i = 0; i < = 255; i ++)
{
analogWrite(ledPin, i);
Serial.Print ("fadeDownLed");
Serial.println(i);
Delay(20);
}
digitalWrite (ledPin, HIGH);
ledState = 0;
Contador = 0;
}
void fadeUpLed()
{
digitalWrite (ledPin, HIGH);
Serial.println("fadeUpLed");
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()
{
solarVal = analogRead(solarPin);
Serial.Print ("Solar:");
Serial.println(solarVal);
}
void readPIR()
{
PIRval = analogRead(PIRPin);
Serial.Print ("PIR:");
Serial.println(PIRval);
}
void loop()
{
readSolarPanel();
readPIR();
Si (solarVal < 100 & & ledState == 0 & & PIRval < 5)
{
fadeUpLed();
}
Si (> 120 solarVal & & ledState == 1 & & PIRval > 5)
{
fadeDownLed();
}
Si (contador > 5000) / / LED largo deben estar en para
{
fadeDownLed();
}
Si (ledState == 1)
{
Serial.println(Counter);
contador ++;
}
}