Duty cycle detection

Status
Not open for further replies.
Hysteresis: not much, about 5% or so, just to avoid jitter.

Hi guys, thank you so much for all your input, but tomorrow I will be gone for a weeks' holiday, with internet access from time to time, but not means to do any testing; see y'all back then,
Erik
 
 

Attachments

  • duty cycle schematic and parts list.pdf
    20.5 KB · Views: 115
About 5%, just enough to avoid jitter.
 
After several weeks of experimentation I must concede that a software solution does give me all the best results:

1. accuracy and repeatability better than 0,001% on a 2.4kHz signal.
2. can be implemented on most Atmega AVR microcontrollers (Arduino, Atmega168, 328,..)
3. output usable for direct further processing in the microcontroller (in my case for an irrigation system)
4. output directly accessible for internet upload or RF transmission

The concept is as follows: I read 4 pulses of the 2.4kHz signal with direct register addressing. This gives me a 0.0625 microsecond resolution (16MHz processor clocking). For a 2.4kHz signal with 45 duty cycle (lowest obtainable value in my case) this gives me about 0.1875 milliseconds to be measured (1/2400*0.45). When my resolution is as above then I get 3000 measurements done per cycle at 45% duty cycle. Only one measurement suffices, so I get 45/3000 = 0.015% resolution.
In practice I notice that the variation in measurements is lower than 0.05% per measurement cycle of 8 measurements.
I do not think I can get that kind of accuracy with an analog system.
Anyway, I got it programmed with lots of sleepless nights, but I now have a system that measures data from a soil moisture detection probe, where I can perform statistical calculations and transmit a measured variable avery hour wirelessly to a remote mastercontroller. My program is capable of being used with a virtually limitless number of remote sensors.

What is included in the software/hardware?

1. sensor probe measurement hardware circuit (see initial post)
2. sensor signal processor using an Atmega AVR controller
3. real-time clock module to command the wake-up routine for the hourly transmissions
4. HC-12 464MHz transceiver
5. optional upload of data to thingspeak (as long as it is in my lab environment: https://thingspeak.com/channels/361794)
5. solar cell powering
6. go-to-sleep routine for the controller, transmitter and sensor hardware circuit (once an hour wake-up, measure, calculate, transmit and go back to sleep)

I just wanted to document this here as a thank you to all who helped me in this thread.
Erik
 

Attachments

  • Arduino_duty_cycle_measurement_v9.ino.with_bootloader.standard.hex
    55.5 KB · Views: 89
Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…