Analog till digital omvandling är en mycket viktig uppgift inom inbäddad elektronik, eftersom de flesta av sensorerna ger utdata som analoga värden och för att mata dem till mikrokontroller som bara förstår binära värden, måste vi konvertera dem till digitala värden. För att kunna bearbeta analoga data behöver mikrokontroller Analog till Digital Converter.
Vissa mikrokontroller har inbyggd ADC som Arduino, MSP430, PIC16F877A men en del mikrokontroller har det inte som 8051, Raspberry Pi osv. Och vi måste använda några externa IC till analogomvandlare som ADC0804, ADC0808. Nedan hittar du olika exempel på ADC med olika mikrokontroller:
- Hur man använder ADC i Arduino Uno?
- Raspberry Pi ADC-handledning
- Gränssnitt ADC0808 med 8051 mikrokontroller
- 0-25V digital voltmeter med AVR-mikrokontroller
- Hur man använder ADC i STM32F103C8
- Hur man använder ADC i MSP430G2
- Hur man använder ADC i ARM7 LPC2148
- Använda ADC-modulen för PIC-mikrokontroller med MPLAB och XC8
I denna handledning ska vi kontrollera hur man gränssnitt PCF8591 ADC / DAC-modul med Arduino.
Nödvändiga komponenter
- Arduino UNO
- PCF8591 ADC-modul
- 100K Pot
- Startkablar
PCF8591 ADC / DAC-modul
PCF8591 är en 8-bitars analog-till-digital eller 8-bitars digital-till-analog-omvandlarmodul, vilket innebär att varje stift kan läsa analoga värden upp till 256. Den har också LDR och termistorkrets på kortet. Denna modul har fyra analoga ingångar och en analoga utgångar. Det fungerar på I 2 C-kommunikation, så det finns SCL- och SDA-stift för seriell klocka och seriell data-adress. Det kräver 2,5-6V matningsspänning och har låg standby-ström. Vi kan också manipulera ingångsspänningen genom att justera vredet på potentiometern på modulen. Det finns också tre hoppare på brädet. J4 är ansluten för att välja åtkomstkrets för termistor, J5 är ansluten för att välja åtkomstkrets för LDR / fotomotstånd och J6 är ansluten för att välja den justerbara spänningsaccesskretsen. För att komma åt dessa kretsar måste du använda adresserna till dessa byglar: 0x50 för J6, 0x60 för J5 och 0x70 för J4. Det finns två lysdioder ombord D1 och D2-D1 visar utspänningsintensiteten och D2 visar intensiteten på matningsspänningen. Högre utgångs- eller matningsspänning, högre intensitet för LED D1 eller D2. Du kan också testa dessa lysdioder med en potentiometer på VCC eller på AOUT-stift.
Gränssnitt PCF8591 ADC / DAC-modul med Arduino
Den kompletta program och arbets video ges i slutet av den här guiden.
För det första måste vi definiera biblioteket för I 2 C-kommunikation och LCD-display.
#omfatta
Definiera sedan några makron. Det första makrot är för att definiera adressen för databussen för IC och det andra makrot är för att definiera adressen till modulens första ingångsstift, där ingången från potten ges.
#define PCF8591 (0x90 >> 1) #define AIn0 0x00
Därefter definierar du stiftanslutningarna på LCD med Arduino och initialiserar det värde som vi får vid analog stift.
konst int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; LiquidCrystal lcd (rs, en, d4, d5, d6, d7); int Värde = 0;
Nu, låt oss komma till installationsfunktionen . Här på första raden har vi initierat I 2 C-kommunikationen. Och på andra raden har vi initialiserat LCD-skärmen där vi skriver ut de analoga värdena. Läs mer om gränssnitt 16x2 LCD med Arduino här.
ogiltig installation () { Wire.begin (); lcd.begin (16,2); }
I slingfunktion är den första raden att börja sändningen, dvs den startar PCF8591. Den andra raden säger till IC: n att göra den analoga mätningen vid den första analoga ingångsstiftet. Tredje raden avslutar överföringen och fjärde raden hämtar uppmätta data från den analoga stiftet.
void loop () { Wire.beginTransmission (PCF8591); Wire.write (AIn0); Wire.endTransmission (); Wire.requestFrom (PCF8591, 1);
I nästa del lägger du värdet som lästs från analog stift till värdevariabel som definierats tidigare. Och i nästa rad skriver du ut det värdet på LCD-skärmen.
Värde = Wire.read (); lcd.print ("ADC Value ="); lcd.print (värde); fördröjning (500); lcd.clear ();}
Slutligen ladda upp koden i Arduino och kör den. De analoga värdena börjar visas på LCD-skärmen. Justera grytans ratt så ser du gradvis förändring av värdena.