Chirp gebruikt capacitieve eigenschappen om de vochtigheid te meten (explanation). Een 1MHz blokgolf wordt gegenereerd met PWM op een ATtiny44A µcontroller. Dit kan met het in de ATtiny44A ingebouwde kristal en systeemklok. Deze blokgolf wordt dan via een weerstand naar een grote `pad` gestuurd.
Deze `pad` vormt tezamen met de omringende grond een parasitaire condensator. De weerstand en de condensator vormen tezamen een laag doorlaat filter waarvan de afsnijd frequentie wordt bepaald door de veranderende capaciteit van de condensator. De grond rond de sonde gedraagt zich als de elektrolyt van een condensator waarvan de de dielektrische constante varieert met de hoeveelheid vocht in de grond. Daardoor verandert ook de capaciteit van onze condensator.
The filtered square wave is fed into a peak detector formed of out a diode and a capacitor - the diode lets through positive peaks and the capacitor stores the maximum voltage of those peaks. This voltage is measured by an ADC in the microcontroller. De hart van het programma is als volgt:
uint16_t getCapacitance() {
PRR &= ~_BV(PRADC); //enable ADC in power reduction
ADCSRA |= _BV(ADEN);
PRR &= ~_BV(PRTIM0);
startExcitationSignal();
getADC1();
uint16_t result = getADC1();
stopExcitationSignal();
PORTB &= ~_BV(PB2);
PRR |= _BV(PRTIM0);
ADCSRA &=~ _BV(ADEN);
PRR |= _BV(PRADC);
return result;
} |