ПЦФ8574: О И2Ц И / О проширивачу за Ардуино

ПЦФ8574 ТИ ЦХИП

Сигурно сте чули за ИЦ ПЦФ8574, чип који се може купити засебно или већ монтирати на модул као и многи други Електронске компоненте да бисте олакшали интеграцију са Ардуино плочом. У овом случају, то је продуживач улаза и излаза за аутобус И2Ц.

Можда мислите да Ардуино већ има свој интегрисана И2Ц магистрала, и тачно је. Али ПЦФ8574 вам може помоћи да проширите ту магистралу изван граница ваше развојне плоче, што може бити од велике помоћи неким произвођачима којима је потребно више од онога што пружа Ардуино.

Шта је И2Ц магистрала?

Arduino UNO милис функције

Име И2Ц потиче из Интер-интегрисани круг или интер-интегрисаних кола. Његову верзију 1.0 креирао је 1992. године Пхилипс. Тада би други 2.1 дошао 2000. године и данас је постао стандард (при 100 кбит / с, иако дозвољава највише 3.4 Мбит / с) када је патент истекао 2006. године и може се слободно користити.

Тренутно се широко користи у индустрији за комуникацију, а такође их произвођачи веома цене за њихове пројекте комуницирања различитих микроконтролера и периферних уређаја интегрисаних у једну ИЦ.

El И2Ц је аутобус добро познат из серијске комуникације. Користи протокол синхроне комуникације са само 2 канала (постоји трећи, али је повезан са референцом или ГНД), у ствари је познат и као ТВИ (двожични интерфејс):

  • Један за сат (СЦЛ).
  • Остало за податке (СДА).
Обе су отворене одводне ЦМОС везе и захтевају повлачење отпорника. Даље, ако један уређај емитује 0, а други а 1, могло би доћи до проблема, зато је линија увек постављена на 1 (висок ниво), а уређаји увек преносе 0 (низак ниво).

То подразумева да господар и роб податке шаљу преко истог кабла или стазе, којом управља први који генерише сигнал сата. Сваки од периферних уређаја повезаних на И2Ц магистралу имаће додељену јединствену адресу како би усмеравао преносе. Али није неопходно да је наставник увек исти (мулти-наставник), увек је он тај који иницира премештај.

Као што сам већ објаснио у чланку о Ардуино И2Ц Раније сам споменуо, свака плоча има ове И2Ц везе на различитим местима. То морате имати на уму да бисте га могли правилно користити у свакој верзији плоче:

  • Arduino UNO: СДА је у А4, а СЦК у А5
  • Ардуино Нано: исто као и претходни.
  • Ардуино Мини Про: исти.
  • Ардуино Мега: СДА је на пину 20, а СЦК на 21.
  • Више информација о плочама.

Већ знате да И2Ц можете лако користити за своје скице, јер Вире.х библиотека са разним функцијама за ову серијску комуникацију:

  • почети (): покрените Вире књижницу и наведите да ли је мастер или славе
  • рекуестФром (): користи га мастер за тражење података од помоћног уређаја.
  • бегинТрансмиссион (): покретање преноса са славе.
  • ендТрансмиссион (): крајњи пренос.
  • напиши ()- Напишите податке од подређеног као одговор на захтев главног, или можете послати мастер у ред.
  • доступан (): враћа број бајтова за читање.
  • читати(): чита бајт који се преноси са славе-а на мастер или обрнуто.
  • онРецеиве (): Позива функцију када славе прима пренос од мастер-а.
  • на захтев (): Позива функцију када славе захтева податке од мастер-а.

у мас информацион о Ардуино програмирању и функцијама можете преузети наш ПДФ туториал.

Шта је ПЦФ8574?

ПЦФ8574 модул

ПЦФ8574 је Проширивач дигиталних улаза и излаза магистрале И2Ц (И / О). Могу га производити различити произвођачи, поред тога што је доступан у ИЦ-у и модулима. У сваком случају, врло је практично повезати га са Ардуино плочом и имати капацитет за управљање већим бројем уређаја него што матична плоча дозвољава.

El ПЦФ8574 пиноут је једноставно, јер укључује само КСНУМКС борови квази-усмерени (П0-П7 где су повезани чипови за комуникацију), а с друге стране имате СДА и СЦЛ које морате повезати на Ардуино плочу, као и ВЦЦ и ГНД за напајање модула. И не заборавите на три пина за адресирање А0, А1, А2 да бисте одабрали на који од уређаја ће комуникација бити усмерена ...

ПЦФ8574 пиноут

Поседује друге карактеристике да бисте требали знати:

  • Њене везе, будући да су отворени одвод, могу бити користи се и као улази и као излази.
  • La вршна струја то је 25мА када делује као излаз (сливник, када струја тече ка ПЦФ8574) и 300 µА (извор, струја тече од ПЦФ8574).
  • La напетост напајање је 2.5 и 6в. Потрошња у стању приправности је врло мала, само 10 µА.
  • Сви излази имају засуне, да одржи државу без потребе за спољним акцијама. Морате да делујете само када желите да промените државу.
  • Можете добити 8 могућа упутства, односно до 8 уређаја за комуникацију или коришћење 8 модула за његово проширење до 64 уређаја. Адресе (пинови А0, А1, А2) биће:
    • 000: адреса 0к20
    • 001: адреса 0к21
    • 010: адреса 0к22
    • 011: адреса 0к23
    • 100: адреса 0к24
    • 101: адреса 0к25
    • 110: адреса 0к26
    • 111: адреса 0к27
  • Признаје прекид (ИНТ) посебном линијом за откривање података без сталног надзора.

Интеграција са Ардуином

Снимак екрана за Ардуино ИДЕ

Веза са Ардуином је врло једноставна, само треба да повежете Вцц са 5в пином плоче Ардуино, а ГНД са ГНД Ардуина. С друге стране, пинови ПЦФ8574 СДА и СЦЛ модула могу бити повезати са иглама 14 (А5 СЦЛ) и 15 (А4 СДА). Тек с тим би почео да функционише, очигледно можете да користите Пк за повезивање уређаја са којима желите да комуницирате ...

Тада би само недостајало започните примером скице у Ардуино ИДЕ. То можете учинити без употребе додатне библиотеке као што је ...

#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);
   }
}

Као улаз:

#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);
}

Или такође користе библиотеке, као што је ПЦФ8574 који можете преузмите овде и користите код сличан овом из самог примера који долази уз ову библиотеку:

#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() 
{
}


Будите први који ће коментарисати

Оставите свој коментар

Ваша емаил адреса неће бити објављена. Обавезна поља су означена са *

*

*

  1. За податке одговоран: Мигуел Ангел Гатон
  2. Сврха података: Контрола нежељене поште, управљање коментарима.
  3. Легитимација: Ваш пристанак
  4. Комуникација података: Подаци се неће преносити трећим лицима, осим по законској обавези.
  5. Похрана података: База података коју хостује Оццентус Нетворкс (ЕУ)
  6. Права: У било ком тренутку можете ограничити, опоравити и избрисати своје податке.