const int sampleWindow = 50; // Sample window width in mS (50 mS = 20Hz) unsigned int sample; void setup() { Serial.begin(9600); pinMode(3, OUTPUT); pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(10, OUTPUT); pinMode(11, OUTPUT); pinMode(2, INPUT_PULLUP); } void loop() { int value = digitalRead(2); //Serial.println(value); if (value == 1) { digitalWrite(3, LOW); digitalWrite(5, LOW); digitalWrite(6, LOW); digitalWrite(10, LOW); digitalWrite(11, LOW); } else { for(int i=1; i<6; i++){ for (int fadeValue=0; fadeValue<=255; fadeValue+=5){ analogWrite(5, fadeValue); analogWrite(10, fadeValue); analogWrite(3, fadeValue); delay(30); } for (int fadeValue=255; fadeValue>=0; fadeValue-=5){ analogWrite(6, fadeValue); analogWrite(11, fadeValue); delay(30); } delay(50); for (int fadeValue=255; fadeValue>=0; fadeValue-=5){ analogWrite(3, fadeValue); analogWrite(6, fadeValue); analogWrite(11, fadeValue); delay(30); } for (int fadeValue=0; fadeValue<=255; fadeValue+=5){ analogWrite(5, fadeValue); analogWrite(10, fadeValue); delay(30); } delay(50); } } //test start unsigned long startMillis= millis(); // Start of sample window unsigned int peakToPeak = 0; // peak-to-peak level unsigned int signalMax = 0; unsigned int signalMin = 1024; // collect data for 50 mS while (millis() - startMillis < sampleWindow) { sample = analogRead(0); if (sample < 1024) // toss out spurious readings { if (sample > signalMax) { signalMax = sample; // save just the max levels } else if (sample < signalMin) { signalMin = sample; // save just the min levels } } } peakToPeak = signalMax - signalMin; // max - min = peak-peak amplitude double volts = (peakToPeak * 5.0) / 1024; // convert to volts if (volts>0.8){ Serial.println(volts); } if (volts<0.7) { digitalWrite(3, LOW); digitalWrite(5, LOW); digitalWrite(6, LOW); digitalWrite(10, LOW); digitalWrite(11, LOW); } else { for(int i=1; i<6; i++){ for (int fadeValue=0; fadeValue<=255; fadeValue+=5){ analogWrite(5, fadeValue); analogWrite(10, fadeValue); analogWrite(3, fadeValue); delay(30); } for (int fadeValue=255; fadeValue>=0; fadeValue-=5){ analogWrite(6, fadeValue); analogWrite(11, fadeValue); delay(30); } delay(50); for (int fadeValue=255; fadeValue>=0; fadeValue-=5){ analogWrite(3, fadeValue); analogWrite(6, fadeValue); analogWrite(11, fadeValue); delay(30); } for (int fadeValue=0; fadeValue<=255; fadeValue+=5){ analogWrite(5, fadeValue); analogWrite(10, fadeValue); delay(30); } delay(50); } } }