Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Wire.h>
- #include <Adafruit_BMP085.h>
- #include <AFMotor.h>
- AF_DCMotor pump(1);
- AF_DCMotor valve(4);
- AF_DCMotor openvalve(3);
- Adafruit_BMP085 bmp;
- // VCC -> 3.3V
- // GND -> GND
- // SCL -> Analog 5
- // SDA -> Analog 4
- int pushButton = 9;
- int pumpRelay = 10;
- double vacuum = 960.0; //at this pressure we got vacuum
- double safety = 20.0; //safety range for pressure
- bool openbox = false;
- bool pressurereached = false;
- void setup() {
- pinMode(pushButton, INPUT);
- pinMode(pumpRelay, OUTPUT);
- valve.run(RELEASE);
- valve.setSpeed(255);
- openvalve.run(RELEASE);
- openvalve.setSpeed(255);
- pump.run(RELEASE);
- pump.setSpeed(255);
- Serial.begin(9600);
- Serial.println("Reading pressure");
- if (!bmp.begin()) {
- Serial.println("Could not find a valid BMP085 sensor, check wiring!");
- delay(1000);
- while (1) {}
- }
- }
- void loop() {
- Serial.print("Temperature = ");
- Serial.print(bmp.readTemperature());
- Serial.println(" *C");
- double pressure = (bmp.readPressure()/100); //hPa
- Serial.print("Pressure = ");
- Serial.print(pressure);
- Serial.println(" Pa");
- delay(500);
- if (digitalRead(pushButton) == HIGH) {
- openbox = false;
- if (pressure > vacuum) pressurereached = false;
- if (!pressurereached){
- openvalve.run(RELEASE);
- valve.run(FORWARD);
- pump.run(FORWARD);
- delay(500);
- digitalWrite(pumpRelay, HIGH);
- while (pressure > vacuum && digitalRead(pushButton) == HIGH) {
- pressure = (bmp.readPressure()/100)+safety; //we will actually get to (960-20)=940 hPa before stopping
- Serial.print("Pressure = ");
- Serial.print(pressure);
- Serial.println(" Pa");
- delay(1000);
- }
- Serial.println("Stop");
- pump.run(RELEASE);
- digitalWrite(pumpRelay, LOW);
- valve.run(RELEASE);
- pressurereached = true;
- }
- delay(5000);
- } else {
- digitalWrite(pumpRelay, LOW);
- pump.run(RELEASE);
- valve.run(RELEASE);
- if (!openbox) openvalve.run(FORWARD);
- int i = 0;
- while (i < 20 && digitalRead(pushButton) == LOW) {
- delay(1000);
- i++;
- }
- openvalve.run(RELEASE);
- openbox = true;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement