RepWrap - anordning för att hålla reda på längd och upprepningar för sjukgymnastik övningar (breadboarded prototyp) (1 / 2 steg)

Steg 1: Koden




Koden bygger Arduino dokumentation som

Knight Rider 2 för att använda matriser för pin uppställningar
Knappen var vad jag letade efter redan i början (not till mig själv: för v2 bör nog lägga ett motstånd mellan GND och de flygande leder...)

Hämta filen physio.pde (eller kopiera koden nedan) och ladda upp till din Arduino mikrokontroller på vanligt sätt.

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

Vibration motor kopplad till stift 12
LED bifogas stift 13
Upprepning stift 2-6
Längd stift 7-11

*/

variabler:

int repNumbers [5] = {//array lagra ett urval av upprepning värden
10,12,20,24,30}.

int repPins [] = {
2, 3, 4, 5, 6}; en matris med pin-koder som rep knappar är kopplad
int repPinCount = 5; antalet rep alternativ (dvs. längden på arrayen)

int durationLengths [5] = {//array lagra ett urval av varaktighet/håll värden i sekunder
10,12,15,20,30}.

int durationPins [] = {
7, 8, 9, 10, 11}; en matris med pin-koder till vilken varaktighet knappar är kopplade

int durationPinCount = 5; antalet varaktighet alternativ (dvs. längden på arrayen)

blinkar används som en indikation på att håll varar nästan över
int flashOn = 750; längden av tid countdown blinkar senast för
int flashOff = 250; lång tid countdown blinkar bort för
int flashRep = 3; ingen av blixtar
int flashTime = (flashRep*(flashOn+flashOff));

int övergången = 3000; längden av tid mellan reps, millisekunder

int repState = 0; variabel för att läsa selector status
int durationState = 0; variabel för att läsa selector status

int thisRepPin = 0; andra variabler
int thisDurationPin = 0;
int thisRepNumber = 0;
int thisDurationLength = 0;
int repNumber = 0;
int durationLength = 0;
int repStateFound = 0;
int durationStateFound = 0;

konstanter:
CONST int buzzPin = 12; numrera av summern pin
CONST int LEDPin = 13. antal LED stift

void setup() {
initiera pins som ett resultat:
pinMode (LEDPin, OUTPUT);
pinMode (buzzPin, produktionen);

int thisRepPin;
vektorelement numreras från 0 till (pinCount - 1).
använda en for-loop att initiera varje stift som en utgång:
för (int thisRepPin = 0; thisRepPin < repPinCount; thisRepPin ++) {
pinMode (repPins [thisRepPin], ingång); Ange PIN-kod till insatsen
digitalWrite (repPins [thisRepPin], hög); slå på inre pullup motstånd
pinMode (repPins [thisRepPin], produktionen); Ställ in pinkodsskydd att produktionen
}

int thisDurationPin;
vektorelement numreras från 0 till (pinCount - 1).
använda en for-loop att initiera varje stift som en utgång:
för (int thisDurationPin = 0; thisDurationPin < durationPinCount; thisDurationPin ++) {
pinMode (durationPins [thisDurationPin], ingång); Ange PIN-kod till insatsen
digitalWrite (durationPins [thisDurationPin], hög); slå på inre pullup motstånd
pinMode (durationPins [thisDurationPin], produktionen); Ställ in pinkodsskydd att produktionen
}

Serial.BEGIN(9600); Öppna den seriella porten på 9600 bps
} //end ställa in

void loop() {

Starta signal
för (int jag = 0; jag < flashRep; i ++) {
digitalWrite (LEDPin, låg);
Delay(flashOff);
digitalWrite (LEDPin, hög);
Delay(flashOn);
digitalWrite (LEDPin, låg);
}
digitalWrite (buzzPin, hög);
Delay(changeover);
digitalWrite (buzzPin, låg);

Läs Rep stift, när du hittar en som är låg, som är den som har valts
thisRepPin = 0;
repStateFound = 0;
While(repStateFound==0) {
repState=digitalRead(repPins[thisRepPin]);
om (repState == låg) {//has varit ansluten till marken
repStateFound = 1;
Serial.Print(thisRepPin);
Serial.println ("repStateFound = 1");
}
om (repState == hög) {
repStateFound = 0;
Serial.Print(thisRepPin);
Serial.println ("repStateFound = 0");
thisRepPin ++;
}

}

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

Läs varaktighet stiften, när du hittar en som är låg, som är den som har valts
thisDurationPin = 0;
durationStateFound = 0;
While(durationStateFound==0) {
durationState=digitalRead(durationPins[thisDurationPin]);
om (durationState == låg) {
durationStateFound = 1;
Serial.Print(thisDurationPin);
Serial.println ("durationStateFound = 1");

}
om (durationState == hög) {
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;

stänga stift för att spara ström
för (int thisRepPin = 0; thisRepPin < repPinCount; thisRepPin ++) {
digitalWrite (repPins [thisRepPin], låg); Stäng av alla rep stift
}
Serial.println ("rep stift avstängd");
för (int thisDurationPin = 0; thisDurationPin < durationPinCount; thisDurationPin ++) {
digitalWrite (durationPins [thisRepPin], låg); Stäng av alla varaktighet stift
}
Serial.println ("varaktighet pins avstängd");

nu till övningar

för (int count = 0; räkna < repNumber; räkna ++) {//repeat denna cykel så många gånger som det finns upprepningar
Delay(durationLength-flashTime); vänta på den längd längden minus tiden för countown blinkar

för (int jag = 0; jag < flashRep; i ++) {//do nedräkningen blinkar
digitalWrite (LEDPin, låg);
Delay(flashOff);
digitalWrite (LEDPin, hög);
Delay(flashOn);
digitalWrite (LEDPin, låg);
att rep är nu klar

}
Serial.println(Count+1); Hur många reps har vi gjort?
Buzz motorn för en övergång
digitalWrite (buzzPin, hög);
Delay(changeover);
digitalWrite (buzzPin, låg);

} //end av set

långa buzz till slutet på uppsättningen
digitalWrite (buzzPin, hög);
Delay(7000);
digitalWrite (buzzPin, låg);

Flash LED signal så slutet av set - när du ser detta måste du stänga eller starta en annan uppsättning
medan (sant) {
digitalWrite (LEDPin, hög);
Delay(500);
digitalWrite (LEDPin, låg);
Delay(1000);
}

} //end loop

Se Steg
Relaterade Ämnen

Betongfundament att hålla saker på plats + misstag och lektionerna lärt sig

Betongfundament kan användas för olika saker som att hålla i spotlights, pumpar, ljus och saker som krävs för en bas att stå på plats. Jag var tvungen att göra konkreta lampor främst för mina lampor och dränkbar pump som de inte skulle hålla den posi...

Hur att hålla reda på dina medarbetares dator utan att passera gränsen

Absolut har du ingen aning om vad dina anställda håller på med, även om de verkar fungera på webben? Är du orolig att dina anställda slösar tid på sina system genom att titta på video på YouTube och lägga tid på Facebook? Ja, kan saker vara mycket vä...

6 bröllop planering förslag att hålla dig glad

Anteckningar av saker som gick väl (som kan hjälpa). Du kan se vad vi gjorde och stjäla något som flyter din båt.Några saker om vår situation:-Vi planerar ett bröllop tusentals mil från antingen familj, så att hitta sätt att hålla våra familjer ingår...

Hur att hålla liv i ett hus växten

att hålla växter vid liv inomhus kan visa sig nästan omöjligt att några, men det är verkligen inte så svårt att göra. Växter behöver ljus, vatten, stöd, näringsämnen och en tillräcklig lufttillförsel.Som allt här i världen, stora mängder av varje en...

Med Repetier värd att ställa upp din Automatisk horisontering sond och skapa din första Print med Delta rostock mini

Idag kommer vi att dela hur Repetier värd att ställa upp din AutoLeveling sond och skapa din första Print med Delta rostock miniSteg 1: Anslut USB till din Rostock mini G2 eller G2s och driva upp. Du kan se LED-lampor och fläkt kommer till liv, du ka...

Att hålla din ekonomi i ordning – i personlig & näringslivet

pengar är konstiga saker. Det är komplicerat, oförutsägbar och kan också vara helt överväldigande. Det är nästan som mer din prova och förstå det desto svårare är det att få huvudet runt den. Det är inte helt sant om; Det finns många sätt att tjäna p...

Hur att hålla möss ur din bil

när vädret blir kallare, möss och råttor börja leta efter sätt att hålla värmen. Innan du hittar en oväntad och dyr överraskning i din bil, Följ dessa tips för att hålla möss, råttor och andra gnagare bort. För fler gnagare kontroll tips, Klicka här....

Ett bättre sätt att hålla sömnad Pins mitten av projektet (eller närhelst, verkligen)

jag har aldrig mycket vårdas med pin kuddar. De vill alltid glider ifrån mig när jag försökte infoga en PIN-kod när mitt i sömmar, eller jag skulle behöva göra några obekväma en hand hastigt för att få en PIN-kod medan du håller bitar av mitt projekt...

Rätt sätt att ställa in en Bearded Dragon inhägnad

Under hela Instructables har jag märkt att folk kastar ut fel information på skäggiga drakar! verkligen dödar mig att se att folk talar om för att sätta saker bredvid där draken som kan avskilja skada den eller döda den. Snälla, även för detta Instru...

Misslyckade projekt: Att hålla sniglar bort från en köksträdgård

när odla egna grönsaker på en av utmaningarna är att hålla rovdjur från frukter och leafage. En fruktad varelse i detta sammanhang är snigeln. Detta Instructable dokument ett fruktlöst försök att vägra dessa djur tillgång till köksträdgården med hjäl...

PVC VISE ADAPTER - för att hålla röret

min vise har backar som var utformade för att hålla platta material, inte runt röret. Korten jag gjort hålla röret mer säkert och utan att skada röret. Jag gjorde adaptrar för olika storlekar av röret.Korten är lätta att sätta på vise och att ta bort...

Tips för att bära lång livslängd, röda läppstift

Jag älskar bär rött läppstift, och mina vänner frågar alltid mig hur jag hålla pigment så rik, även när jag äter. Jag brukade säga till dem, "dess magi." De trott aldrig mig. Så här är jag nu, dela detta med världen. Jag har sett denna teknik in...

Säkerhetskopiera: Tre alternativ att hålla dina Data säkra

Säkerhetskopiering av data är mycket viktigt i dagens teknikdrivna världen. Känslig information, viktiga dokument, filer eller rapporter går ibland vilse. När detta händer, sparar med en kopia lagras på molnet eller på en extern hårddisk du massor av...

Att hålla din kycklingar säker på natten med de små lysdioderna oh så ljus

de flesta av oss gillar att äta kyckling, men även om du inte detta kan komma som någon överraskning: allt annat ut det gör. Så om du är som mig och vill hålla en liten flock frigående kycklingar runt bara för färska ägg (och tillfällig färska, kemik...

En diet som verkligen fungerar och inte är svårt att hålla.

Låter som en dröm gå i uppfyllelse?Låter som alla andra fordringar? (måste du betala för dem och det är gratis)En kost som har verklig forskning bakom detSlutligen en kost som kan och bör göra det möjligt för dig att leva längre och friskare.Läsa påS...

Aluminiumfolie har Box flikar att behålla rullen

Det finns bitar av information som när du upptäcker, du tror "Varför inte jag veta det?" Eller ännu bättre, "varför"de"berätta inte?" "De" såg till att vi visste att Pluto var en planet längre. "De" såg ti...

Hur att hålla hund ute om din gård (eller någon annan)

människans bästa vän; De älskar oss så mycket att de går ut i deras sätt att befrukta våra gräsmattor med de färskaste saker tillgängliga. Du kan inte köpa kvalitet som det på den lokala plantskolan! Jag älskar hundar men få saker är mer frustrerande...

Naturliga Tick myggmedel och Tips för att hålla fästingar bort

för några månader sedan min flickvän och jag tog vår hund Tucker och gick Geocaching i skogen nära vårt hus. Vi hade en bra dag att hitta cachar och handel godsaker, men när det var dags för att gå hem för dagen märkte vi en massa små svarta och röda...

Att hålla farfars såg levande

Jag hittade denna lilla hand såg i min farfars verkstad och visste att jag var tvungen att spara den och föra den tillbaka till livet. Det är perfekt storlek för min skala av arbete och skulle vara den första panelen såg i min samling. Det faktum att...