Ljussensor: Undervisa tappar (4 / 5 steg)
Steg 4: programmering
Öppna en session med Arduino och kopiera följande kod i den. Klicka på kontrollera för att se till att all kod är korrekt och sedan ladda upp koden till sensorn. Öppna den seriella bildskärmen på höger sida och titta på de värden som visas. Från dessa värden väljer intervallet som du vill att sensorn för att täcka och uppdatera koden i enlighet därmed. Denna kod har varit remixed från http://web.media.mit.edu/~leah/LilyPad/08_sensor_code.html. Stycken kom också från Debbie fält Craft teknik klass erbjuds på Utah State University våren 2013.
Denna sensor är mycket känslig och kommer att behöva justeras till den plats som man använde den. Beroende på vilken typ av ljus är i rummet (konstgjorda eller naturliga), att spänner variera. För bästa resultat, testa din sensor på plats du kommer att använda det för att se vad spänner är och justera dem efter behov.
/* int GreenledPin = A2; LED är ansluten till digital pin A2 void setup() pinMode (RedledPin, OUTPUT); anger ledPin vara en utgång pinMode (BlueledPin, OUTPUT); anger ledPin vara en utgång } void loop() / / kör om och om igen annars om (sensorValue > 175 & & sensorValue < = 250) annars om (sensorValue > 250) }
* LilyPad tutorial: avkänning (sensorer)
*
* Läser data från en LilyPad ljus Sensormodul och skickar sedan informationen till datorn så att du kan se värdena som sensor
*/
int RedledPin = A3; LED är ansluten till digital pin A3
int BlueledPin = A4; LED är ansluten till digital pin A4
int sensorPin = 5; ljussensorn är ansluten till analoga stift 5
int sensorValue; variabel för att lagra värdet kommer från sensorn
{
pinMode (GreenledPin, OUTPUT); anger ledPin vara en utgång
Serial.BEGIN(9600); initiera serieporten
digitalWrite (GreenledPin, hög); Aktivera LED
Serial.BEGIN(9600); initiera serieporten
digitalWrite (RedledPin, hög); Aktivera LED
Serial.BEGIN(9600); initiera serieporten
digitalWrite (BlueledPin, hög); Aktivera LED
{
sensorValue = analogRead(sensorPin); läsa värdet från sensorn
Serial.println(sensorValue); Skicka detta värde till datorn
Delay(500); fördröjning för 1/10 sekund
om (sensorValue > = 100 & & sensorValue < = 175)
{
digitalWrite (GreenledPin, hög);
fördröjning (3000);
digitalWrite (GreenledPin, låg);
}
{
digitalWrite (BlueledPin, hög);
fördröjning (3000);
digitalWrite (BlueledPin, låg);
}
{
digitalWrite (RedledPin, hög);
fördröjning (3000);
digitalWrite (RedledPin, låg);
}
Koden kan uppdateras så att den läser in ett värdeintervall och hittar sedan medelvärdet av dessa värden. Denna metod kommer att göra sensorn mindre temperamentsfull. Detta kallas utjämning och exempelkod finns på http://arduino.cc/en/Tutorial/Smoothing. Utjämnande koden kan kombineras med koden ovan om du vill göra sensor spänner mer stabilt.