Innehållsförteckning:
- Steg 1: Hur I2c fungerar
- Steg 2:
- Steg 3: Användning
- Steg 4: Läs värde
- Steg 5: Läs Vale From Channel
- Steg 6: Skriv värde
- Steg 7: Ytterligare funktioner
- Steg 8: Exempel Anslutningsdiagram
- Steg 9: Tack
Video: PCF8591 (i2c Analog I/O Expander) Snabb enkel användning: 9 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
Bibliotek för att använda i2c pcf8591 IC med arduino och esp8266.
Denna IC kan styra (upp till 4) analog ingång och/eller 1 analog utgång som mätspänning, läsa termistorvärde eller bleka en lysdiod.
Kan läsa analogt värde och skriva analogt värde med endast 2 trådar (perfekt för ESP-01).
Jag försöker förenkla användningen av denna IC, med en minimal uppsättning operationer.
Du hittar en uppdaterad version på min webbplats
Steg 1: Hur I2c fungerar
I2C fungerar med sina två ledningar, SDA (datalinje) och SCL (klocklinje).
Båda dessa ledningar är öppna avlopp, men dras upp med motstånd.
Vanligtvis finns det en mästare och en eller flera slavar på linjen, även om det kan finnas flera mästare, men vi pratar om det senare.
Både mästare och slavar kan överföra eller ta emot data, därför kan en enhet befinna sig i ett av dessa fyra tillstånd: masteröverföring, mastermottagning, slavöverföring, slavmottagning.
Steg 2:
Du hittar mitt bibliotek här.
Att ladda ned.
Klicka på knappen DOWNLOADS i det övre högra hörnet, byt namn på den okomprimerade mappen PCF8591.
Kontrollera att mappen PCF8591 innehåller PCF8591.cpp och PCF8591.h.
Placera biblioteksmappen PCF8591 din / bibliotek / mapp.
Du kan behöva skapa bibliotekets undermapp om det är ditt första bibliotek.
Starta om IDE.
Steg 3: Användning
Konstruktör: du måste ange adressen till i2c (för att kontrollera adressen, använd denna guide I2cScanner)
PCF8591 (uint8_t -adress);
för esp8266 om du vill ange SDA och SCL -pin använder du detta:
PCF8591 (uint8_t -adress, uint8_t sda, uint8_t scl);
Steg 4: Läs värde
IC som du kan se på bilden har 4 analoga ingångar och 1 analoga utgångar.
Så för att läsa all analog ingång i en sändning kan du göra (värdet är från 0 till 255):
PCF8591:: AnalogInput ai = pcf8591.analogReadAll ();
Serial.print (ai.ain0); Serial.print (" -"); Serial.print (ai.ain1); Serial.print (" -"); Serial.print (ai.ain2); Serial.print (" -"); Serial.println (ai.ain3);
om du vill läsa en enda analog ingång eller kanal:
int ana = pcf8591.analogRead (AIN0); // läs analog 0
Steg 5: Läs Vale From Channel
Denna IC har flera typer av läsning och du kan använda analog ingång eller analog kanal (när du använder enkel läst analog ingång och kanalen finns på bilderna).
Till exempel för att läsa värdet på kanal 0 i Två differentialingångar måste du göra:
int ana = pcf8591.analogRead (CHANNEL0, TWO_DIFFERENTIAL_INPUT); // läs analog 0
Steg 6: Skriv värde
Om du vill skriva ett analogt värde måste du göra (värdet är från 0 till 255):
pcf8591.analogWrite (128);
Steg 7: Ytterligare funktioner
Ytterligare funktion är att läsa en skrivspänning: För beräkning av spänning måste du passera någon parameter:
- microcontrollerReferenceVoltage: få spänning från mikrokontrollerns spänning (endast AVR ingen esp8266 för esp 3.3v fast)
- referenceVoltage: if microcontrollerReferenceVoltage false ta det här värdet Kommandot är:
void voltageWrite (float value, bool microcontrollerReferenceVoltage = true, float referenceVoltage = 5.0);
float voltageRead (uint8_t analogPin, bool microcontrollerReferenceVoltage = true, float referenceVoltage = 5.0);
Ett exempel är:
pcf8591.voltageWrite (2.7); // 2,7 volt utgång
fördröjning (3000);
float ana0V = pcf8591.voltageRead (AIN0); // Läs spänning från analog 0
Serial.println (ana0V);
Steg 8: Exempel Anslutningsdiagram
Steg 9: Tack
i2c -projektserie (samling):
- Temperaturfuktighetssensor
- Analog expander
- Digital expander
- LCD skärm
Rekommenderad:
Otto DIY Robot Walking - Snabb och enkel att göra Handledning: 7 steg
Otto DIY Robot Walking - Snabb och enkel att göra självstudie: I denna handledning lär vi oss hur du enkelt programmerar Otto DIY Robot att gå. Se en demonstrationsvideo
DHT12 (i2c billig fukt- och temperatursensor), snabb enkel användning: 14 steg
DHT12 (i2c billig luftfuktighet och temperatursensor), snabb enkel användning: Du kan hitta uppdatering och annat på min webbplats https://www.mischianti.org/2019/01/01/dht12-library-en/. Jag gillar sensor som kan användas med 2 trådar (i2c -protokoll), men jag älskar det billiga. Detta är ett Arduino- och esp8266 -bibliotek för DHT12 -serien o
Raspberry Pi GPIO -kretsar: Användning av en LDR -analog sensor utan ADC (analog till digital omvandlare): 4 steg
Raspberry Pi GPIO -kretsar: Användning av en LDR -analog sensor utan ADC (analog till digital omvandlare): I våra tidigare instruktioner har vi visat dig hur du kan koppla din Raspberry Pi: s GPIO -stift till lysdioder och switchar och hur GPIO -stiften kan vara höga eller låg. Men vad händer om du vill använda din Raspberry Pi med en analog sensor? Om vi vill använda en
Snabb och enkel FPV Mini RC Car Racing: 3 steg
Snabb och enkel FPV Mini RC Car Racing: Jag har ett par WLToys K979 -bilar och jag ville testa inomhus mini FPV -racing. Med spridningen av billiga allt -i -ett -kameror (AIO) och sändare var det ganska enkelt att installera det. Här är vad du behöver: RC -bil (jag använder WLToys K979) $
Snabb, snabb, billig, snygg LED -rumsbelysning (för alla): 5 steg (med bilder)
Snabb, snabb, billig, snygg LED-rumsbelysning (för alla): Välkommen alla :-) Detta är min första instruerbara så kommentarer är välkomna :-) Vad jag hoppas kunna visa dig är hur man gör snabb LED-belysning som är på en TINY buget.Vad du behöver: CableLEDsResistors (510Ohms for 12V) StapelsSolder IronCutters and other basi