01-04-2019

Zaterdag 31-03-2019 Verbeterde waterlevel sensor

Er zijn goedkope waterlevel sensoren te koop. In een poging om ze iets gedifferentieerder te maken heb ik ze gewoon diagonaal afgezaagd. Dit maak de response over de hele range van 40 mm een stuk geleidelijker.

Lees verder voor een simpel voorbeeld in Arduino code.






/*
  Improved Robodyn Waterlevel_sensor.
  I cut it diagonally so there is more definition in the signal.
  It is not about improving linearity, but in this way the
  rising and falling of the water is better detected.
 
  Analog input, serial output
  Reads an analog input pin prints the results to the Serial Monitor.
  If you choos the Serial Plotter you get a nice visual impression

  The circuit:
  - OUT of sensor connected to analog pin 0.
  - GND to ground.
  - VCC to +5V
*/


const int analogInPin = A0;  // Analog input pin that the potentiometer is attached to

float sensorValue = 0;        // value read from the pot
float outputValue = 0;        // value output to serial

void setup() {
  // initialize serial communications at 112500 bps:
  Serial.begin(112500);
}


void loop() {
  // read the analog value:
  
  sensorValue = analogRead(analogInPin);
 
  /* 480 is the reading when the sensor is completely dry.
  * if the sensor is full in the water the readings are about 700
  * the sensorlength of 4 cm has a total variation of about 220 steps
  * so one analog step is 0.01818 cm height of water
  */
 
  outputValue = (sensorValue - 470)* 0.01818181;
 
  //only output the sensorvalue if it is above zero  
  if (outputValue > 0) Serial.println(outputValue);

  // wait 2 milliseconds before the next loop for the analog-to-digital
  // converter to settle after the last reading:
  delay(2);
}


Geen opmerkingen:

Een reactie posten

Hi, bedankt voor je reaktie.
Zodra ik het bericht gelezen heb zal ik er zo snel mogelijk op reageren.

Pieter