Advertisement
AlexShu

Soil moisture capacitance meter sketch

Jun 11th, 2015
1,466
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.60 KB | None | 0 0
  1. /*  
  2. This ia a Modified sketch of RCTiming_capacitance_meter by Paul Badger 2008
  3. http://www.arduino.cc/en/Tutorial/CapacitanceMeter
  4.  
  5. To measure the capacitance of a DIY soil moisture sensor
  6. Alexshu.com
  7.  */
  8.  
  9. #define analogPin      0          // analog pin for measuring capacitor voltage
  10. #define chargePin      12         // pin to charge the capacitor - connected to one end of the charging resistor
  11. #define dischargePin   11         // pin to discharge the capacitor
  12.  
  13. unsigned long startTime;
  14. unsigned long elapsedTime;
  15. long sum;
  16.  
  17. void setup(){
  18.   pinMode(chargePin, OUTPUT);     // set chargePin to output
  19.   digitalWrite(chargePin, LOW);  
  20.  
  21.   Serial.begin(9600);             // initialize serial transmission for debugging
  22. }
  23.  
  24. void loop(){
  25.   for(int i=0; i<50; i++){
  26.   digitalWrite(chargePin, HIGH);  // set chargePin HIGH and capacitor charging
  27.   startTime = micros();
  28.  
  29.   while(analogRead(analogPin) < 648){       // 647 is 63.2% of 1023, which corresponds to full-scale voltage
  30.   }
  31.  
  32.   elapsedTime= micros() - startTime;
  33.   sum = sum +  elapsedTime;
  34.  
  35.   /* dicharge the capacitor  */
  36.   digitalWrite(chargePin, LOW);             // set charge pin to  LOW
  37.   pinMode(dischargePin, OUTPUT);            // set discharge pin to output
  38.   digitalWrite(dischargePin, LOW);          // set discharge pin LOW
  39.   while(analogRead(analogPin) > 0){         // wait until capacitor is completely discharged
  40.   }
  41.  
  42.   pinMode(dischargePin, INPUT);            // set discharge pin back to input
  43.  
  44.   }
  45.   Serial.print("Charge time: ");
  46.   Serial.print(sum/50);
  47.   Serial.println(" \t micro seconds");
  48.   sum = 0;
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement