Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
int upPin = A0; // select analog input pins for the pressure sensors
int downPin = A1;
int up; // declare variables to store the values coming from the sensors
int down;
int pump = 8; //this pin is named to keep track of which pin the air pump is on
int level; //declare variable to track the selected level
void setup() {
Serial.begin(9600);
// setup pins to be inputs or outputs
pinMode(1, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
// for pins controlling solenoid valves, HIGH means the valve is closed and not letting air through,
//for the pump, HIGH means it is on and pumping air into the system.
digitalWrite(1, HIGH);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(pump, LOW);
level = 0; //set the "score" of the level to 0 to start
}
void loop() {
up= analogRead(upPin);
down = analogRead(downPin);
Serial.println(up);
Serial.println(down);
// calculate current level and set the bounds of the levels so that the "level" is
//always a number that aligns with one of the defined states
if (up >= 10) {
level = (level +1);
delay(500);
}
if (down >= 10) {
level = (level - 1);
delay(500);
}
if (level < 0) {
level = 0;
}
if (level > 3) {
level = 3;
}
Serial.print("level = ");
Serial.println(level);
//inflate pouches for visual and tactile level indication
if (level == 1) {
digitalWrite(pump, HIGH);
digitalWrite(1, LOW);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
}
else if (level == 2) {
digitalWrite(pump, HIGH);
digitalWrite(1, LOW);
digitalWrite(2, LOW);
digitalWrite(3, HIGH);
}
else if (level == 3) {
digitalWrite(pump, HIGH);
digitalWrite(1, LOW);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
}
else {
digitalWrite(pump, LOW);
digitalWrite(1, HIGH);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.