started git versioning of v1
This commit is contained in:
95
src/water_level_sensor.ino
Normal file
95
src/water_level_sensor.ino
Normal file
@@ -0,0 +1,95 @@
|
||||
#include "TinyTouch.h"
|
||||
|
||||
// LED status pins
|
||||
#define LED_GN 6
|
||||
#define LED_RD 7
|
||||
|
||||
// Touch sensing pins
|
||||
#define TPIN_12 13
|
||||
#define TPIN_25 14
|
||||
#define TPIN_37 15
|
||||
#define TPIN_50 16
|
||||
#define TPIN_62 3
|
||||
#define TPIN_75 2
|
||||
#define TPIN_87 4
|
||||
#define TPIN_100 5
|
||||
|
||||
#define TOUCH_THRESH 800
|
||||
uint8_t status = 0; // represents the overall status of the measured value (0:low - 255:high)
|
||||
uint8_t touch_state = 0; // saves the state of the 8 touch pads
|
||||
|
||||
TinyTouch touch;
|
||||
|
||||
uint8_t touchPins[8] = {TPIN_12, TPIN_25, TPIN_37, TPIN_50, TPIN_62, TPIN_75, TPIN_87, TPIN_100};
|
||||
|
||||
|
||||
// linear blends the red/green dual status corresponding to the uint8_t value parameter
|
||||
// 0 = only red ... 127 = blend of red and green (orange) ... 255 = green
|
||||
void set_led_status(uint8_t value) {
|
||||
//analogWrite(LED_RD, -2*value + 255);
|
||||
//analogWrite(LED_GN, 2*value);
|
||||
|
||||
if(value <= 64) {
|
||||
digitalWrite(LED_RD, HIGH);
|
||||
digitalWrite(LED_GN, LOW);
|
||||
}
|
||||
else if(value > 64 <= 192) {
|
||||
digitalWrite(LED_RD, HIGH);
|
||||
digitalWrite(LED_GN, HIGH);
|
||||
}
|
||||
if(value > 192) {
|
||||
digitalWrite(LED_RD, LOW);
|
||||
digitalWrite(LED_GN, HIGH);
|
||||
}
|
||||
|
||||
}
|
||||
void setup() {
|
||||
pinMode(LED_GN, OUTPUT);
|
||||
pinMode(LED_RD, OUTPUT);
|
||||
|
||||
touch.begin(touchPins, sizeof(touchPins));
|
||||
|
||||
}
|
||||
|
||||
void loop() {
|
||||
touch.touchHandle();
|
||||
|
||||
for(uint8_t i = 0; i < 8; i++) {
|
||||
if(touch.getValue(i) > TOUCH_THRESH) {
|
||||
touch_state |= (1 << i);
|
||||
}
|
||||
}
|
||||
|
||||
switch(touch_state){
|
||||
case 0b00000001:
|
||||
status = 32;
|
||||
break;
|
||||
case 0b00000011:
|
||||
status = 64;
|
||||
break;
|
||||
case 0b00000111:
|
||||
status = 96;
|
||||
break;
|
||||
case 0b00001111:
|
||||
status = 128;
|
||||
break;
|
||||
case 0b00011111:
|
||||
status = 160;
|
||||
break;
|
||||
case 0b00111111:
|
||||
status = 192;
|
||||
break;
|
||||
case 0b01111111:
|
||||
status = 224;
|
||||
break;
|
||||
case 0b11111111:
|
||||
status = 255;
|
||||
break;
|
||||
default:
|
||||
digitalWrite(LED_RD, LOW);
|
||||
digitalWrite(LED_GN, LOW);
|
||||
}
|
||||
|
||||
set_led_status(status);
|
||||
|
||||
}
|
Reference in New Issue
Block a user