Stap 9: Programma de microcontroller
Als u niet vertrouwd met de programmering van een lilypad, stel ik een kijkje nemen op Leah Buechley van uitstekende materialen over het aansluiten van de lilypad, instellen van de arduino software, en programmering van een lilypad.
Het programma van de Raad van bestuur met de onderstaande code. Als u eenmaal de code geladen, moeten de LEDs oplichten en beginnen met het reageren op bewegingen van de versnellingsmeter.
--Beginnen code
/*
* Rok Full of Stars
*
* Een LilyPad Arduino en versnellingsmeter gebruikt om te bepalen van de kleur van de RGB LED 's
* Die zijn genaaid in de broekband voor een rok met glasvezel
* Tutorial beschikbaar op http://StarSkirt.PolymathDesignLab.com
*
* Ontworpen door Shannon Henry, Uomo universale Design Lab
*/
int sensorValueX; variabelen te houden van de versnellingsmeter-gegevens
int sensorValueY;
int sensorValueZ;
int acceleroX = 0; analoge bloemblad dat versnellingsmeter X coord lezing gekoppeld is aan
int acceleroY = 1; analoge bloemblad dat versnellingsmeter Y coord lezing gekoppeld is aan
int acceleroZ = 2; analoge bloemblad dat versnellingsmeter Z coord lezing gekoppeld is aan
int adjustedX; variabelen te houden herontwikkelde waarden voor color generatie
int adjustedY;
int adjustedZ;
int redTab = 4; Petal gekoppeld aan rode LED lood
int blueTab = 2; Petal gekoppeld aan blauwe LED lood
int greenTab = 3; Petal gekoppeld aan groene LED lood
VOID initializeRGB(void)
{
pinMode (redTab, OUTPUT);
pinMode (blueTab, OUTPUT);
pinMode (greenTab, OUTPUT);
analogWrite (redTab, 0);
analogWrite (blueTab, 0);
analogWrite (greenTab, 0);
}
VOID Setup {}
Serial.begin(9600); initialiseren van de seriële poort, zodat u met de computer communiceren kunt
}
void loop {}
sensorValueX = analogRead(acceleroX); versnellingsmeter-gegevens lezen
sensorValueY = analogRead(acceleroY);
sensorValueZ = analogRead(acceleroZ);
adjustedX = kaart (sensorValueX, 400, 650, 0, 255); de waarde van de sensor naar het bereik 1 tot en met 255 om te corresponderen met kleurwaarden kaarten
adjustedY = kaart (sensorValueY, 400, 600, 0, 255); Kalibreren - uncommenten serial.println code hieronder, en
adjustedZ = kaart (sensorValueZ, 430, 650, 0, 255); aanpassen van 2 Beginwaarden om te reflecteren scala aan lezingen kreeg toen kalibreren
Serial.println(adjustedX); Stuur de sensorgegevens naar de computer zodat u RGB LED kalibreren kunt weergeven
Serial.println(adjustedY); //
Serial.println(adjustedZ); //
Serial.println(); commentaar uit de lijnen van de Serial.println weer zodra kleurkalibratie voltooid is
delay(5); zeer korte vertraging
analogWrite (redTab, adjustedX); kleur wordt weergegeven
analogWrite (blueTab, adjustedY);
analogWrite (greenTab, adjustedZ);
}