Hem Automation/säkerhet prototyp (4 / 11 steg)
Steg 4: Gränssnitt sensorer (AVR-ADC)
Mest verkliga världen data är analog. Oavsett om det är temperatur, tryck, spänning, etc, är deras variation alltid analog i naturen. Allt detta är helt enkelt analoga data och vi måste bearbeta de data som vi har fått. Men analog signalbehandling är ganska ineffektiva när det gäller noggrannhet, hastighet och önskad effekt. Därför konvertera vi dem till digital form med hjälp av en Analog till Digital omvandlare (ADC). AVR har inbyggda ADC i nästan alla dess MCU. ATMEGA16 innehåller PORTA ADC stiften. Nu om du har mer än en analog spänningskälla, mer än en sensor, till exempel, kan du läsa alla så länge antalet källor är färre än antalet ADC stift du har på din mikrokontroller. Med Atmega16 finns det 8 ADC stift. Det enda att ha i åtanke när programmering ADC att läsa flera kanaler är den bara en kanalen kan användas vid konvertering i taget.
I ATMega16 behöver du bara ändra MUX kanal och tilldela värden enligt databladet för att välja olika ADC kanaler.
Här är hur det görs:
ADMUX – ADC Multiplexer urval Register
MUX4:0 – Analog kanal och få urval bitar – där är 8 ADC kanaler (PA0... PA7).
Se datablad för mer information.
Nu sedan analoga sensorer kommer att ge analoga spänningar så efter situationer bör du veta vad är produktionen av sensorn så att du kan programmera och utföra respektive verksamheter därför.
Det gör bara kolla den tillverkade spänningen av sensorn med multimeter och använda formel för att konvertera den till adc värde;
ADC = (V.input*1024) /V.out
Och du kommer att ske med sensorer nu, men sensorer kräver massa tester och jag gjorde massa tester för att säkerställa att resultatet efter programmering enligt värden jag noterade använder multimeter är rätt och korrekt.
För mer info om ADC programmering, se denna länk.