//Include Libraries// #include #include #include //create an RF24 object// RF24 radio(7, 6); // CE, CSN //Potentiometer Setup// int const potPin1 = A0; int const potPin2 = A1; int const muscleSensor = A2; int const potPin4 = A3; int const switchPin = A4; //address through which two modules communicate.// const byte address[6] = "00005"; //Array and direction// int Array[11]; int dir; //Data smoothing varibales// int potPin1Reads[numReadings]; int potPin2Reads[numReadings]; int muscleReads[numReadings]; int potPin4Reads[numReadings]; int potPin1Average = 0; int potPin2Average = 0; int potPin4Average = 0; int muscleAverage = 0; int potPin1Tot = 0; int potPin2Tot = 0; int muscleTot = 0; int potPin4Tot = 0; int index = 0; int const numReadings = 10; void setup() { //Radio Setup// radio.begin(); radio.openWritingPipe(address); radio.stopListening(); radio.setPALevel(RF24_PA_MIN); Serial.begin(9600); //Button and switch setup// pinMode(9,INPUT); pinMode(8,INPUT); pinMode(5,INPUT); pinMode(4,INPUT); pinMode(3,INPUT); pinMode(2,INPUT); //Setup for data smoothing// for (int thisReading = 0; thisReading < numReadings; thisReading++){ potPin1Reads[thisReading] = 0; potPin2Reads[thisReading] = 0; muscleReads[thisReading] = 0; potPin4Reads[thisReading] = 0; } } void loop(){ //Smooth out analog values; It takes an array of values and averages them to get more precise readings from sensors// potPin1Tot = potPin1Tot - potPin1Reads[index]; potPin2Tot = potPin2Tot - potPin2Reads[index]; muscleTot = muscleTot - muscleReads[index]; potPin4Tot = potPin4Tot - potPin4Reads[index]; potPin1Reads[index] = analogRead(potPin1); potPin2Reads[index] = analogRead(potPin2); muscleReads[index] = analogRead(muscleSensor); potPin4Reads[index] = analogRead(potPin4); potPin1Tot = potPin1Tot + potPin1Reads[index]; potPin2Tot = potPin2Tot + potPin2Reads[index]; muscleTot = muscleTot + muscleReads[index]; potPin4Tot = potPin4Tot + potPin4Reads[index]; index = index + 1; if (index >= numReadings) index = 0; potPin1Average = potPin1Tot / numReadings; potPin2Average = potPin2Tot / numReadings; muscleAverage = muscleTot / numReadings; potPin4Average = potPin4Tot / numReadings; //Sets all the values of the averages and digital reads into an array to send to the arm// Array[0] = potPin1Average; Array[1] = potPin2Average; Array[2] = muscleAverage; Array[3] = potPin4Average; Array[4] = digitalRead(3); Array[5] = digitalRead(9); Array[6] = digitalRead(8); Array[7] = digitalRead(5); Array[8] = digitalRead(2); Array[9] = digitalRead(4); Array[10] = analogRead(switchPin); //Serial print to analyze all the values// Serial.print(" PotVal_1: "); Serial.print(Array[0]); Serial.print(" PotVal_2: "); Serial.print(Array[1]); Serial.print(" PotVal_3: "); Serial.print(Array[2]); Serial.print(" PotVal_4: "); Serial.print(Array[3]); Serial.print(" Button_1: "); Serial.print(Array[4]); Serial.print(" Button_2: "); Serial.print(Array[5]); Serial.print(" Button_3: "); Serial.print(Array[6]); Serial.print(" Button_4: "); Serial.print(Array[7]); Serial.print(" Button_5: "); Serial.print(Array[8]); Serial.print(" Button_6: "); Serial.print(Array[9]); Serial.print(" Switch: "); Serial.println(dir); //Sends the array of values to the arduino mega// radio.write(&Array,sizeof(Array)); delay(10); }