Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- This ia a Modified sketch of RCTiming_capacitance_meter by Paul Badger 2008
- http://www.arduino.cc/en/Tutorial/CapacitanceMeter
- To measure the capacitance of a DIY soil moisture sensor
- Alexshu.com
- */
- #define analogPin 0 // analog pin for measuring capacitor voltage
- #define chargePin 12 // pin to charge the capacitor - connected to one end of the charging resistor
- #define dischargePin 11 // pin to discharge the capacitor
- unsigned long startTime;
- unsigned long elapsedTime;
- long sum;
- void setup(){
- pinMode(chargePin, OUTPUT); // set chargePin to output
- digitalWrite(chargePin, LOW);
- Serial.begin(9600); // initialize serial transmission for debugging
- }
- void loop(){
- for(int i=0; i<50; i++){
- digitalWrite(chargePin, HIGH); // set chargePin HIGH and capacitor charging
- startTime = micros();
- while(analogRead(analogPin) < 648){ // 647 is 63.2% of 1023, which corresponds to full-scale voltage
- }
- elapsedTime= micros() - startTime;
- sum = sum + elapsedTime;
- /* dicharge the capacitor */
- digitalWrite(chargePin, LOW); // set charge pin to LOW
- pinMode(dischargePin, OUTPUT); // set discharge pin to output
- digitalWrite(dischargePin, LOW); // set discharge pin LOW
- while(analogRead(analogPin) > 0){ // wait until capacitor is completely discharged
- }
- pinMode(dischargePin, INPUT); // set discharge pin back to input
- }
- Serial.print("Charge time: ");
- Serial.print(sum/50);
- Serial.println(" \t micro seconds");
- sum = 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement