PCF8574: Дар бораи I2C I / O Expander барои Arduino

PCF8574 TI CHIP

Шумо албатта дар бораи он шунидаед IC PCF8574, чипе, ки онро алоҳида харидорӣ кардан мумкин аст ё монанди моделҳои дигар аллакай ба модул насб карда шудааст Ҷузъҳои электронӣ барои ҳамгироии шумо бо тахтаи Arduinoатон мусоидат кунед Дар ин ҳолат, он васеъкунандаи вуруд ва натиҷа барои автобуси I2C.

Шояд шумо фикр кунед, ки Ардуино аллакай худро дорад автобуси интегралии I2C, ва ин дуруст аст. Аммо PCF8574 метавонад ба дароз кардани он автобус аз ҳудуди тахтаи рушди шумо кумак кунад, ки метавонад ба баъзе истеҳсолкунандагон, ки на танҳо аз ҷониби Ардуино, бештар ниёз доранд, кӯмаки калон расонад.

Автобуси I2C чист?

Arduino UNO вазифаҳои миллис

Номи I2C аз он баромадааст Ноҳияи байнишаҳрӣ ё схемаҳои байни интегралӣ. Нусхаи он 1.0 дар соли 1992 аз ҷониби Philips сохта шудааст. Он гоҳ як сонияи 2.1 соли 2000 ба вуқӯъ мепайвандад ва имрӯз он ба стандарт табдил ёфтааст (дар суръати 100 кбит / с, гарчанде ки ин ҳадди аксар то 3.4 Мбит / сро ташкил медиҳад) вақте ки патенти соли 2006 ба итмом расид ва метавонад озодона истифода шавад.

Дар айни замон он дар саноат васеъ истифода мешавад барои муоширатИнчунин, истеҳсолкунандагон барои лоиҳаҳои худ барои муоширати микроконтроллерҳо ва перифериалҳои гуногун, ки дар IC ҷойгир шудаанд, хеле қадр мекунанд.

El I2C автобус аст аз алоқаи силсилавӣ маълуманд. Он протоколи муоширати синхрониро бо ҳамагӣ 2 канал истифода мебарад (сеюмаш ҳаст, аммо он ба истинод ё GND пайваст карда шудааст), дар асл он ҳамчун TWI (Two Wire Interface) низ маъруф аст:

  • Яке барои соат (SCL).
  • Дигар барои маълумот (SDA).
Ҳардуи онҳо пайвастагиҳои кушодаи CMOS мебошанд ва ба онҳо муқовиматҳои кашидан лозиманд. Ғайр аз он, агар як дастгоҳ 0 ва дигаре 1 интиқол диҳад, мушкилот пеш омада метавонанд, бинобарин хат ҳамеша ба 1 (сатҳи баланд) гузошта мешавад ва дастгоҳҳо ҳамеша 0 (сатҳи паст) мегузаронанд.

Ин маънои онро дорад, ки хоҷа ва ғулом онҳо маълумотро тавассути ҳамон як кабел ё трек мефиристанд, ки онро аввалин касе идора мекунад, ки сигнали соатро тавлид мекунад. Ҳар як дастгоҳи канории ба автобуси I2C пайвастшуда дорои суроғаи беназире мебошад, ки барои интиқолдиҳӣ равона карда шудааст. Аммо шарт нест, ки усто ҳамеша яксон бошад (устоди бисёрҳаҷм), маҳз ӯ ташаббускори интиқол аст.

Тавре ки ман аллакай дар мақола шарҳ додам дар Ардуино I2C Ман қаблан ишора карда будам, ҳар як тахта ин пайвастагиҳои I2C-ро дар ҷойҳои гуногун дорад. Ин чизест, ки шумо бояд дар хотир дошта бошед, то битавонед онро дар ҳар як нусхаи тахта дуруст истифода баред:

Шумо аллакай медонед, ки шумо метавонед I2C-ро барои эскизҳои худ ба осонӣ истифода баред, зеро Китобхонаи Wire.h бо вазифаҳои гуногун барои ин алоқаи силсилавӣ:

  • Оғоз (): китобхонаи Wire -ро оғоз кунед ва муайян кунед, ки он хоҷа ё ғулом аст
  • requestFrom (): аз ҷониби хоҷа барои дархост кардани маълумот аз ғулом истифода мешавад.
  • beginTransmission (): интиқолро бо ғулом оғоз кунед.
  • endTransmission (): интиқоли хотимавӣ.
  • навиштан ()- Дар ҷавоб ба дархости хоҷа маълумотро аз ғулом нависед, ё шумо метавонед интиқоли оғоро дар навбат гузоред.
  • дастрас (): шумораи байтҳоро барои хондан бармегардонад.
  • хонед (): хондани байте, ки аз ғулом ба хоҷа интиқол ёфтааст ё баръакс.
  • onReceive (): Вақте ки ғулом аз хоҷа интиқол мегирад, ба ягон функсия занг мезанад.
  • onRequest (): Вақте ки ғулом аз хоҷа маълумот талаб мекунад, ба функсия занг мезанад.

