Arduino programmerbar konstant nuvarande Power motstånd konstlast (6 / 16 steg)

Steg 6: MCP3204 - ADC



En ADC (analog till Digital omvandlare) hjälper oss att läsa en analog spänning och konvertera den till en digital binärt tal som gör att mikro-controller under stå det. Denna MCP3204 (datablad) ADC görs av mikrochip och använder ett SPI gränssnitt för kommunikation med mikro-controller. Jag kommer att prata mer om SPI senare i ytterligare ett steg.

Stift för MCP3204 är följande,

  1. Ingång för ADC kanal 0.
  2. Ingång för ADC kanal 1.
  3. Ingång för ADC kanal 2.
  4. Ingång för ADC kanal 3.
  5. Inte ansluten internt.
  6. Inte ansluten internt.
  7. Digital mark - projektet använder en gemensam grund.
  8. Detta är en aktiv låg Chip Välj stift används för SPI gränssnitt (förklaras i ett senare steg).
  9. Detta är data i, ibland kallas MOSI används för SPI gränssnitt (förklaras i ett senare steg).
  10. Detta är data, ibland kallas MISO används för SPI gränssnitt (förklaras i ett senare steg).
  11. Seriell klocka pin används för SPI gränssnitt (förklaras i ett senare steg).
  12. Analog ground - projektet använder en gemensam grund.
  13. Input Voltage referens.
  14. Vdd - leverans spänning pin - 5V

Strängt taget, jag behövde verkligen inte att inkludera en separat ADC i designen som ATMega32U4 har en inbyggd 10 bitars ADC, men det finns två huvudsakliga skäl jag gjorde,

  1. Bättre upplösning
  2. Eftersom jag ville spela med en!

Som ni förmodligen redan vet är mikro-styrenheter digital, digital produkter fungerar bara på 0 och 1. En digital enhet kan inte av sig själv, läsa ett jämförbart värde som en spänning eller 3.21V. Digitala produkter kan bara läsa logik värden, till exempel 0v "det är", 5v "det är".

Innan vi kommer för långt in, lite på vad binary är, binära är en bas 2 nummersystem, det betyder att det kan bara räkna 2 steg innan tickar till nästa siffra.

0
1

Våra normala numreringssystem, det decimal-systemet, är en bas 10 nummersystem, kan vi räkna 10 steg före tickar till nästa siffra.

0
1
2
3
4
5
6
7
8
9

Här är ett exempel på vad 0 till 7 ser ut som i binärt,

0 0
1 1
2 10
3 11
4 100
5 101
6 110
7 111

Varje siffra är känd som "lite" och 8 bitar är en "byte" så maximalt decimal kan du räkna med en 8-bitars binärt tal är 255. Så det är 256 olika värden eftersom vi inkluderar 0 som ett värde.

0 0
.. ..
.. ..
255 11111111

Upplösningen på en ADC representerar hur många bitar eller steg i en binär nummer det kan mäta ett jämförbart värde och konvertera den till digital binärt tal, till exempel

  • 8 bitars ADC kan mäta 256 steg = 2 upphöjt till 8
  • 10 bitars ADC kan mäta 1024 steg = 2 upphöjt till 10
  • 12 bitars ADC kan mäta 4096 steg = 2 upphöjt till 12

Jag gissar att detta inte gör mycket känsla ändå, det är OK, kommer det.

Alla ADCs måste använda en referens spänning, detta referensspänningen tillåter ADC att jämföra spänningen sin behandling mot referensspänningen och returnera en procentandel som den binära tal. OK, exempel är tid för en 8 bitars ADC, det maximala antalet steg det kan bryta referensspänningen upp till 256 (inte Glöm 0V), så för att underlätta, kan göra våra referensspänningen 255v (det skulle inte vara men kan bara gå med det), om den spänning ADC läser 255v, jämför det med referensspänningen och säger , OK dess 100% av min referensspänningen så im kommer för att skicka dig den högsta digitalt värdesätter jag kan, 255. Du kan läsa det igen och dess nu 128V, det säger OK, dess nu endast 50% av min referensspänningen så jag kommer att skicka dig 50% av min binärt värde, 128.

För vår exempel tidigare, hade vi en referens spänning på 255V och vi hade 256 steg, så det är lätt, det går att läsa i 1V steg, vad händer om vi behövde för att läsa 0.1V steg? Jo det är bara jobbigt, eftersom en 8 bitars ADC kan bara räkna till 256. Det är där en högre upplösning ADC kommer in. Nu kan jämföra mot en 100V referensspänningen så vi kan se fördelarna med att använda en ADC med en högre upplösning.

8 bit = 256 steg, vi delar våra referensspänningen med vår resolution att ta reda på vilka spänning skillnader våra ADC kan läsa, 100 / 256 = 0.39V. Så den lägsta våra 8 bitar kan läsa är 0.39V, då nästa värde kommer att 0.78V

10 bit = 1024 steg, 100/1024 = 0.098V. Så den lägsta våra 10 bitars kan läsa är 0.098v, då nästa värde kommer att 0.196V. Mycket mycket mindre klyftan mellan avläsningarna.

12 bitars = 4096 steg, 100/4096 = 0.024v. Så den lägsta våra 12 bitar kan läsa är 0.024v, då nästa värde kommer att vara 0.048v och så vidare. Då blir det 4096 olika värden innan den når full 100V.

Som ni ser, är det en mycket mycket bättre precision högre upplösning du går.

Se Steg
Relaterade Ämnen

Power LED - enklaste ljus med konstant-nuvarande krets

här är en riktigt enkel och billig ($1) LED styrkrets. Kretsen är en "konstant strömkälla", vilket betyder att den håller LED ljusstyrka konstant oavsett vilken strömkälla du använder eller omgivande förhållanden du föremål LED's till.Eller att...

