RepWrap - apparaat aan het bijhouden van duur en herhalingen voor fysiotherapie oefeningen (breadboarded prototype) (1 / 2 stap)

Stap 1: De code



De code bouwt af Arduino documentatie zoals

Knight Rider 2 voor het gebruik van arrays voor pin set-ups
Knop was wat ik keek recht in het begin (noot aan zelf: voor v2 waarschijnlijk een weerstand tussen de GND en de vliegende leads toevoegen moeten...)

Download het bestand physio.pde (of kopieer de code van onderen) en uploaden naar uw Arduino microcontroller op de gebruikelijke wijze.

/*
RepWrap v1
Nikki pugh | April 2011 | www.npugh.co.uk

Vibratie motor gekoppeld aan pin 12
LED aangesloten op pin 13
Herhaling pinnen 2-6
Duur pennen 7-11

*/

variabelen:

int repNumbers [5] = {//array een selectie van herhaling waarden op te slaan
10,12,20,24,30};

int repPins [] {} =
2, 3, 4, 5, 6}; een matrix van pin-codes welke rep knoppen zijn gekoppeld
int repPinCount = 5; het aantal rep opties (dat wil zeggen de lengte van de matrix)

int durationLengths [5] = {//array een selectie van duur/hold waarden op te slaan in seconden
10,12,15,20,30};

int durationPins [] {} =
7, 8, 9, 10, 11}; een matrix van pin-codes tot welke duur de knoppen zijn gekoppeld

int durationPinCount = 5; het aantal duur opties (dat wil zeggen de lengte van de matrix)

flitsen worden gebruikt als een aanwijzing dat de duur van de greep bijna voorbij is
int flashOn = 750; lengte van het aftellen van de tijd knippert laatst voor
int flashOff = 250; lengte van het aftellen van de tijd knippert af voor
int flashRep = 3; aantal flitsers
int flashTime = (flashRep*(flashOn+flashOff));

int overgang = 3000; lengte van de tijd tussen herhalingen, milliseconden

int repState = 0; variabele voor het lezen van de selector-status
int durationState = 0; variabele voor het lezen van de selector-status

int thisRepPin = 0; andere variabelen
int thisDurationPin = 0;
int thisRepNumber = 0;
int thisDurationLength = 0;
int repNumber = 0;
int durationLength = 0;
int repStateFound = 0;
int durationStateFound = 0;

constanten:
Const int buzzPin = 12; het nummer van de pin van de zoemer
Const int LEDPin = 13; het nummer van de LED-pin

VOID Setup {}
Initialiseer pinnen als een uitgangen:
pinMode (LEDPin, uitvoer);
pinMode (buzzPin, OUTPUT);

int thisRepPin;
de arrayelementen zijn genummerd van 0 tot (pinCount - 1).
Gebruik een for-lus om te initialiseren van elke pin als uitgang:
voor (int thisRepPin = 0; thisRepPin < repPinCount; thisRepPin ++) {}
pinMode (repPins [thisRepPin], INPUT); pincode invoeren instellen
digitalWrite (repPins [thisRepPin], hoge); inschakelen van interne pullup resistors
pinMode (repPins [thisRepPin], OUTPUT); set pin aan output
}

int thisDurationPin;
de arrayelementen zijn genummerd van 0 tot (pinCount - 1).
Gebruik een for-lus om te initialiseren van elke pin als uitgang:
voor (int thisDurationPin = 0; thisDurationPin < durationPinCount; thisDurationPin ++) {}
pinMode (durationPins [thisDurationPin], INPUT); pincode invoeren instellen
digitalWrite (durationPins [thisDurationPin], hoge); inschakelen van interne pullup resistors
pinMode (durationPins [thisDurationPin], OUTPUT); set pin aan output
}

Serial.begin(9600); Open de seriële poort op 9600 bps
} //end instellen

void loop {}

Start signaal
for (int i = 0; ik < flashRep; i ++) {}
digitalWrite (LEDPin, laag);
delay(flashOff);
digitalWrite (LEDPin, hoge);
delay(flashOn);
digitalWrite (LEDPin, laag);
}
digitalWrite (buzzPin, hoge);
delay(changeover);
digitalWrite (buzzPin, laag);

Lees de Rep pins, wanneer u vondst men welk is laag, dat is degene die is geselecteerd
thisRepPin = 0;
repStateFound = 0;
while(repStateFound==0) {}
repState=digitalRead(repPins[thisRepPin]);
Als (repState == LOW) {//has is aangesloten op de grond
repStateFound = 1;
Serial.Print(thisRepPin);
Serial.println ("repStateFound = 1');
}
Als (repState == HIGH) {}
repStateFound = 0;
Serial.Print(thisRepPin);
Serial.println ("repStateFound = 0');
thisRepPin ++;
}

}

