Pulse Necklace 15Nov2009
Jump to navigation
Jump to search
Hack Notes, pulse choker, Nov 15th, 2009
TENS Pad Electrodes
Op-Amp Experiment
Oscillascope Code
We got amazing code for a virtual Arduino oscilloscope from Poorman's oscilloscope and juse changed the serial port name to correspond to either Eric's or mine cable:
// Pulse Choker // Chung-Hay and Eric // Oct 1st, 2009 // Control 5 different lines of LEDs based on EKG // Center top line is 5V shared across all LEDs // EKG input pin = pin 2 int OuterTwosLeft = 13; // Left, right w/r/t to viewer, not wearer int MiddleLeft = 12; int CenterGrd = 11; int MiddleRight = 10; int OuterTwosRight = 9; int val = 0; int minval = 10000; int maxval = 0; float avg = 160; // common value, better than initing to zero float stdev = 40; int i; void setup() { pinMode(OuterTwosLeft, OUTPUT); pinMode(OuterTwosRight, OUTPUT); pinMode(MiddleLeft, OUTPUT); pinMode(MiddleRight, OUTPUT); pinMode(CenterGrd, OUTPUT); digitalWrite(OuterTwosLeft, 1); digitalWrite(OuterTwosRight, 1); digitalWrite(MiddleLeft, 1); digitalWrite(MiddleRight, 1); digitalWrite(CenterGrd, 1); Serial.begin(57600); // setup serial } void loop() { /* digitalWrite(OuterTwosLeft, 1); delay(500); digitalWrite(OuterTwosRight, 1); delay(500); digitalWrite(MiddleLeft, 1); delay(500); digitalWrite(MiddleRight, 1); delay(500); digitalWrite(CenterGrd, 1); delay(500); digitalWrite(OuterTwosLeft, 0); delay(500); digitalWrite(OuterTwosRight, 0); delay(500); digitalWrite(MiddleLeft, 0); delay(500); digitalWrite(MiddleRight, 0); delay(500); digitalWrite(CenterGrd, 0); delay(500); */ val = 0; for (i=0; i < 8; i++) { val += analogRead(2); // read the input pin } val = val/8; if (val > maxval) maxval = val; if (val < minval) minval = val; avg = avg*99.0/100.0 + (float)val/100.0; stdev = sqrt ((stdev*99.0/100.0)*(stdev*99.0/100.0) + ((float)val-avg)*((float)val-avg)/100); Serial.print(val); Serial.print(" "); Serial.print(minval); Serial.print(" "); Serial.print(maxval); // debug value Serial.print(" "); Serial.print(avg); Serial.print(" "); Serial.println(stdev); if (val < (avg-stdev)) { // Serial.println(val); // debug value digitalWrite(OuterTwosLeft, 0); // 0 = lit // this LED not working, unless you push down at wire connection area digitalWrite(OuterTwosRight, 0); digitalWrite(CenterGrd, 0); // this LED not working digitalWrite(MiddleLeft, 0); digitalWrite(MiddleRight, 0); // this LED not working } else { digitalWrite(OuterTwosLeft, 1); // 1 = off digitalWrite(OuterTwosRight, 1); digitalWrite(CenterGrd, 1); digitalWrite(MiddleLeft, 1); digitalWrite(MiddleRight, 1); } //Serial.println("test"); }