Stap 4: programmeren
Open een sessie van Arduino en kopieer de volgende code erin. Klik op verifiëren om ervoor te zorgen dat alle code klopt en vervolgens uploaden van de code naar de sensor. Open de seriële monitor aan de rechterkant en Bekijk de waarden die worden weergegeven. Kies deze waarden in het bereik dat u wilt dat de sensor te dekken en de code dienovereenkomstig bijwerken. Deze code heeft remixed uit http://web.media.mit.edu/~leah/LilyPad/08_sensor_code.html. Stukken kwam ook uit Debbie velden ambachtelijke technologie klasse aangeboden in Utah State University voorjaar 2013.
Deze sensor is zeer gevoelig en zal moeten worden aangepast aan de locatie die het zal worden gebruikt. Afhankelijk van wat voor soort licht is in de kamer (kunstmatige of natuurlijke), zal de bereiken variëren. Voor de beste resultaten, test uw sensor op de locatie u zal gebruiken om te zien wat de bereiken en pas ze aan zoals nodig.
/* int GreenledPin = A2; LED is aangesloten op de digitale pin A2 VOID Setup }
* LilyPad tutorial: sensing (sensoren)
*
* Leest gegevens uit een LilyPad lichtsensor module en stuurt deze gegevens naar de computer, zodat u de sensor-waardes zien kunt
*/
int RedledPin = A3; LED is aangesloten op de digitale pin A3
int BlueledPin = A4; LED is aangesloten op de digitale pin A4
int sensorPin = 5; lichtsensor is aangesloten op de analoge pin 5
int sensorValue; variabele de waarde afkomstig van de sensor opslaan
{
pinMode (GreenledPin, uitvoer); Hiermee stelt u de ledPin als een uitgang
Serial.begin(9600); initialiseren van de seriële poort
digitalWrite (GreenledPin, hoge); de LED inschakelen
pinMode (RedledPin, uitvoer); Hiermee stelt u de ledPin als een uitgang
Serial.begin(9600); initialiseren van de seriële poort
digitalWrite (RedledPin, hoge); de LED inschakelen
pinMode (BlueledPin, uitvoer); Hiermee stelt u de ledPin als een uitgang
Serial.begin(9600); initialiseren van de seriële poort
digitalWrite (BlueledPin, hoge); de LED inschakelen
}
void loop / / run over en weer
{
sensorValue = analogRead(sensorPin); luiden naar de waarde van de sensor
Serial.println(sensorValue); die waarde naar de computer verzenden
delay(500); vertraging voor 1/10 van een seconde
Als (sensorValue > = 100 & & sensorValue < = 175)
{
digitalWrite (GreenledPin, hoge);
vertraging (3000);
digitalWrite (GreenledPin, laag);
}
anders als (sensorValue > 175 & & sensorValue < = 250)
{
digitalWrite (BlueledPin, hoge);
vertraging (3000);
digitalWrite (BlueledPin, laag);
}
anders als (sensorValue > 250)
{
digitalWrite (RedledPin, hoge);
vertraging (3000);
digitalWrite (RedledPin, laag);
}
De code kan worden bijgewerkt zodat het leest in een bereik van waarden en dan het gemiddelde van die waarden vindt. Deze methode maakt de sensor minder grillig. Dit staat bekend als smoothing en voorbeeldcode kan gevonden worden op http://arduino.cc/en/Tutorial/Smoothing. De smoothing code kan worden gecombineerd met de bovenstaande code als u wenst te maken van het bereiken van de sensor een stabieler product.