This is an old revision of the document!
Date | Stage 1 PD | Stage 2 PD | Stage 3 PD | Comments |
---|---|---|---|---|
12/12/18 | 0.40 | 2.15 | 0.90 | |
12/15/18 | 0.17 | 1.18 | 0.56 | |
12/29/18 | 0.19 | 1.25 | 0.54 | |
01/02/19 | 0.22 | 1.20 | 0.62 | |
01/12/19 | 0.28 | 1.16 | 0.32 | Markus changed out the Stage 1 filter |
01/15/19 | 0.31 | 1.12 | 0.78 | |
01/20/19 | 0.18 | 1.15 | 0.32 | |
01/23/19 | 0.44 | 1.12 | 0.31 | |
02/07/19 | 0.66 | 1.13 | 0.34 | |
03/02/19 | 1.37 | 1.13 | 0.32 | |
03/08/19 | 1.45 | 1.16 | 0.30 | |
03/10/19 | 0.96 | 1.20 | 0.23 | Brant changed out the Stage 1 filter |
03/14/19 | 0.98 | 1.16 | 0.31 | |
03/22/19 | 1.07 | 1.17 | 0.35 | |
03/22/19 | 1.01 | 1.25 | 0.22 | Markus replaced the Stage 1 filter with a 12“ deep model |
07/11/19 | 1.78 | 0.00 | 0.32 | Stage 2 removed? |
All values measured in inches of water column (in.w.c.)
The analog signals read the following when no air is flowing (Stg1=-0.26, Stg2=-0.28, Stg3=-0.24)
Analog signal correction factors are not included in the code just yet because I am le tired
/* LiquidCrystal Library - display() and noDisplay() Demonstrates the use a 16x2 LCD display. The LiquidCrystal library works with all LCD displays that are compatible with the Hitachi HD44780 driver. There are many of them out there, and you can usually tell them by the 16-pin interface. This sketch prints "Hello World!" to the LCD and uses the display() and noDisplay() functions to turn on and off the display. The circuit: * LCD RS pin 4 to digital pin 12 * LCD Enable pin to digital pin 11 * LCD D4 pin to digital pin 5 * LCD D5 pin to digital pin 4 * LCD D6 pin to digital pin 3 * LCD D7 pin to digital pin 2 * LCD R/W pin to ground * 10K resistor: * ends to +5V and ground * wiper to LCD VO pin (pin 3) Library originally added 18 Apr 2008 by David A. Mellis library modified 5 Jul 2009 by Limor Fried (http://www.ladyada.net) example added 9 Jul 2009 by Tom Igoe modified 22 Nov 2010 by Tom Igoe This example code is in the public domain. http://arduino.cc/en/Tutorial/LiquidCrystalDisplay */ // include the library code: #include <LiquidCrystal.h> // initialize the library with the numbers of the interface pins LiquidCrystal lcd(12, 11, 10, 9,8,7,6,5,4,3,2); int sensorAPin = A1; int sensorBPin = A2; int sensorCPin = A3; double PDA = 0; double PDB = 0; double PDC = 0; const int numReadingsA = 10; int readingsA[numReadingsA]; // the readings from the analog inputs int readIndexA = 0; // the index of the current readings int totalA = 0; // the running total int averageA = 0; // the average const int numReadingsB = 10; int readingsB[numReadingsB]; // the readings from the analog inputs int readIndexB = 0; // the index of the current readings int totalB = 0; // the running total int averageB = 0; // the average const int numReadingsC = 10; int readingsC[numReadingsC]; // the readings from the analog inputs int readIndexC = 0; // the index of the current readings int totalC = 0; // the running total int averageC = 0; // the average void setup() { for (int thisReading = 0; thisReading < numReadingsA; thisReading++) { readingsA[thisReading] = 0; } } void loop() { // set up the LCD's number of columns and rows: lcd.begin(20, 4); // Print a message to the LCD. lcd.print("Filter PD Monitor "); lcd.print("Stage2: "); lcd.print(PDB); lcd.print(" in.w.c."); lcd.print("Stage1: "); lcd.print(PDA); lcd.print(" in.w.c."); lcd.print("Stage3: "); lcd.print(PDC); lcd.print(" in.w.c."); // SENSOR A // subtract the last reading: totalA = totalA - readingsA[readIndexA]; // read from the sensor: readingsA[readIndexA] = analogRead(sensorAPin); // add the reading to the total: totalA = totalA + readingsA[readIndexA]; // advance to the next position in the array: readIndexA = readIndexA + 1; // if we're at the end of the array... if (readIndexA >= numReadingsA) { // ...wrap around to the beginning: readIndexA = 0;} // calculate the average: averageA = totalA / numReadingsA; // SENSOR B // subtract the last reading: totalB = totalB - readingsB[readIndexB]; // read from the sensor: readingsB[readIndexB] = analogRead(sensorBPin); // add the reading to the total: totalB = totalB + readingsB[readIndexB]; // advance to the next position in the array: readIndexB = readIndexB + 1; // if we're at the end of the array... if (readIndexB >= numReadingsB) { // ...wrap around to the beginning: readIndexB = 0;} // calculate the average: averageB = totalB / numReadingsB; // send it to the computer as ASCII digits // SENSOR C // subtract the last reading: totalC = totalC - readingsC[readIndexC]; // read from the sensor: readingsC[readIndexC] = analogRead(sensorCPin); // add the reading to the total: totalC = totalC + readingsC[readIndexC]; // advance to the next position in the array: readIndexC = readIndexC + 1; // if we're at the end of the array... if (readIndexC >= numReadingsC) { // ...wrap around to the beginning: readIndexC = 0;} // calculate the average: averageC = totalC / numReadingsC; // send it to the computer as ASCII digits PDA = (averageA / 1023.00 * 5.00); PDB = (averageB / 1023.00 * 5.00); PDC = (averageC / 1023.00 * 5.00); delay(1000); }