PCF8574: Momba ny I2C I / O Expander ho an'ny Arduino

PCF8574 TI CHIP

Azo antoka fa efa naheno momba ny Sary PCF8574, puce iray izay azo vidiana misaraka na efa nitaingina modely toy ny maro hafa Fitaovana elektronika hanamorana ny fampidiranao amin'ny solaitranao Arduino. Amin'ity tranga ity dia extender ny inputs sy ny outputs ho an'ny ny bus I2C.

Mety hieritreritra ianao fa efa manana ny azy ny Arduino fiara fitateram-bahoaka I2C, ary marina izany. Saingy ny PCF8574 dia afaka manampy amin'ny fanitarana izany fiara fitateram-bahoaka izany mihoatra ny fetran'ny tabilao fampandrosoana, izay mety ho fanampiana lehibe ho an'ireo mpanamboatra sasany izay mila mihoatra noho izay omen'ny Arduino.

Inona ny bisy I2C?

Arduino UNO millis functions

Ny anarana I2C dia avy Boriboritany iraisana na boribory iraisana. Ny kinova 1.0 dia noforonin'i Philips tamin'ny 1992. Avy eo ny 2.1 faharoa dia ho tonga amin'ny taona 2000 ary androany dia nanjary fenitra (amin'ny 100 kbit / s, na dia mamela hatramin'ny 3.4 Mbit / s farafaharatsiny aza) rehefa tapitra ny patanty tamin'ny 2006 ary azo ampiasaina malalaka.

Amin'izao fotoana izao dia be mpampiasa amin'ny indostria io ho an'ny fifandraisana, ary tena ankasitrahan'ny mpanamboatra ihany koa amin'ny tetikasan'izy ireo hampitana microcontrollers sy peripheraly isan-karazany tafiditra ao anatin'ny IC iray.

El I2C dia bisy serasera serial malaza. Izy io dia mampiasa protokolon'ny serasera miaraka amin'ny fantsona 2 (misy ny fahatelo, fa ampiarahina amin'ny referansa na GND), raha ny marina dia fantatra amin'ny anarana hoe TWI (Two Wire Interface) ihany koa:

  • Iray ho an'ny famantaranandro (SCL).
  • Hafa ho an'ny angona (SDA).
Samy mifandray amin'ny CMOS misokatra ary mila fanoherana misintona. Ary koa, raha mamindra 0 ny iray ary iray hafa 1, dia mety hisy ny olana, izany no hametrahana hatrany hatrany ny 1 (haavo avo lenta) ary ny fitaovana dia mamindra 0 hatrany hatrany (ambaratonga ambany).

Midika izany fa ny tompo sy andevo mandefa ny angon-drakitra amin'ny tariby na làlana iray ihany izy ireo, izay fehezin'ny voalohany mamorona ny famantaranandro. Ny tsirairay amin'ireo fitaovana peripheral mifandray amin'ny bus I2C dia hanana adiresy tokana voatendry, mba hitarika ireo fandefasana. Saingy tsy ilaina ny hoe ny tompony dia mitovy foana (multi-master), izy foana no manomboka ny famindrana.

Araka ny efa nohazavaiko tao amin'ny lahatsoratra momba Arduino I2C Notondroiko teo aloha, ny takelaka tsirairay dia manana ireo fifandraisana I2C ireo amin'ny toerana samihafa. Izany dia zavatra tsy maintsy tadidinao mba hahafahanao mampiasa azy io amin'ny endriny tsirairay amin'ny tabilao:

  • Arduino UNO: SDA dia ao amin'ny A4 ary SCK amin'ny A5
  • Arduino Nano: mitovy amin'ny teo aloha ihany.
  • Arduino Mini Pro: mitovy.
  • Arduino Mega: SDA dia eo amin'ny pin 20 ary SCK amin'ny 21.
  • Fampahalalana bebe kokoa momba ny takelaka.

Efa fantatrao fa azonao ampiasaina mora foana ny I2C ho an'ny sarisarinao, satria ny Tranomboky Wire.h miaraka amina lahasa isan-karazany amin'ity fifandraisana serial ity:

  • manomboka (): atombohy ny famakiam-boky Wire ary farito raha tompony na andevo izy
  • requestFrom (): ampiasain'ny tompony hangataka angona amin'ny andevo.
  • manombokaTransmission (): manomboka fandefasana amin'ny andevo.
  • endTransmission (): fampitana farany.
  • manoratra ()- Manorata data avy amin'ny andevo ho valin'ny fangatahana avy amin'ny tompony, na azonao atao ny milahatra fampitana master.
  • misy (): hamerina ny isan'ny bytes hamaky.
  • vakio (): mamaky byte ampitaina amin'ny andevo mankany amin'ny tompony na ny mifamadika amin'izany.
  • onReceive (): Miantso fiasa iray rehefa andefasan'ny andevo amin'ny tompony.
  • onRequest (): Miantso fiasa iray rehefa mangataka angon-drakitra amin'ny tompony ny andevo.

Para fampahalalana misimisy kokoa momba ny programa Arduino sy ny asanao azonao sintonina ny anay PDF tutorial.

Inona ny PCF8574?

Module PCF8574

Ny PCF8574 dia I2C bus digital inputs and outputs (I / O) expander. Izy io dia afaka mamokatra amin'ny alàlan'ny mpanamboatra isan-karazany, ankoatry ny fananana azy io amin'ny IC sy modules. Na izany na tsy izany, tena azo ampiharina ny mampifandray azy amin'ny arduino board anao ary manana ny fahaizana mifehy fitaovana betsaka kokoa noho ny avelan'ny motherboard.

El Pinout PCF8574 Tsotra izy io, satria misy ihany 8 pine quasi-directional (P0-P7 izay ampifandraisina ireo chips), ary amin'ny lafiny iray dia manana ny SDA sy SCL ianao izay tsy maintsy ampifandraisinao amin'ny tabilao Arduino, ary koa ny VCC sy GND mba hampandeha ny maody. Ary aza adino ireo paingotra telo miresaka A0, A1, A2 hisafidianana hoe iza amin'ireo fitaovana itodihana ny fifandraisana ...

Pinout PCF8574

manana endri-javatra hafa izay tokony ho fantatrao:

  • Ny fifandraisany, ny maha tatatra misokatra azy dia mety ampiasaina ho inputs na output.
  • La tampon-drano ankehitriny 25mA izy io rehefa miasa toy ny vokatra (milentika, rehefa mandeha mankany PCF8574) sy 300 µA (loharano, mikoriana avy any PCF8574) ankehitriny.
  • La olana herinaratra dia 2.5 sy 6v. Ny ambany fanjifana dia ambany dia ambany, 10 µA ihany.
  • Ny vokatra rehetra manana latches, hitazomana ny fanjakana tsy mila hetsika ivelany. Mila mihetsika ihany ianao rehefa te hanova fanjakana.
  • Afaka mahazo 8 ianao lalana azo atao, izany hoe, fitaovana hatramin'ny 8 hifandraisana na fampiasana modely 8 hanitarana azy hatramin'ny 64 fitaovana. Ireo adiresy (pin A0, A1, A2) dia:
    • 000: adiresy 0x20
    • 001: adiresy 0x21
    • 010: adiresy 0x22
    • 011: adiresy 0x23
    • 100: adiresy 0x24
    • 101: adiresy 0x25
    • 110: adiresy 0x26
    • 111: adiresy 0x27
  • Niaiky toy izao i interruption (INT) amina tsipika manokana hamantarana angona tsy misy fanaraha-maso tsy tapaka.

Fampidirana miaraka amin'i Arduino

Pikantsary an'ny Arduino IDE

Ny fifandraisana amin'i Arduino dia tena tsotra, mila mampifandray ny Vcc fotsiny ianao amin'ny tsipika 5v an'ny tabilao Arduino, ary ny GND amin'ny GND an'ny Arduino. Etsy ankilany, ny tsimatra amin'ny modely PCF8574 SDA sy SCL dia mety ho mifandray amin'ny pin 14 (A5 SCL) sy 15 (A4 SDA). Amin'izay dia manomboka miasa izy, mazava ho azy fa afaka mampiasa ny Px ianao hampifandraisana ireo fitaovana tianao hampitaina ...

Avy eo dia tsy ho hita izy io atombohy amin'ny ohatra sary amin'ny Arduino IDE. Azonao atao izany nefa tsy mampiasa tranomboky fanampiny toy ny ...

#include <Wire.h>
 
const int address = 0x38;
 
void setup()
{
   Wire.begin();
   Serial.begin(9600);
}
 
void loop()
{
   for (short channel = 0; channel < 8; channel++)
   {
      // Escribir dato en cada uno de los 8 canales
      Wire.beginTransmission(address);
      Wire.write(~(1 << channel));
      Wire.endTransmission();
      
      // Lee dato del canal
      delay(500);
   }
}

Amin'ny maha input:

#include <Wire.h>
 
const int address = 0x38;
 
void setup()
{
   Wire.begin();
   Serial.begin(9600);
}
 
void loop()
{
   short channel = 1;
   byte value = 0;
 
   // Leer el dato del canal
   Wire.requestFrom(pcfAddress, 1 << channel);
   if (Wire.available())
   {
      value = Wire.read();
   }
   Wire.endTransmission();
 
   // Mostrar el valor leido por el monitor serie
   Serial.println(value);
}

Na koa mampiasa tranomboky, toy ny PCF8574 azonao atao download here ary ampiasao kaody mitovy amin'izany avy amin'ny ohatra izay miaraka amin'ity tranomboky ity:

#include <Wire.h>
#include "PCF8574.h"
 
PCF8574 expander;
 
void setup() 
{
  Serial.begin(9600);
  
  expander.begin(0x20);
  
  /* Setup some PCF8574 pins for demo */
  expander.pinMode(0, OUTPUT);
  expander.pinMode(1, OUTPUT);
  expander.pinMode(2, OUTPUT);
  expander.pinMode(3, INPUT_PULLUP);
 
  /* Blink hardware LED for debug */
  digitalWrite(13, HIGH);  
  
  /* Toggle PCF8574 output 0 for demo */
  expander.toggle();
  
  /* Blink hardware LED for debug */
  digitalWrite(13, LOW);
}
 
 
 
void loop() 
{
}


Ny atin'ny lahatsoratra dia manaraka ny fitsipiky ny etika fanonta. Raha hitatitra tsindry diso eto.

Aoka ho voalohany ny fanehoan-kevitra

Avelao ny hevitrao

Ny adiresy email dia tsy ho namoaka. Mitaky saha dia marika amin'ny *

*

*

  1. Tompon'andraikitra amin'ny data: Miguel Ángel Gatón
  2. Tanjon'ny angona: Control SPAM, fitantanana hevitra.
  3. Legitimation: Ny fanekenao
  4. Fifandraisana momba ny angona: Tsy hampitaina amin'ny antoko fahatelo ny angona raha tsy amin'ny adidy ara-dalàna.
  5. Fitehirizana angona: Database nomen'ny Occentus Networks (EU)
  6. Zo: Amin'ny fotoana rehetra, azonao atao ny mametra, mamerina ary mamafa ny mombamomba anao.