thisRepNumber = thisRepPin;
Serial.Print ("thisRepNumber:");
repNumber = repNumbers [thisRepNumber];
Serial.println(repNumbers[thisRepNumber]);

Lees de duur pinnen, wanneer u vondst men welk is laag, dat is degene die is geselecteerd
thisDurationPin = 0;
durationStateFound = 0;
while(durationStateFound==0) {}
durationState=digitalRead(durationPins[thisDurationPin]);
Als (durationState == LOW) {}
durationStateFound = 1;
Serial.Print(thisDurationPin);
Serial.println ("durationStateFound = 1');

}
Als (durationState == HIGH) {}
durationStateFound = 0;
Serial.Print(thisDurationPin);
Serial.println ("durationStateFound = 0');
thisDurationPin ++;
}

}

thisDurationLength = thisDurationPin;
Serial.Print ("thisDurationLength:");
durationLength = durationLengths [thisDurationLength];
Serial.println(durationLength);
durationLength = durationLength * 1000;

thisDurationPin = 0;

pinnen uitschakelen om energie te besparen
voor (int thisRepPin = 0; thisRepPin < repPinCount; thisRepPin ++) {}
digitalWrite (repPins [thisRepPin], laag); uitschakelen van alle rep pinnen
}
Serial.println ("rep-pins uitgeschakeld");
voor (int thisDurationPin = 0; thisDurationPin < durationPinCount; thisDurationPin ++) {}
digitalWrite (durationPins [thisRepPin], laag); uitschakelen van alle duur pinnen
}
Serial.println ("duur-pins uitgeschakeld");

nu op naar de oefeningen

voor (int count = 0; graaf < repNumber; count ++) {//repeat deze cyclus zo vaak als er herhalingen zijn
delay(durationLength-flashTime); wachten op de duur lengte minus de tijdsduur voor het countown knippert

for (int i = 0; ik < flashRep; i ++) {//do het aftellen knippert
digitalWrite (LEDPin, laag);
delay(flashOff);
digitalWrite (LEDPin, hoge);
delay(flashOn);
digitalWrite (LEDPin, laag);
dat rep is nu voltooid

}
Serial.println(Count+1); Hoeveel herhalingen hebben wij gedaan?
de motor voor een overgang Buzz
digitalWrite (buzzPin, hoge);
delay(changeover);
digitalWrite (buzzPin, laag);

} //end van verzameling

lange buzz te signaleren het einde van de set
digitalWrite (buzzPin, hoge);
delay(7000);
digitalWrite (buzzPin, laag);

de LED flitser dus het einde van de set - signaal wanneer u dit hebt uitgeschakeld of een andere set start zien
terwijl (waar) {}
digitalWrite (LEDPin, hoge);
delay(500);
digitalWrite (LEDPin, laag);
delay(1000);
}

} //end lus

Gerelateerde Artikelen

Het bijhouden van de zon! Voor de zonne-accumulatie Barbecue

Het bijhouden van de zon! Voor de zonne-accumulatie Barbecue

de zon beweegt langs de hemel op 15 graden per uur. Als automatisch we het met onze zonne-kooktoestellen en zonnepanelen volgen konden, zouden ze veel meer energie absorberen.Hier is een idee van hoe het te doen die uw verbeelding kan vonk.
Het gebruik van Microsoft Excel 2010 voor het bijhouden van de Percentages van de categorieën

Het gebruik van Microsoft Excel 2010 voor het bijhouden van de Percentages van de categorieën

het doel van deze instructies wordt u door lopen stap voor stap op hoe te om uw eigen persoonlijke Excel-werkblad waarmee u kunt bijhouden van percentages van verschillende dingen.Stel dat u wilt om ervoor te zorgen dat u een gezonde balans van eiwit
Het bijhouden van een lichtbron met een Actuator

Het bijhouden van een lichtbron met een Actuator

.. .of misschien het moet worden genoemd "Met behulp van een oude zonnecel van een volledig gecorrodeerde tuin licht als een lichtsensor". :)In dit instructable, ik bouwen op mijn vorige en Toon u hoe kun je een actuator vinden de grootste licht
Mods aan het hulpmiddel van de Home Depot instellen SKU # 649170

Mods aan het hulpmiddel van de Home Depot instellen SKU # 649170

