/* Tagtool - Arduino 2 Nodekit V02 */ int pinS1 = 0; int pinS2 = 1; int pinS3 = 2; int pinS4 = 3; int pinS5 = 4; int pinS6 = 5; static const int avgCount = 6; int valS1, valS2, valS3, valS4, valS5, valS6 = 0; int arr1[avgCount]; int arr2[avgCount]; int arr3[avgCount]; int arr4[avgCount]; int arr5[avgCount]; int arr6[avgCount]; int pinButton = 7; int valButton = 0; int i; int index = 0; /** * Average the values in the averaging arrays */ void avg() { valS1 = valS2 = valS3 = valS4 = valS5 = valS6 = 0; for(i = 0; i < avgCount; i++) { valS1 += arr1[i]; valS2 += arr2[i]; valS3 += arr3[i]; valS4 += arr4[i]; valS5 += arr5[i]; valS6 += arr6[i]; } valS1 /= avgCount; valS2 /= avgCount; valS3 /= avgCount; valS4 /= avgCount; valS5 /= avgCount; valS6 /= avgCount; } void setup() { // reset averageArrays for (i = 0; i < avgCount; i++) { arr1[i] = 0; arr2[i] = 0; arr3[i] = 0; arr4[i] = 0; arr5[i] = 0; arr6[i] = 0; } index = 0; // start serial port at 9600 bps: Serial.begin(9600); } void loop() { // if we get a valid byte, read analog ins: byte request; //Serial.print(10); if (Serial.available() > 0) { request = Serial.read(); if(request == 'A') { valButton = digitalRead(pinButton); // read input value from the Pushbutton // out actual values into the averaging arrays arr1[index] = analogRead(pinS1); arr2[index] = analogRead(pinS2); arr3[index] = analogRead(pinS3); arr4[index] = analogRead(pinS4); arr5[index] = analogRead(pinS5); arr6[index] = analogRead(pinS6); // increment index -> if index exceeds array sizes reset to zero index++; if (index >= avgCount) { index = 0; } // calculate average values avg(); delay(10); // Slider 1 Serial.print(valS1 / 4, BYTE); // Slider 2 Serial.print(valS2 / 4, BYTE); // Slider 3 Serial.print(valS3 / 4, BYTE); // Slider 4 Serial.print(valS4 / 4, BYTE); // Slider 5 Serial.print(valS5 / 4, BYTE); // Slider 6 Serial.print(valS6 / 4, BYTE); // Pushbutton Serial.print(valButton * 255, BYTE); } else if(request == 'N') { Serial.print("Tagtool.Controller"); } } }