Stap 3: Stap 3: Kopieer Code
Kopieer deze code naar uw Arduino IDE, met adafruit flora Raad en seriële poort geselecteerd
/*
ZETTEN van pinnen, draden, knoppen en flex sensor flex sensor verbonden met twee leidt, een aangesloten op de 5V, een aangesloten op een analoge pin en een 10kresistor verbonden met GND drukknoppen verbonden met twee leidt, één is verbonden met GND, een DIGITAL pin en weerstand naar 5V (vraag: hoef lilypad knoppen weerstanden?) LED's aangesloten op twee leidt, een digital pin, één tot 330 weerstand en GND * /
Const int stressPin = 6; analoge pin dat leest flex sensor--> verandering A5 voor lilypad int ledPins [] = {1,0,2,3}; LED pinnen--> wijziging 9,10,11, A2 int zero_bottom = 10; PIN die in de knop naar het nulpunt van minimale flex van de arm-//change tot en met 5 voor lilypad int zero_top = 9; PIN die in de knop naar het nulpunt voor maximale flex van de arm-//change tot en met 6 voor lilypad brengt
int startValue; int endValue;
int startPosition; int endPosition; int stressPosition; Variabele die slaat de huidige waarde van wat is gelezen in van de stress-sensor
int avg1 = 0, avg2 = 0, avg3 = 0; int avgA = 0, avgB = 0, avgC = 0, avgD = 0;
void setup {Serial.begin(9600); int index; voor (index = 0; index < = 3; index ++) {pinMode(ledPins[index],OUTPUT)}; pinMode(zero_bottom,INPUT); pinMode(zero_top,INPUT);}
void loop {startValue = digitalRead(zero_bottom); //when knop niet duwde waarde 1 while(!startValue) = {//when niet 1, waarde = 0 die code in de lus stuurt te lezen flex sensor startPosition = analogRead(stressPin); startValue = digitalRead(zero_bottom); //allows de while lus te stoppen} endValue = digitalRead(zero_top); //same concept hier voor tweede knop while(!endValue) {endPosition = analogRead(stressPin); endValue = digitalRead(zero_top);} //Averaging avg1 = (startPosition + endPosition) / 2; avg2 = (startPosition + avg1) / 2; avg3 = (endPosition + avg1) / 2; avgA = (startPosition + avg2) / 2; avgB = (avg2 + avg1) / 2; avgC = (avg1 + avg3) / 2; avgD = (avg3 + endPosition) / 2; stressPosition = analogRead(stressPin); Serial.println(); Serial.Print ("Start:"); Serial.println(startPosition); Serial.Print ("einde:"); Serial.println(endPosition); Serial.println(); Serial.Print ("avgA:"); Serial.println(avgA); Serial.Print ("avgB:"); Serial.println(avgB); Serial.Print ("avgC:"); Serial.println(avgC); Serial.Print ("avgD:"); Serial.println(avgD); Serial.println(); Serial.println(stressPosition); Stelt de LEDS als (stressPosition < avgD) {digitalWrite (ledPins [0], hoge); digitalWrite (ledPins [1], hoge); digitalWrite (ledPins [2], hoge); digitalWrite (ledPins [3], hoge);} als (stressPosition < avgC & & stressPosition > = avgD) {digitalWrite (ledPins [0], hoge); digitalWrite (ledPins [1], hoge); digitalWrite (ledPins [2], hoge); digitalWrite (ledPins [3], laag);} als (stressPosition < avgB & & stressPosition > = avgC) {digitalWrite (ledPins [0], hoge); digitalWrite (ledPins [1] HOGE); digitalWrite (ledPins [2], laag); digitalWrite (ledPins [3], laag); }
Als (stressPosition < avgA & & stressPosition > = avgB) {digitalWrite (ledPins [0], hoge); digitalWrite (ledPins [1], laag); digitalWrite (ledPins [2], laag); digitalWrite (ledPins [3], laag);}
Als (stressPosition > avgA) {digitalWrite (ledPins [0], laag); digitalWrite (ledPins [1], laag); digitalWrite (ledPins [2], laag); digitalWrite (ledPins [3], laag);}}
De belangrijkste onderdelen van mijn code:
· avg1 = (startPosition + endPosition) / 2;
· avg2 = (startPosition + avg1) / 2;
· avg3 = (endPosition + avg1) / 2;
· avgA = (startPosition + avg2) / 2;
· avgB = (avg2 + avg1) / 2;
· avgC = (avg1 + avg3) / 2;
· avgD = (avg3 + endPosition) / 2;
Dit deel van de code is verantwoordelijk voor het instellen van de vier punten voor elke LED inschakelen. De eerste knop is ingedrukt op het punt van min flexie (rechte arm), opname van de "beginpositie" waarde en houden van alle lichten uit. De tweede knop is ingedrukt op de max flexie (arm gebogen, biceps spieren gecontracteerd), opname van de "endposition" waarde en draaien op alle vier lichten. Een licht, twee lichten en drie lampjes zal oplichten afhankelijk van hoeveel je biceps is gebogen in vergelijking met twee set punten. Daarom ¼ van uw max flexie zal aanzetten een licht, ½ zal blijken twee ¾ drie zal veranderen en uw max flexie zal alle vier lichten aanzetten.