Stap 5: Code en test uw verlichting
Voordat u bereiken in uw code wilt instellen, moet u om erachter te komen wat voor soort bereiken uw aluminiumfolie patches zijn opsporen. In mijn code varieerde de bereiken van de 700s tot bijna 1000. Grootte van uw patches en het geleidingsvermogen van de huid kunnen variëren de bereiken die uw patches detecteren.
Zodra uw patches correct zijn genaaid, en uw Lilypad is aangesloten via een USB-kabel op uw computer, kunt u het bereik van uw patches testen door te klikken op de knop seriële monitor in de rechter bovenhoek van uw code Arduino. Zorg ervoor dat de juiste USB wordt geïdentificeerd in tools -> seriële poort, en dat de juiste Lilypad bestuur is geselecteerd in de hulpmiddelen -> Raad van bestuur.
Uw code dient de volgende informatie over de seriële monitor test werkt:
int aluminumFoil = A2; (als uw positieve aluminiumfolie patch is niet op de A2 aangesloten, vervangen die met de juiste verbonden pin)
In de sectie ongeldig setup omvatten:
Serial.begin(9600); initialiseren van de seriële poort
pinMode (aluminumFoil, INPUT); aluminiumfolie pin ingesteld op INPUT
digitalWrite (aluminumFoil, hoge); initialiseert de sensor
In de sectie ongeldig lus moet uw code:
sensorValue = analogRead(aluminumFoil); luiden naar de waarde van de sensor
Serial.println(sensorValue); die waarde naar de computer verzenden
Zie de volledige code voor meer informatie. Zodra uw code up-to-par is, klik op seriële monitor. Hier ziet u een reeks getallen. Raak uw patches en zie hoe de aantallen veranderen. Vinden de hoog en laag van uw bereik en ga na welke bereiken u wilt opnemen in uw code. Bijvoorbeeld, in mijn code, het verklaart dat "als (sensorValue < 985 & & sensorValue > = 900)", de lichten zal duren 8/10 van een seconde. Als de sensor-waarde leest tussen 800 en 900, de lichten duren 5/10 van een seconde... enzovoort. Beslissen welke bereiken u wilt het effect van de code en hoe.
______
Mijn volledige code:
int aluminumFoil = A2; Dit is de pincode die de positieve aluminiumfolie patch is verbonden met (de andere aluminiumfolie patch is rechtstreeks verbonden met negatieve)
int sensorValue; variabele de waarde afkomstig van de sensor opslaan
int top1 = 2; top1 is de bijnaam voor de star aangesloten op pin 2
int top2 = 3;
int top3 = 9;
int top4 = 10;
int rtop1 = A4;
int rtop2 = 11;
void setup / / run eenmaal in, wanneer de schets wordt gestart
{
Serial.begin(9600); initialiseren van de seriële poort
pinMode (aluminumFoil, INPUT); aluminiumfolie pin ingesteld op INPUT
digitalWrite (aluminumFoil, hoge); initialiseert de sensor
pinMode (top1, OUTPUT); Als het licht is niet ingeschakeld voor uitvoer, het zal niet werken
pinMode (top2, OUTPUT);
pinMode (top3, OUTPUT);
pinMode (top4, OUTPUT);
pinMode (rtop1, OUTPUT);
pinMode (rtop2, OUTPUT);
}
void loop / / run over en weer
{
sensorValue = analogRead(aluminumFoil); luiden naar de waarde van de sensor
Serial.println(sensorValue); die waarde naar de computer verzenden
Als (sensorValue < 985 & & sensorValue > = 900) //if de waarde van de sensoren is tussen 900-985 wanneer aangeraakt, treedt het volgende lichtpatroon:
{
digitalWrite (top1, hoge); de LED inschakelen (HIGH is het spanningsniveau)
delay(800); Dit geeft aan hoe lang het licht blijft op in milliseconden
digitalWrite (top1, laag); het uitschakelen van de LED
digitalWrite (top4, hoge);
delay(800);
digitalWrite (top4, laag);
digitalWrite (rtop2, hoge);
delay(800);
digitalWrite (rtop2, laag);
digitalWrite (top2, hoge);
delay(800);
digitalWrite (top2, laag);
digitalWrite (top3, hoge);
delay(800);
digitalWrite (top3, laag);
digitalWrite (rtop1, hoge);
delay(800);
digitalWrite (rtop1, laag);
wachten op een tweede
}
else if (sensorValue < 900 & & sensorValue > 800)
{
digitalWrite (top1, hoge); de LED inschakelen (HIGH is het spanningsniveau)
delay(500);
digitalWrite (top1, laag);
digitalWrite (top4, hoge);
delay(500);
digitalWrite (top4, laag);
digitalWrite (rtop2, hoge);
delay(500);
digitalWrite (rtop2, laag);
digitalWrite (top2, hoge);
delay(500);
digitalWrite (top2, laag);
digitalWrite (top3, hoge);
delay(500);
digitalWrite (top3, laag);
digitalWrite (rtop1, hoge);
delay(500);
digitalWrite (rtop1, laag);
}
else if (sensorValue < 800 & & sensorValue > = 600)
{
digitalWrite (top1, hoge); de LED inschakelen (HIGH is het spanningsniveau)
delay(200);
digitalWrite (top1, laag);
digitalWrite (top4, hoge);
delay(200);
digitalWrite (top4, laag);
digitalWrite (rtop2, hoge);
delay(200);
digitalWrite (rtop2, laag);
digitalWrite (top2, hoge);
delay(200);
digitalWrite (top2, laag);
digitalWrite (top3, hoge);
delay(200);
digitalWrite (top3, laag);
digitalWrite (rtop1, hoge);
delay(200);
digitalWrite (rtop1, laag);
}
anders //the volgende code is wat zal gebeuren als de sensor een waarde anders dan de detecteert hierboven vermelde
{
digitalWrite (top1, hoge); de LED inschakelen (HIGH is het spanningsniveau)
delay(1000);
digitalWrite (top1, laag);
digitalWrite (top4, hoge);
delay(1000);
digitalWrite (top4, laag);
digitalWrite (rtop2, hoge);
delay(1000);
digitalWrite (rtop2, laag);
digitalWrite (top2, hoge);
delay(1000);
digitalWrite (top2, laag);
digitalWrite (top3, hoge);
delay(1000);
digitalWrite (top3, laag);
digitalWrite (rtop1, hoge);
delay(1000);
digitalWrite (rtop1, laag);
}
}