Soldriven pulsmätare (5 / 14 steg)
Steg 5: Testa puls Sensor styrelsen...
Det är mycket lätt, även för nybörjare i Arduino. I det här steget kommer vi visualisera HR (puls) sensorn utgång med ett datorprogram, gjorts i bearbetningen. Detta kommer att hjälpa oss att ändra koden för att räkna pulsen. Följ dessa steg:
- Ladda upp "AnalogReadSerial" skissen till din Arduino ombord. Du hittar det i filen > exempel > grunderna.
- Öppna programmet bearbetning. Kopiera koden nedan och klistra in den i den behandling fönstret.
- Anslut HR sensor styrelsen till Arduino: pins till + 5v och 0och data utdata till A0 av Arduino.
- Kör programmet bearbetning genom att klicka på knappen "spela" i övre vänstra hörnet.
Här får du ett diagram över seriell värdena kommer från Arduino. I figuren, X-axeln är tid, Y-axeln är seriell värdet. Största värdet på Y-axeln är 1023 (överst i diagrammet) och lägsta är 0 (längst ner). När ingen finger placeras får du ganska godtyckliga värden, men du är finger utan att flytta kommer att skapa en ren "hjärtslag" i diagrammet, som visas i bilden ovan.
Om du bara ville visualisera dina hjärtslag, kan du sluta här. Men för att gå vidare, du måste räkna ut ett visst "tröskel" värde, att, om korsade, Arduino kommer att känna igen som ett beat. Olika HR sensorer kan behöva olika tröskelvärden.
För mig, har jag satt värdet på 200.
Se denna video för demonstration av visualisera hjärtslag...
Här är koden för programmet bearbetning ...
import processing.serial.*;
Seriella myPort; Den seriella porten
int xPos = 1; horisontellt läge av grafen
Variabler för att dra en kontinuerlig linje.
int lastxPos = 1;
int lastheight = 0;
Ogiltiga inställningar () {
Ange fönstrets storlek:
storlek (600, 400);
Lista över alla tillgängliga seriella portar
println(Serial.list());
Kontrollera de angivna seriella portarna i din maskin
och använda rätt index nummer i Serial.list() [].
myPort = ny följetong (denna, Serial.list() [6], 9600); //
En serialEvent() skapas när ett radmatningstecken tas emot:
myPort.bufferUntil('\n');
Background(0); Ange inledande bakgrund:
}
void Rita () {
allt händer i serialEvent()
}
void serialEvent (Serial myPort) {
få den ASCII-strängen:
InString sträng = myPort.readStringUntil('\n');
om (inString! = null) {
inString = trim(inString); trim av blanktecken.
flyta inByte = float(inString); konvertera till ett tal.
inByte = karta (inByte, 0, 1023, 0, höjd); karta till skärmhöjd.
Rita en linje från senaste inByte till den nya.
stroke(255,255,255); Linjefärg
strokeWeight(1); stroke bredare
linje (lastxPos, lastheight, xPos, höjd - inByte);
lastxPos = xPos;
lastheight = int(height-inByte);
vid kanten av fönstret, gå tillbaka till början:
om (xPos > = bredd) {
xPos = 0;
lastxPos = 0;
Background(0,123,255); Rensa skärmen.
}
annat {
öka den vågräta positionen:
xPos ++;
}
}
}