Arduino-programmerbar LED Infinity Mirror

Är du trött på att titta på rummet element som förefaller ha ändliga djup?Kanske bör du överväga att bygga ditt eget Arduino-programmerbar LED Infinity spegel!Denna synvilla är ett blickfång och erbjuder massor av utrymme för anpassning och cool prog...

Mycket liten belastning - konstant nuvarande belastning

Jag har utvecklat mig själv en bänk PSU, och slutligen nått en punkt där jag vill använda en belastning för att se hur den presterar. Efter tittar Dave Jones' utmärkt video och titta på några andra resurser på internet, kom jag upp med liten belastni...

Arduino programmerbara 5 pedal kopplat

Söker efter en enkel programmerbara pedal kopplat över nätet var jagförvånad om de dyra redskap runt där... så jag kom ut med DIY lösning och hittade flera stora projekt men hittade dem alltför komplicerat (PCB Etsning...) eller kanske alltför dyra f...

DIY konstant nuvarande belastning

I detta lilla projekt kommer jag visa dig hur man gör en enkel justerbar konstant nuvarande belastning. En gadget är användbart om du vill mäta kapaciteten hos kinesiska Li-Ion batterier. Eller du kan testa hur stabil strömförsörjningen är med en vis...

DIY Power motstånd

Först, Hej, jag är glad att vara här på instructables.comDetta är min första instructable.Detta är ett enkelt sätt att skapa power motstånd på hemmaplan.Jag behövde 0,33 ohms motstånd med några större wattal så jag väljer att skapa en, istället för a...

Konstant nuvarande LED (Arduino)

Du har antagligen haft det problemet. Du vill sätta massor av Lamporna på en utgång, men du vet inte riktigt hur...Avery enkel lösning kan vara att du lägger alla dina LED's parallellt med varandra. Sedan du beräkna motståndet av dem, och om du går....

Elektronik projekt: Konstant nuvarande nätaggregat med puls bredd Modulation

ljus en LED, driva en motor, denna enkla - ish krets kommer att rymma allt du konstant aktuella behov med hjälp av NE555 chips! Detta är ett bra sätt att lära sig om elektronik och även om inte lika effektiv som använder en pre gjorde buckpuck, detta...

WEEKLIMATIC Arduino programmerbar termostat

Det är en programmerbar termostat Arduino baserat.Upp till 9 veckoprogram kan sparas.Tre modalitet: Ställ in PROGRAM, AUTO-läge, PROGRAM-lägeTvå PROGRAM modalitet: läge av / på-läge.. .och mer fuctions, helt anpassningsbara!Steg 1: Introduktion Hej a...

Konstant nuvarande LED-Tester

detta Instructable visar dig hur man bygger en liten LED testare från endast några delar.Det ger en nästan konstant ström över en rad olika matningsspänningar. Det är mycket bekvämt att testa en massa lysdioder i olika färger och spänningsområden med...

Arduino programmerbara knappen Panel som tangentbord

Detta är ett ganska enkelt och roligt projekt med Arduino som är ett idealiskt alternativ för din första interaktion med Arduino. Du ska skapa en panel med olika knappar, var och en kommer att göra en åtgärd i din dator (Mac eller Pc) genom att efter...

Gör en Mini Arduino programmerbar 4 kanal DC-DVM

detta Instructable kommer att lära dig hur du använder Arduino Analog hamnarna.Digitala Voltmetrar (DVMs) är ett specialfall av Analog till Digital omvandlare - A / DCs.-de mäter spänning - och är oftast en funktion av en generell instrument som kall...

Hur till arduino körning high power hårdvara?

BOMATmega328p styrelsen x1CP2104 USB-styrelsen x112V DC strömförsörjning x1LED X1Glödlampa x1Elektromagnet x1...

DIY en cykel bakljus med Arduino

Jag är en cykel entusiast.År sedan när jag är en ung vacker man, i mitt andra år på College, hade jag avslutat ritten från Sichuan till Tibet, den berömda G318 i Kina. Det är känt som världens vackraste och mest farliga väg. Om det finns en chans, bö...

DIY en härlig Uggla elektroniska pin

Införa min senaste bärbar enhet, en uggla elektroniska stift.Du behöver inte många program- och maskinvara kunskap här, men du behöver ett par av händiga hand, att göra en härlig uggla. Jag skulle aldrig använda ull kände innan, det är mitt första fö...

DIY en färgglad pyramid

Förra veckan är det mer än ett dussin studenter besöka vårt kontor på Shenzhen. De kom från Xi'an Academy of Fine Arts. Några av våra ingenjörer arbetar med dem att göra något, du kan tänka dig att det är en kombination av konst och elektro. Slutlige...

LED strålkastare driva posterar

Snubbla runt i mörkret, försöker bestämma om strängarna 200 fot av förlängningssladd, eller fortsätta med mitt mesiga laddningsbart ljus skulle få mig hem förr, var inspirationen till detta projekt. Så på slutförandet av jobbet, började jag att begru...

Göra en Instructables indikator

Instructables är verkligen en fantastisk plats att dela din fantastiskt projekt. Det finns så många beslutsfattare här att dela deras verk.Jag hade gjort många instructable också, känner jag hetsas när min instructable får en stor utsikt eller favori...

Hur man gör Arduino konstant ladda

hur man gör arduino konstant nuvarande belastningSteg 1: Förbered din laptop och arduino Gå till arduino.cc och installera Arduino IDE jag rekommenderar dig att ladda ner version 1.6.5. .Steg 2: Sätt ihop Källa av mosfet går till marken. Rinna till 1...