Paso 2: Código y divisor del voltaje
Necesitarás la biblioteca del contador de tiempo para ejecutar el código que he escrito
#include < Event.h >
#include < Timer.h >
const int analogInPin = A0; Clavija de entrada analógica
const int rojo = ;// pin numbercorresponding a la salida de Mouser donde enchufa la luz
const int amarillo = ;// pin correspondiente a la salida de Mouser donde enchufa la luz
const int Greeen = ;// pin correspondiente a la salida de Mouser donde enchufa la luz
const int HighThreshold = ;// establece el valor de la tensión (x10) que desea que desencadenen la luz roja de aquí
const int MediumThreshold = ;// establece el valor de la tensión (x10) que desea que desencadenen la luz amarilla de aquí
const int baja = ;// establece el valor de la tensión (x10) que desea que desencadenen la luz verde
nada por debajo del umbral baja hará que el sistema de flash
const int PeakVoltage = //the voltaje más alto (x10) espera (utilizado para asignar señal de arduino a voltajes correspondientes (aunque el arduino sólo detectará 5 voltios por el divisor del voltaje)
Contador de tiempo t;
int sensorValue = 0; valor leído de la olla
int outputValue = 0;
loopcount int;
void setup() {}
inicializar comunicaciones serie a 9600 bps:
Serial.Begin(9600);
loopcount = 0;
pinMode (rojo, salida);
pinMode (amarillo, salida);
pinMode (verde, salida);
}
void loop() {}
Lectura analógica de valor:
sensorValue = analogRead(analogInPin);
mapa a la gama de las analog out:
outputValue = mapa (sensorValue, 0, 1023, 0, PeakVoltage);
cambiar el análogo valor:
analogWrite (analogOutPin, outputValue);
Si (outputValue > = HighThreshold)
{
digitalWrite(Red,HIGH);
digitalWrite(Yellow,LOW);
digitalWrite (verde, baja);
t.STOP(flashYellow);
}
else if (outputValue < HighThreshold & & outputValue > MediumThreshold)
{
digitalWrite(Red,LOW);
digitalWrite(Yellow,HIGH);
digitalWrite (verde, baja);
t.STOP(flashYellow);
}
else if (outputValue < MediumThreshold & & outputValue > baja)
{
digitalWrite(Red,LOW);
digitalWrite(Yellow,LOW);
digitalWrite (verde, alto);
t.STOP(flashYellow);
}
else if (outputValue < = baja)
{
flashYellow = t.oscillate(Yellow,500,HIGH);
}
Si ((oldValue > 0) & & (outputValue < (oldValue*(1-Sensitivity)))
{
}
imprimir los resultados en equipo cada (primer argumento) milisegundos
t.Every (100, AnalistasHojas);
t.Update();
}
void reportData()
{
Serial.println(outputValue);
}