банди Маълумоти бештар дар бораи барномасозӣ ва функсияҳои Arduino шумо метавонед моро зеркашӣ кунед Дастури PDF.

PCF8574 чист?

Модули PCF8574

PCF8574 як аст Вуруд ва натиҷаҳои рақамии автобуси I2C (I / O) expander. Он метавонад аз ҷониби истеҳсолкунандагони гуногун истеҳсол карда шавад, ба ғайр аз он ки он дар IC ва модулҳо мавҷуд аст. Дар ҳар сурат, онро ба тахтаи Arduino пайваст кардан хеле қобили амал аст ва қобилияти идоракунии бештар аз дастгоҳҳо аз motherboard имкон медиҳад.

El Пинҳон кардани PCF8574 ин содда аст, зеро он танҳо дар бар мегирад Pines 8 quasidirectional (P0-P7, ки дар он чипҳо барои муошират пайвастанд) ва аз тарафи дигар шумо SDA ва SCL доред, ки шумо бояд ба тахтаи Arduino, инчунин VCC ва GND пайваст шавед, то модулро низ нерӯ диҳед. Ва се пинҳони адресии A0, A1, A2 -ро фаромӯш накунед, то алоқа ба кадоме аз дастгоҳҳо равона карда шавад ...

Пинҳон кардани PCF8574

Соҳиби хусусиятҳои дигар ки шумо бояд донед:

  • Пайвастагиҳои он, ки дренажи кушода мебошанд, метавонанд бошанд ҳам ҳамчун даромад ва натиҷа истифода мешавад.
  • La ҷараёни авҷ он вақте, ки ҳамчун баромад (ғарқшавӣ, вақте ки ҷараён ба PCF25 ҷараён мегирад) амал мекунад, 8574mA ва 300 µA (манбаъ, ҷараён аз PCF8574) аст.
  • La стресс таъминоти барқ ​​2.5 ва 6v мебошад. Истеъмоли интизорӣ хеле кам аст, танҳо 10 µA.
  • Ҳама натиҷаҳо қулфҳо доранд, давлатро бидуни зарурати амалҳои беруна нигоҳ дорад. Шумо бояд танҳо вақте амал кунед, ки мехоҳед давлатро тағир диҳед.
  • Шумо метавонед 8 гиред самтҳои имконпазир, яъне то 8 дастгоҳ барои муошират бо 8 модул барои васеъ кардани он то 64 дастгоҳ. Суроғаҳо (пинҳонҳои A0, A1, A2) инҳоянд:
    • 000: суроғаи 0x20
    • 001: суроғаи 0x21
    • 010: суроғаи 0x22
    • 011: суроғаи 0x23
    • 100: суроғаи 0x24
    • 101: суроғаи 0x25
    • 110: суроғаи 0x26
    • 111: суроғаи 0x27
  • Иқрор мешавад танаффус (INT) тавассути хатти махсус барои муайян кардани маълумот бидуни назорати доимӣ.

Ҳамгироӣ бо Arduino

Намудори Arduino IDE

Пайвастшавӣ бо Arduino хеле содда аст, шумо бояд танҳо Vcc-ро бо сими 5v тахтаи Arduino ва GND бо GND of Arduino пайваст кунед. Аз тарафи дигар, таїіизот аз модули PCF8574 SDA ва SCL метавонад бошад бо таїіизот пайваст кунед 14 (A5 SCL) ва 15 (A4 SDA). Танҳо бо ин, он ба кор шурӯъ мекунад, бешубҳа шумо метавонед Px -ро барои пайваст кардани дастгоҳҳое, ки мехоҳед муошират кунед, истифода баред ...

Он гоҳ ин танҳо гум мешуд бо эскизи намунавӣ оғоз кунед дар Arduino IDE. Шумо метавонед онро бидуни истифодаи китобхонаи иловагӣ ба монанди ...

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

Ё инчунин аз китобхонаҳо истифода баред, ба монанди PCF8574, ки шумо метавонед дар инҷо зеркашӣ ва рамзи ба ин монандро аз худи мисол, ки дар якҷоягӣ бо ин китобхона омадааст, истифода баред:

#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. Нигоҳдории маълумот: Пойгоҳи додаҳо аз ҷониби Occentus Networks (ИА) ҷойгир карда шудааст
  6. Ҳуқуқҳо: Ҳар лаҳза шумо метавонед маълумоти худро маҳдуд, барқарор ва нест кунед.