Slechts een paar mods aan de reeds uitstekende Home Depot Tool Set SKU # 649170.Snelle synopsis:Extra mes messen uit doos nemen en hen veilig binnen mesTape naar beneden de tabbladen in de doos en deksel gat mes met papier en tape.Zet verschillende g
Hoe levensduur van kleding en het bijhouden van het gebruik ervan in een kleine kast

Hoe levensduur van kleding en het bijhouden van het gebruik ervan in een kleine kast

soms je draagt iets en je niet zweet. U kunt het opnieuw dragen zonder te wassen. Het is beter voor het milieu, het bespaart u geld, het zal ook zorgen dat uw kleding laatst een beetje langer. Hier is een gemakkelijke manier om het bijhouden van arti
BB8 gebouwd met Lego Star Wars-delen... En nog het beweegt aan het einde van deze tutorial

BB8 gebouwd met Lego Star Wars-delen... En nog het beweegt aan het einde van deze tutorial

Ik had dit model Lego ideeën ingezondenhttps://Ideas.Lego.com/projects/127584Als je deze Lego-versie van BB8, please vote voor dit project.Log in met uw sociale media-accounten voor het stemmen.Merci te miljoen!Ik keek "Een nieuwe hoop" in 1977
Verwijder de willekeurige links aan het einde van uw video.

Verwijder de willekeurige links aan het einde van uw video.

Met al het harde werk die u in het maken van een Instructable zet, is er geen reden om niet toe te voegen een eenvoudige 6 HTML-code van het teken in elke video-link dat u insluiten. Stoppen met het weergeven van andermans video's aan het einde van u
5 gemakkelijke stappen aan het maken van een levende succulente krans

5 gemakkelijke stappen aan het maken van een levende succulente krans

U kunt het maken van deze prachtige krans in 5 eenvoudige stappen en minder dan een uur!Stap 1:Zoals u weet, ben ik een sappige maniak. Ik heb veel van hen in mijn tuin en in potten geplant. Ik springen op de kans om iets met behulp van deze interess
Hoe aan het licht van uw 3D-Printer

Hoe aan het licht van uw 3D-Printer

De titel is enigszins misleidend... de juiste lange is had moeten zijn:Hoe u een RGB LED strip koppelt aan uw RepRapr Prusa i3 3D Printer acryl Framevoor beter/prachtige verlichtingAnyway, dit instructable begeleidt u door het proces van verlichting
Een verschillende manier aan het dieet van Daniël: gezonde voeding van de Bijbel

Een verschillende manier aan het dieet van Daniël: gezonde voeding van de Bijbel

heb ik een dieet dat lijkt op wat Daniel aten tijdens zijn tijd in Babylon ontworpen. De recepten heb ik gegeven lijst dingen die niet hieronder maar kan worden verwijderd als u wilt. Het is gebaseerd op niet de exacte dezelfde. Ik ben niet perfect.
"Kiteman" aan het einde van uw vingertop!

"Kiteman" aan het einde van uw vingertop!

Heb je niet altijd wilde uw zeer eigen "Kiteman" vinger marionet aan het einde van uw vingertop, klaar om te doen uw elke gril?. Hij verdubbelt ook als decoratie voor het einde van je potlood? Breng hem terug naar school - verbaas uw vrienden.Go
Zeer gemakkelijke stappen aan het maken van een enkele Band Rainbow armband op een zeer korte Loom

Zeer gemakkelijke stappen aan het maken van een enkele Band Rainbow armband op een zeer korte Loom

eigenlijk kun je dit met een lomom, maar ik had alleen dit: P. zeer gemakkelijk. Ik maakte deze formule op mijn eigen :)!Stap 1: Benodigdheden eerste foto - het zeer kleine weefgetouwtweede foto-u kunt elke stok, die heeft een haak in.derde foto-u ku
LED licht tape aan het licht van de borst van een donkere kleren

LED licht tape aan het licht van de borst van een donkere kleren

zoals ik vóór mijn vrouw opstaan en niet storen haar wilt door het inschakelen van de lichten, kleren te selecteren uit de schappen binnen mijn kleren borst is getroffen of missen.  Zelfs wanneer de lichten zijn op, is het donker in daar.  Ik gebruik
8 interieur ontwerpen geheimen aan het vernieuwen van een kamer

8 interieur ontwerpen geheimen aan het vernieuwen van een kamer

8 interieur ontwerpen geheimen aan het vernieuwen van een kamerHome decor beschikt niet over een harde en snelle regels of wetten al zijn er een paar principes die worden gevolgd door de meeste ontwerpers om geweldige resultaten te krijgen. Hier is e