Stap 6: MCP3204 - ADC
Een ADC (analoog digitaal conversie) helpt ons een analoge spanning lezen en converteren naar een digitale binair getal waarmee de micro-controller zich onder het. Deze MCP3204 (gegevensblad) ADC is gemaakt door Microchip en een SPI interface gebruikt om te communiceren met de Micro-controller. Ik zal praten meer over de SPI later in een andere stap.
De pinnen voor de MCP3204 zijn als volgt
- Ingang voor ADC kanaal 0.
- Ingang voor ADC kanaal 1.
- Ingang voor ADC kanaal 2.
- Ingang voor ADC kanaal 3.
- Intern niet aangesloten.
- Intern niet aangesloten.
- Digitale grond - dit project maakt gebruik van een gemeenschappelijke basis.
- Dit is een actieve laag Chip select pin gebruikt voor de interface van de SPI (uitgelegd in een latere stap).
- Dit zijn gegevens in, ook wel bekend als MOSI gebruikt voor de interface van de SPI (uitgelegd in een latere stap).
- Dit zijn gegevens, ook wel bekend als MISO gebruikt voor de interface van de SPI (uitgelegd in een latere stap).
- Seriële klok pin gebruikt voor de interface van de SPI (uitgelegd in een latere stap).
- Analoge grond - dit project maakt gebruik van een gemeenschappelijke basis.
- Spanning referentie-ingang.
- VDD - voorziening voltage pin - 5V
Strikt genomen, ik echt niet nodig om een aparte ADC onder met het ontwerp, zoals de ATMega32U4 een ingebouwde 10 bit ADC heeft, echter, er zijn twee belangrijke redenen waarom ik dat deed,
- Betere resolutie
- Omdat ik spelen met een wilde!
Zoals u waarschijnlijk al weet zijn micro-controllers digitale, digitale producten alleen werken op 0s en 1s. Een digitaal apparaat, lezen door zelf, een analoge waarde zoals een spannings- of 3.21V niet. Digitale producten kunnen alleen gelezen logica waarden, bijvoorbeeld 0v "af" is 5v "it's over".
Voordat we te ver in deze, een beetje op welke binaire is, binaire is een base 2 nummering, dat betekent dat het kan alleen rekenen 2 stappen voordat tikt naar het volgende cijfer.
0
1
Onze normale nummeringssysteem, het decimale stelsel, is een grondtal 10 nummering, we kunnen rekenen 10 stappen voordat tikt naar het volgende cijfer.
0
1
2
3
4
5
6
7
8
9
Hier is een voorbeeld van wat 0 tot en met 7 looks like in binary,
0 0
1 1
2 10
3-11
4 100
5 101
6 110
7 111
Elk cijfer staat bekend als een "beetje" en 8 bits is een "byte" dus de maximale decimaal getal u rekenen kunt voor het gebruik van een binair getal van 8 bits is 255. Dus dat is 256 verschillende waarden omdat wij 0 opnemen als een waarde.
0 0
.. ..
.. ..
255 11111111
De resolutie van een ADC aangeeft hoeveel bits of stappen voor een binary nummer het meten van een analoge waarde te converteren naar digitale binair getal, bijvoorbeeld
- 8 bit ADC 256 stappen kunt meten = 2 tot de macht van 8
- 10 bit ADC 1024 stappen kunt meten = 2 tot de macht van 10
- 12 bit ADC 4096 stappen kunt meten = 2 tot de macht van 12
I 'm guessing dat dit is niet het maken van veel zin nog, dat is OK, wel.
Alle ADCs moeten gebruiken een referentie spanning, deze spanning referentie laat de ADC te vergelijken van de spanning zijn lezing tegen de referentie spanning en een percentage als het binaire getal te retourneren. OK, voorbeeld van de tijd, voor een 8 bit ADC, het maximale aantal stappen het de referentie spanning kan breken in is 256 (Vergeet niet 0V), dus voor het gemak, laat maken onze referentie spanning 255v (het zou niet maar laat ga mee), als de spanning de ADC leest is 255v, het vergelijkt het met de referentie spanning en zegt , OK zijn 100% van mijn referentie spanning dus im gonna sturen u de hoogste digitale waarde ik kan, 255. Het leest het opnieuw en zijn nu 128V, het zegt OK, zijn nu slechts 50% van mijn referentie spanning dus ik stuur je 50% van mijn binaire waarde, 128.
Onze bijvoorbeeld eerder, hadden we een referentie spanning van 255V en wij 256 stappen, dus dat is gemakkelijk, het kan lezen in 1V stappen, wat als we nodig voor het lezen van 0.1V stappen? Nou dat is gewoon stoer, omdat een 8 bit ADC kan alleen tellen tot 256. Dat is waar een hogere resolutie ADC komt. Laat nu vergelijken een 100V referentie spanning zodat we de voordelen zien kunnen van het gebruik van een ADC met een hogere resolutie.
8 bits = 256 stappen, verdelen we onze referentie spanning door onze resolutie om erachter te komen welke spanning verschillen onze ADC lezen kunt, 100 / 256 = 0.39V. Dus de laagste onze 8 bit kan lezen is 0.39V, dan zijn de volgende waarde 0.78V
10 bits = 1024 stappen, 100/1024 = 0.098V. Dus de laagste onze 10 bit kan lezen is 0.098v, dan de volgende waarde zal worden 0.196V. Nog veel kleinere kloof tussen de lezingen.
12 bits = 4096 stappen, 100/4096 = 0.024v. Dus de laagste onze 12 bit kan lezen 0.024v is, dan zullen de volgende waarde 0.048v, enzovoort. Dan zal er 4096 verschillende waarden voordat zij de volledige 100V tot.
Zoals u zien kunt, is het een nog veel betere nauwkeurigheid de hogere resolutie die u gaat.