Sunday, November 17, 2013

Progress Update: Week of Nov. 11th

This week, the week of November 11th, our group has made significant progress on our project. We met on Thursday, November 14th and decided to work on sections individually and then compile the work. We have finalized the design for the motor housing piece in SolidWorks and posted it to the blog. We also have begun the coding for the operation of the mechanism using the Arduino Board. This is just a basic code to start off and its purpose is to make the push buttons correspond with the LEDs. The construction of the wiring on the Arduino Board was also started this week, and the group has begun to understand how we plan to wire our mechanism. Furthermore, here is a link to the code thus far: https://github.com/RubeGoldberg/22.201-802-ChrisPeterEddie/wiki/Intial-Code#include--1, to comment on or if you have suggestions. It is also listed below.

______________________________________________________________________________


#include <LiquidCrystal.h>
#include <Servo.h>
LiquidCrystal lcd(5,4,3,2,1,0);     // Intializing the LCD screen's pin connection
const int ledPin13 = 13;            // Intializing each LED's pin connection
const int ledPin12 = 12;     
const int ledPin11 = 11;   
const int ledPin10 = 10;   
int loopCounter = 0;               // Intializing a loop counter
int Mode = 0;                      // Intializing the mode of each sub-system
int switchPin9 = 9;                // Intializing switch pin values
int switchPin8 = 8;
int switchPin7 = 7;
int switchPin6 = 6;
int buttonState1;                  // Intializing the button's state
int buttonState2;       
int buttonState3;       
int buttonState4;       
int value1;                        // Intializing debounce values
int value2; 
int value3;
int value4;
int value5;
int value6;
int value7;
int value8;

void setup() {
  
  buttonState1 = digitalRead(switchPin9);     // Reads the swithch pins
  buttonState2 = digitalRead(switchPin8);   
  buttonState3 = digitalRead(switchPin7);   
  buttonState4 = digitalRead(switchPin6);   
                                             
  pinMode(switchPin9, INPUT);                 // Set the switch pins as input
  pinMode(switchPin8, INPUT);                 
  pinMode(switchPin7, INPUT);                 
  pinMode(switchPin6, INPUT);                
  pinMode(ledPin13, OUTPUT);                  // LEDs are set as output
  pinMode(ledPin12, OUTPUT);
  pinMode(ledPin11, OUTPUT);
  pinMode(ledPin10, OUTPUT);
  
  lcd.begin(16,2);
  lcd.clear();
     
  Serial.begin(9600);
}

void loop(){
  
  value1 = digitalRead(switchPin9);           // Read input value and store it
  delay(10);                                  // 10 milliseconds delay
  value2 = digitalRead(switchPin9);           // Reads the input again to check for bounces
  if (value1 == value2) {                     // Make sure intial readings are consistant
    if (value1 != buttonState1) {             // The button's state changed
      if (value1 == LOW) {                    // Check if button is pressed, then flip mode after use
        if (Mode == 0) {                
            Mode = 1;                     
           } else {                     
               Mode = Mode;                  
             }        
      }
    }
  buttonState1 = value1;                      // Saves the new state of the variable
  } 
  value3 = digitalRead(switchPin8);           // Read input value and store it
  delay(10);                                  // 10 milliseconds delay
  value4 = digitalRead(switchPin8);           // Reads the input again to check for bounces
  if (value3 == value4) {                     // Make sure intial readings are consistant
    if (value3 != buttonState2) {             // The button's state changed
      if (value3 == LOW) {                    // Check if button is pressed, then flip mode after use
        if (Mode == 1) {                
            Mode = 2;                     
        } else {                     
            Mode = Mode;                 
          }
      }
    }
  buttonState2 = value3;                      // Saves the new state in our variable
  }
  value5 = digitalRead(switchPin7);           // Read input value and store it
  delay(10);                                  // 10 milliseconds delay
  value6 = digitalRead(switchPin7);           // Reads the input again to check for bounces
  if (value5 == value6) {                     // Make sure intial readings are consistant
    if (value5 != buttonState3) {             // The button's state changed
      if (value5 == LOW) {                    // Check if button is pressed, then flip mode after use
        if (Mode == 2) {             
            Mode = 3;                      
        } else {                     
            Mode = Mode;                   
          }
      }
    }   
  buttonState3 = value5;                     // Saves the new state of the variable
  }
  value7 = digitalRead(switchPin6);          // Read input value and store it
  delay(10);                                 // 10 milliseconds delay
  value4 = digitalRead(switchPin6);          // Reads the input again to check for bounces
  if (value7 == value8) {                    // Make sure intial readings are consistant
    if (value7 != buttonState4) {            // The button's state changed
      if (value7 == LOW) {                   // Check if button is pressed, then flip mode after use
        if (Mode == 3) {
            loopCounter++;                   // Adds to loop counter when mode is 0
            Mode = 0;                      
        } else {                     
            loopCounter++;                   // Adds to loop counter when mode is 1         
            Mode = Mode;                   
          }
      }
    }
  buttonState4 = value7;                     // Saves the new state of the variable
  Serial.print("Number of Loops :  ");       // Prints phrase to screen
  Serial.println(loopCounter);               // Prints number of loops to LCD screen   
  }  

  // save the current state as the last state for next time through the loop
  // Lights turn on and off based on the mode indicated
  if (Mode == 0) {
    digitalWrite(ledPin13, HIGH);
    digitalWrite(ledPin12, LOW);
    digitalWrite(ledPin11, LOW);
    digitalWrite(ledPin10, LOW);
  }
  if (Mode == 1) {
    digitalWrite(ledPin13, LOW);
    digitalWrite(ledPin12, HIGH);
    digitalWrite(ledPin11, LOW);
    digitalWrite(ledPin10, LOW);  
  }
   if (Mode == 2) {
    digitalWrite(ledPin13, LOW);
    digitalWrite(ledPin12, LOW);
    digitalWrite(ledPin11, HIGH);
    digitalWrite(ledPin10, LOW);
  }
  if (Mode == 3) {
    digitalWrite(ledPin13, LOW);
    digitalWrite(ledPin12, LOW);
    digitalWrite(ledPin11, LOW);
    digitalWrite(ledPin10, HIGH);  
  }
}

No comments:

Post a Comment