நீங்கள் நிச்சயமாக கேள்விப்பட்டிருப்பீர்கள் ஐசி பிசிஎஃப் 8574, தனித்தனியாக வாங்கக்கூடிய அல்லது ஏற்கனவே பலவற்றைப் போன்ற ஒரு தொகுதியில் ஏற்றப்பட்ட ஒரு சிப் மின்னணு கூறுகள் உங்கள் Arduino போர்டுடன் உங்கள் ஒருங்கிணைப்பை எளிதாக்க. இந்த வழக்கில், இது உள்ளீடுகள் மற்றும் வெளியீடுகளின் நீட்டிப்பாகும் I2C பஸ்.
Arduino ஏற்கனவே அதன் சொந்தமானது என்று நீங்கள் நினைக்கலாம் ஒருங்கிணைந்த I2C பஸ், அது உண்மைதான். ஆனால் உங்கள் மேம்பாட்டுக் குழுவின் வரம்புகளுக்கு அப்பால் அந்த பஸ்ஸை நீட்டிக்க PCF8574 உதவக்கூடும், இது அர்டுயினோ வழங்குவதை விட அதிகமாக தேவைப்படும் சில தயாரிப்பாளர்களுக்கு பெரிதும் உதவக்கூடும்.
ஐ 2 சி பஸ் என்றால் என்ன?
I2C என்ற பெயர் வந்தது இடை-ஒருங்கிணைந்த சுற்று அல்லது ஒருங்கிணைந்த சுற்றுகள். இதன் பதிப்பு 1.0 1992 இல் பிலிப்ஸால் உருவாக்கப்பட்டது. 2.1 ஆம் ஆண்டில் இரண்டாவது 2000 வரும், இன்று அது ஒரு தரநிலையாக மாறியுள்ளது (100 கிபிட் / வி வேகத்தில், இது அதிகபட்சமாக 3.4 மெபிட் / வி வரை அனுமதிக்கிறது என்றாலும்) 2006 இல் காப்புரிமை காலாவதியானது மற்றும் சுதந்திரமாக பயன்படுத்தப்படலாம்.
தற்போது இது தொழில்துறையில் பரவலாக பயன்படுத்தப்படுகிறது தகவல்தொடர்புக்காக, மேலும் ஒரு ஐ.சி.யில் ஒருங்கிணைந்த வெவ்வேறு மைக்ரோகண்ட்ரோலர்கள் மற்றும் சாதனங்களைத் தொடர்புகொள்வதற்கான தயாரிப்பாளர்களால் அவர்களின் திட்டங்கள் மிகவும் பாராட்டப்படுகின்றன.
El I2C ஒரு பஸ் நன்கு அறியப்பட்ட தொடர் தொடர்பு. இது 2 சேனல்களுடன் ஒரு ஒத்திசைவான தகவல்தொடர்பு நெறிமுறையைப் பயன்படுத்துகிறது (மூன்றில் ஒரு பங்கு உள்ளது, ஆனால் இது குறிப்பு அல்லது ஜி.என்.டி உடன் இணைக்கப்பட்டுள்ளது), உண்மையில் இது TWI (இரண்டு கம்பி இடைமுகம்) என்றும் அழைக்கப்படுகிறது:
- கடிகாரத்திற்கு ஒன்று (எஸ்சிஎல்).
- தரவுக்கான பிற (எஸ்.டி.ஏ).
என்று குறிக்கிறது மாஸ்டர் மற்றும் அடிமை அவை ஒரே கேபிள் அல்லது பாதையில் தரவை அனுப்புகின்றன, இது கடிகார சமிக்ஞையை உருவாக்கும் முதல் ஒன்றால் கட்டுப்படுத்தப்படுகிறது. I2C பஸ்ஸுடன் இணைக்கப்பட்டுள்ள ஒவ்வொரு புற சாதனங்களும் பரிமாற்றங்களை இயக்குவதற்கு ஒரு தனிப்பட்ட முகவரி ஒதுக்கப்படும். ஆனால் மாஸ்டர் எப்போதும் ஒரே மாதிரியாக இருக்க வேண்டிய அவசியமில்லை (மல்டி மாஸ்டர்), அவர் எப்போதும் இடமாற்றத்தைத் தொடங்குகிறார்.
நான் ஏற்கனவே கட்டுரையில் விளக்கியது போல Arduino I2C நான் முன்னர் குறிப்பிட்டேன், ஒவ்வொரு போர்டிலும் இந்த I2C இணைப்புகள் வெவ்வேறு இடங்களில் உள்ளன. ஒவ்வொரு தட்டு பதிப்பிலும் இதை சரியாகப் பயன்படுத்த நீங்கள் நினைவில் கொள்ள வேண்டிய ஒன்று:
- Arduino UNO: எஸ்.டி.ஏ ஏ 4 மற்றும் எஸ்.சி.கே ஏ 5 இல் உள்ளது
- அர்டுடினோ நானோ: முந்தையதைப் போலவே.
- அர்டுடினோ மினி புரோ: அதே.
- அர்டுடினோ மெகா: எஸ்.டி.ஏ முள் 20 மற்றும் எஸ்.சி.கே 21 இல் உள்ளது.
- தட்டுகள் பற்றிய கூடுதல் தகவல்கள்.
உங்கள் ஓவியங்களுக்கு I2C ஐ எளிதாகப் பயன்படுத்தலாம் என்பதை நீங்கள் ஏற்கனவே அறிவீர்கள் Wire.h நூலகம் இந்த தொடர் தகவல்தொடர்புக்கான பல்வேறு செயல்பாடுகளுடன்:
- தொடங்கு (): வயர் நூலகத்தைத் தொடங்கி, அது மாஸ்டர் அல்லது அடிமை என்பதை குறிப்பிடவும்
- requestFrom (): அடிமையிலிருந்து தரவைக் கோர மாஸ்டர் பயன்படுத்தினார்.
- startTransmission (): அடிமையுடன் பரிமாற்றத்தைத் தொடங்குங்கள்.
- endTransmission (): இறுதி பரிமாற்றம்.
- எழுது ()- எஜமானரின் வேண்டுகோளுக்கு பதிலளிக்கும் விதமாக ஒரு அடிமையிலிருந்து தரவை எழுதுங்கள் அல்லது நீங்கள் ஒரு எஜமானரின் பரிமாற்றத்தை வரிசைப்படுத்தலாம்
- கிடைக்கிறது (): படிக்க பைட்டுகளின் எண்ணிக்கையைத் தரும்.
- படி(): ஒரு அடிமையிலிருந்து ஒரு எஜமானருக்கு அனுப்பப்பட்ட பைட்டைப் படியுங்கள் அல்லது நேர்மாறாக.
- onReceive (): ஒரு அடிமை ஒரு எஜமானரிடமிருந்து பரிமாற்றத்தைப் பெறும்போது ஒரு செயல்பாட்டை அழைக்கிறது.
- வேண்டுகோளுக்கு இணங்க (): ஒரு அடிமை ஒரு எஜமானரிடமிருந்து தரவைக் கோரும்போது ஒரு செயல்பாட்டை அழைக்கிறது.
பாரா மேலும் தகவல் Arduino நிரலாக்க மற்றும் செயல்பாடுகளைப் பற்றி நீங்கள் எங்களை பதிவிறக்கம் செய்யலாம் PDF டுடோரியல்.
PCF8574 என்றால் என்ன?
பிசிஎஃப் 8574 என்பது ஒரு I2C பஸ் டிஜிட்டல் உள்ளீடுகள் மற்றும் வெளியீடுகள் (I / O) விரிவாக்கி. இது ஐ.சி மற்றும் தொகுதிகளில் கிடைப்பதைத் தவிர, பல்வேறு உற்பத்தியாளர்களால் தயாரிக்கப்படலாம். எந்தவொரு சந்தர்ப்பத்திலும், அதை உங்கள் ஆர்டுயினோ போர்டுடன் இணைப்பது மிகவும் நடைமுறைக்குரியது மற்றும் மதர்போர்டு அனுமதிப்பதை விட அதிகமான சாதனங்களைக் கட்டுப்படுத்தும் திறன் கொண்டது.
El PCF8574 பின்அவுட் இது எளிதானது என்பதால், இது எளிதானது பன்னிரண்டு பைன்கள் அரை-திசை (தொடர்பு கொள்ள சில்லுகள் இணைக்கப்பட்டுள்ள P0-P7), மறுபுறம் உங்களிடம் SDA மற்றும் SCL உள்ளது, அவை நீங்கள் Arduino போர்டுடன் இணைக்கப்பட வேண்டும், அதே போல் VCC மற்றும் GND ஆகியவை தொகுதிக்கு சக்தி அளிக்க வேண்டும். தகவல்தொடர்பு எந்த சாதனங்களுக்கு அனுப்பப்படுகிறது என்பதைத் தேர்வுசெய்ய A0, A1, A2 ஆகிய மூன்று முகவரி ஊசிகளையும் மறந்துவிடாதீர்கள் ...
அது உள்ளது இதர வசதிகள் நீங்கள் தெரிந்து கொள்ள வேண்டும்:
- அதன் இணைப்புகள், திறந்த வடிகால் என்பதால் இருக்கலாம் உள்ளீடுகள் மற்றும் வெளியீடுகளாகப் பயன்படுத்தப்படுகிறது.
- La உச்ச மின்னோட்டம் இது ஒரு வெளியீடாக செயல்படும்போது 25mA ஆகும் (மூழ்கி, பிசிஎஃப் 8574 நோக்கி மின்னோட்டம் பாயும் போது) மற்றும் 300 µA (மூல, பிசிஎஃப் 8574 இலிருந்து தற்போதைய பாய்கிறது).
- La பதற்றம் மின்சாரம் 2.5 மற்றும் 6 வி ஆகும். நிற்கும் நுகர்வு மிகக் குறைவு, 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 உடனான இணைப்பு மிகவும் எளிதானது, நீங்கள் Vcc ஐ Arduino போர்டின் 5v முள் மற்றும் GND உடன் Arduino இன் GND உடன் இணைக்க வேண்டும். மறுபுறம், 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() { }