Stap 2: Code en spanning Divider
De Timer bibliotheek moet u uitvoeren van de code die ik heb geschreven
#include < Event.h >
#include < Timer.h >
Const int analogInPin = A0; Analoge invoer pin
Const int rood = ;// pin numbercorresponding naar Mouser uitvoer waar u in het licht aangesloten
Const int geel = ;// pin overeenkomt met Mouser uitvoer waar u in het licht aangesloten
Const int Greeen = ;// pin overeenkomt met Mouser uitvoer waar u in het licht aangesloten
Const int HighThreshold = ;// stelt u de waarde van de spanning (x10) u wilt leiden tot het rode lampje hier
Const int MediumThreshold ;// = de waarde van de spanning (x10) u als trigger van het gele lampje hier wilt instellen
Const int LowThreshold ;// = de waarde van de spanning (x10) u als trigger van het groene licht wilt instellen
iets minder dan de lage drempel zal ervoor zorgen dat het systeem naar flash
Const int PeakVoltage = //the hoogste spanning (x10) u verwacht (gebruikt voor het toewijzen van arduino signaal naar bijbehorende spanningen (hoewel de arduino zal alleen zin 5 volt vanwege de spanning divider)
Timer t;
int sensorValue = 0; waarde van de pot leest
int outputValue = 0;
int loopcount;
VOID Setup {}
seriële communicatie 9600 bps te initialiseren:
Serial.begin(9600);
loopcount = 0;
pinMode (rood, uitvoer);
pinMode (geel, uitvoer);
pinMode (groen, uitvoer);
}
void loop {}
Lees de analoge waarde:
sensorValue = analogRead(analogInPin);
het worden toegewezen aan het bereik van de analoge uit:
outputValue = kaart (sensorValue, 0, 1023, 0, PeakVoltage);
de analoge waarde wijzigen
analogWrite (analogOutPin, outputValue);
Als (outputValue > = HighThreshold)
{
digitalWrite(Red,HIGH);
digitalWrite(Yellow,LOW);
digitalWrite (groen, lage);
t.stop(flashYellow);
}
else if (outputValue < HighThreshold & & outputValue > MediumThreshold)
{
digitalWrite(Red,LOW);
digitalWrite(Yellow,HIGH);
digitalWrite (groen, lage);
t.stop(flashYellow);
}
else if (outputValue < MediumThreshold & & outputValue > LowThreshold)
{
digitalWrite(Red,LOW);
digitalWrite(Yellow,LOW);
digitalWrite (groen, hoog);
t.stop(flashYellow);
}
else if (outputValue < = LowThreshold)
{
flashYellow = t.oscillate(Yellow,500,HIGH);
}
Als ((oldValue > 0) & & (outputValue < (oldValue*(1-Sensitivity)))
{
}
de resultaten naar computer het elke (eerste argument) afdrukken miliseconden
t.Every (100, reportData);
t.update();
}
VOID reportData()
{
Serial.println(outputValue);
}