I2C LCD அடாப்டர் தொகுதிக்கான அறிமுகம்

சிக்கல்களை அகற்ற எங்கள் கருவியை முயற்சிக்கவும்





இந்த இடுகையில் நாம் “I2C” அல்லது “IIC” அல்லது “I square C” அடிப்படையிலான எல்சிடி அடாப்டர் தொகுதியைப் பார்க்கப் போகிறோம், இது Arduino மற்றும் LCD டிஸ்ப்ளே இடையேயான கம்பி இணைப்புகளை வெறும் 2 கம்பிகளாகக் குறைக்கும், மேலும் பல டன் GPIO ஊசிகளையும் சேமிக்கும் பிற சென்சார்கள் / டிரைவ்கள் போன்றவை.

I2C LCD அடாப்டர் தொகுதி பற்றி விவாதிப்பதற்கு முன், I2C பஸ் என்றால் என்ன, அது எவ்வாறு இயங்குகிறது என்பதைப் புரிந்துகொள்வது அவசியம்.



ஆனால் எப்படியிருந்தாலும் இந்த குறிப்பு எல்சிடி அடாப்டருடன் பணிபுரிய நீங்கள் ஐ 2 சி நெறிமுறையுடன் நிபுணராக இருக்க தேவையில்லை.

I2C இணைப்பின் விளக்கம்:

I2C இணைப்பின் விளக்கம்:

I2C அல்லது IIC என்பது 'இன்டர்-ஒருங்கிணைந்த சர்க்யூட்' என்பது பிலிப்ஸ் குறைக்கடத்திகள் கண்டுபிடித்த ஒரு தொடர் கணினி பஸ் ஆகும், இது இன்று NXP குறைக்கடத்திகள் என அழைக்கப்படுகிறது. இந்த பஸ் அமைப்பு 1982 இல் கண்டுபிடிக்கப்பட்டது.



பஸ் என்றால் என்ன?

பஸ் என்பது கேபிள்கள் / கம்பிகளின் ஒரு குழு, இது ஒரு சிப்பிலிருந்து மற்றொரு சில்லு / ஒரு சர்க்யூட் போர்டுக்கு மற்றொரு சர்க்யூட் போர்டுக்கு தரவை எடுத்துச் செல்கிறது.

I2C பஸ் நெறிமுறையின் முக்கிய நன்மை என்னவென்றால், ஆதரிக்கப்படும் மைக்ரோகண்ட்ரோலர் அல்லது சென்சார்கள் அல்லது சில்லுகளை இரண்டு கம்பிகளுடன் ஒன்றோடொன்று இணைக்க முடியும். இந்த நெறிமுறையின் மனதைக் கவரும் நன்மை என்னவென்றால், ஒரு மாஸ்டர் சாதனத்துடன் 127 வெவ்வேறு சில்லுகள் அல்லது சென்சார்கள் / டிரைவர்களை நாம் ஒன்றோடொன்று இணைக்க முடியும், இது பொதுவாக 2 கம்பிகளைக் கொண்ட மைக்ரோகண்ட்ரோலர்.

இரண்டு I2C கம்பிகள் யாவை?

இரண்டு கம்பிகள் முறையே எஸ்.டி.ஏ மற்றும் எஸ்.சி.எல் ஆகும், அவை முறையே சீரியல் டேட்டா மற்றும் சீரியல் கடிகாரம்.

I2C பஸ் வழியாக தரவு தகவல்தொடர்புகளை ஒத்திசைக்க சீரியல் கடிகாரம் அல்லது எஸ்சிஎல் பயன்படுத்தப்படுகிறது. எஸ்.டி.ஏ அல்லது சீரியல் டேட்டா என்பது தரவு வரி, இதில் உண்மையான தரவு மாஸ்டரிடமிருந்து அடிமைக்கு அனுப்பப்படுகிறது மற்றும் நேர்மாறாக. முதன்மை சாதனம் சீரியல் கடிகாரத்தை கட்டுப்படுத்துகிறது மற்றும் எந்த அடிமை சாதனத்திற்கு தொடர்பு கொள்ள வேண்டும் என்பதை தீர்மானிக்கிறது. எந்த அடிமை சாதனமும் முதலில் தகவல்தொடர்புகளைத் தொடங்க முடியாது, முதன்மை சாதனம் மட்டுமே செய்ய முடியும்.

சீரியல் தரவு வரி இருதரப்பு மற்றும் வலுவானது, ஒவ்வொரு 8 பிட் தரவையும் அனுப்பிய பிறகு, பெறும் சாதனம் ஒப்புதல் பிட்டை திருப்பி அனுப்புகிறது.

I2C நெறிமுறை எவ்வளவு வேகமாக உள்ளது?

1982 இல் உருவாக்கப்பட்ட I2C நெறிமுறையின் அசல் பதிப்பு 100 Kbps ஐ ஆதரித்தது. அடுத்த பதிப்பு 1992 இல் தரப்படுத்தப்பட்டது, இது 400Kbps (ஃபாஸ்ட் பயன்முறை) ஐ ஆதரித்தது மற்றும் 1008 சாதனங்களை ஆதரித்தது. அடுத்த பதிப்பு 1998 இல் 3.4 Mbps (அதிவேக பயன்முறை) உடன் உருவாக்கப்பட்டது.

2000, 2007, 2012 (5Mbps அல்ட்ரா-ஃபாஸ்ட் பயன்முறையுடன்) பல I2C பதிப்புகள் உருவாக்கப்பட்டன, மேலும் I2C இன் சமீபத்திய பதிப்பு 2014 இல் உருவாக்கப்பட்டது.

I2C பஸ்ஸில் ஏன் இழுக்கும் மின்தடையங்கள்?

எஸ்.டி.ஏ மற்றும் எஸ்சிஎல் ஆகியவை 'திறந்த-வடிகால்' ஆகும், அதாவது இரு வரிகளும் குறைவாக செல்ல முடியும், ஆனால் அது அதிக வரிகளை இயக்க முடியாது, எனவே ஒவ்வொரு வரிகளிலும் ஒரு இழுத்தல் மின்தடை இணைக்கப்பட்டுள்ளது.

ஆனால் எல்.சி.டி அல்லது ஆர்.டி.சி போன்ற பெரும்பாலான ஐ 2 சி தொகுதிகள் புல் அப் மின்தடைகளில் கட்டமைக்கப்பட்டுள்ளன, எனவே அது குறிப்பிடப்படாவிட்டால் ஒன்றை இணைக்க தேவையில்லை.

புல்-அப் / புல்-டவுன் மின்தடை: புல்-அப் மின்தடை என்பது ஒரு வரியின் தர்க்க அளவை உயர்வாகவோ அல்லது குறைவாகவோ இல்லாவிட்டால், ஒரு வரியின் தர்க்க அளவை உயர்வாக வைத்திருக்க, விநியோகத்தின் + வீ வரியுடன் இணைக்கப்பட்ட ஒரு மின்தடை ஆகும்.

ஒரு இழுத்தல்-கீழ் மின்தடை என்பது ஒரு வரியின் தர்க்க அளவை குறைந்ததாகவோ அல்லது குறைவாகவோ இல்லாவிட்டால் விநியோகத்தின் வரியுடன் இணைக்கப்பட்ட ஒரு மின்தடையாகும்.

இது வரிகளுக்குள் நுழையும் சத்தத்தையும் தடுக்கிறது.

I2C நெறிமுறையின் மேற்பரப்பை நாங்கள் சொறிந்தோம் என்று நம்புகிறோம், உங்களுக்கு I2C நெறிமுறை குறித்த கூடுதல் தகவல் தேவைப்பட்டால், தயவுசெய்து உலாவவும்

YouTube மற்றும் கூகிள்.

இப்போது I2C LCD தொகுதியைப் பார்ப்போம்:

I2C எல்சிடி தொகுதி பின்அவுட்கள்

எல்சிடி டிஸ்ப்ளேவுக்கு 16 வெளியீட்டு ஊசிகளும் உள்ளன, அவை 16 எக்ஸ் 2 எல்சிடி தொகுதிக்கு பின்னால் நேரடியாக சாலிடரிங் செய்யப்படலாம்.

உள்ளீட்டு ஊசிகளும் + 5 வி, ஜிஎன்டி, எஸ்.டி.ஏ மற்றும் எஸ்.சி.எல். Arduino Uno இல் உள்ள SDA மற்றும் SCL ஊசிகளும் முறையே A4 மற்றும் A5 ஊசிகளாகும். Arduino மெகா SDA பின் # 20 மற்றும் SCL பின் # 21 ஆகும்.

I2C அடாப்டர் இல்லாமல் மற்றும் அடாப்டருடன் எல்சிடியை அர்டுயினோவுக்கு கம்பி செய்யும் போது அது எப்படி இருக்கும் என்பதை ஒப்பிடுவோம்.

I2C அடாப்டர் இல்லாமல்:

I2C அடாப்டர் இல்லாமல் Arduino

I2C அடாப்டருடன்:

I2C அடாப்டரைப் பயன்படுத்தி Arduino

அடாப்டர் எல்சிடி டிஸ்ப்ளேவின் பின்புறத்தில் கரைக்கப்படுகிறது, மேலும் பிற பணிகளுக்காக ஜிபிஐஓ ஊசிகளின் சுமைகளை நாங்கள் சேமித்திருப்பதைக் காணலாம், மேலும் ஏ 4 மற்றும் ஏ 5 ஊசிகளில் மேலும் 126 ஐ 2 சி சாதனங்களைச் சேர்க்கலாம்.

நிலையான லிக்விட் கிரிஸ்டல் நூலகம் இந்த I2C எல்சிடி அடாப்டருடன் இயங்காது என்பதை நினைவில் கொள்க, இதற்காக ஒரு சிறப்பு நூலகம் உள்ளது, இது விரைவில் மூடப்படும், மேலும் குறியீட்டு எடுத்துக்காட்டுடன் இந்த தொகுதியை எவ்வாறு பயன்படுத்துவது என்பதை நாங்கள் உங்களுக்குக் காண்பிப்போம்.

I2C அடாப்டரை 16 x 2 காட்சிக்கு எவ்வாறு இணைப்பது

கட்டுரையின் மேலேயுள்ள பிரிவுகளில், I2C நெறிமுறையின் அடிப்படைகளை நாங்கள் கற்றுக்கொண்டோம், மேலும் I2C LCD அடாப்டர் தொகுதி குறித்த அடிப்படை கண்ணோட்டத்தை எடுத்தோம். இந்த இடுகையில், I2C எல்சிடி அடாப்டர் தொகுதியை 16 x 2 எல்சிடி டிஸ்ப்ளேவுடன் எவ்வாறு இணைப்பது என்பதை அறியப் போகிறோம், ஒரு எடுத்துக்காட்டுடன் நிரல் எவ்வாறு இருக்கும் என்பதைப் பார்ப்போம்.

I2C நெறிமுறையின் முக்கிய நன்மை என்னவென்றால், நாம் ஆதரிக்கும் சென்சார்கள் / உள்ளீடு / வெளியீட்டு சாதனங்களை இரண்டு வரிகளில் கம்பி செய்ய முடியும், மேலும் இது வரையறுக்கப்பட்ட GPIO ஊசிகளைக் கொண்டிருப்பதால் Arduino உடன் உதவியாக இருக்கும்.

இப்போது எல்.சி.டியுடன் தொகுதியை எவ்வாறு இணைப்பது என்று பார்ப்போம்.

தொகுதி 16 வெளியீட்டு ஊசிகளையும் 4 உள்ளீட்டு ஊசிகளையும் கொண்டுள்ளது. 16 x 2 எல்சிடி டிஸ்ப்ளேவின் பின்புறத்தில் அடாப்டரை நாம் சாலிடர் செய்யலாம். 4 உள்ளீட்டு ஊசிகளில், இரண்டு + 5 வி மற்றும் ஜிஎன்டி, மீதமுள்ள இரண்டு எஸ்.டி.ஏ மற்றும் எஸ்.சி.எல்.

பிற உள்ளீடு / வெளியீட்டு பணிகளுக்காக Arduino இல் நிறைய ஊசிகளை சேமித்ததை நாம் காணலாம்.

சிறிய திருகு இயக்கி (சிவப்பு பெட்டியில் சிறப்பிக்கப்பட்டுள்ளது) மூலம் பொட்டென்டோமீட்டரை சரிசெய்வதன் மூலம் காட்சியின் மாறுபாட்டை நாம் சரிசெய்யலாம்.

இப்போது பின்னொளியை நிரல் குறியீட்டிலேயே கட்டுப்படுத்தலாம்:

lcd.backlight ()

இது எல்சிடி டிஸ்ப்ளேயில் பின்னொளியை இயக்கும்.

lcd.noBacklight ()

இது எல்சிடி டிஸ்ப்ளேயில் பின்னொளியை முடக்கும்.

ஒரு ஜம்பர் இணைக்கப்பட்டிருப்பதை நாம் காணலாம், இது சிவப்பு பெட்டியில் சிறப்பிக்கப்படுகிறது, ஜம்பர் அகற்றப்பட்டால், நிரல் கட்டளையைப் பொருட்படுத்தாமல் பின்னொளி அணைக்கப்படும்.

இப்போது வன்பொருள் அமைப்பு முடிந்தது, இப்போது எவ்வாறு குறியீடு செய்வது என்று பார்ப்போம். I2C LCD தொகுதிக்கு சிறப்பு தேவை என்பதை நினைவில் கொள்க

நூலகம் மற்றும் முன்பே நிறுவப்பட்ட “லிக்விட் கிரிஸ்டல்” நூலகம் இயங்காது.

நீங்கள் இங்கிருந்து I2C LCD நூலகத்தைப் பதிவிறக்கம் செய்து Arduino IDE இல் சேர்க்கலாம்:

github.com/marcoschwartz/LiquidCrystal_I2C

முந்தைய இடுகையிலிருந்து I2C சாதனங்களில் முகவரி அல்லது மாஸ்டர் அல்லது மைக்ரோகண்ட்ரோலர் சாதனத்தை அடையாளம் கண்டு தொடர்பு கொள்ளக்கூடிய முகவரி இருப்பதை அறிந்தோம்.

பெரும்பாலான சந்தர்ப்பங்களில், I2C LCD தொகுதிக்கு முகவரி “0x27” ஆக இருக்கும். ஆனால் வெவ்வேறு உற்பத்திக்கு வெவ்வேறு முகவரி இருக்கலாம். நிரலில் சரியான முகவரியை உள்ளிட வேண்டும், அப்போதுதான் உங்கள் எல்சிடி காட்சி செயல்படும்.

முகவரியைக் கண்டுபிடிக்க 5V ஐ Vcc க்கும் GND ஐ Arduino இன் GND க்கும் I2C தொகுதியின் SCL முள் A5 க்கும் SDA ஐ A4 க்கும் இணைத்து கீழே உள்ள குறியீட்டைப் பதிவேற்றவும்.

இது இணைக்கப்பட்ட I2C சாதனங்களை ஸ்கேன் செய்து அவற்றின் முகவரியைக் காண்பிக்கும்.

// -------------------------------- //
#include
void setup()
{
Wire.begin()
Serial.begin(9600)
while (!Serial)
Serial.println('-----------------------')
Serial.println('I2C Device Scanner')
Serial.println('-----------------------')
}
void loop()
{
byte error
byte address
int Devices
Serial.println('Scanning...')
Devices = 0
for (address = 1 address <127 address++ )
{
Wire.beginTransmission(address)
error = Wire.endTransmission()
if (error == 0)
{
Serial.print('I2C device found at address 0x')
if (address <16)
{
Serial.print('0')
}
Serial.print(address, HEX)
Serial.println(' !')
Devices++
}
else if (error == 4)
{
Serial.print('Unknown error at address 0x')
if (address <16)
Serial.print('0')
Serial.println(address, HEX)
}
}
if (Devices == 0)
{
Serial.println('No I2C devices found ')
}
else
{
Serial.println('-------------- done -------------')
Serial.println('')
}
delay(5000)
}
// -------------------------------- //

குறியீட்டைப் பதிவேற்றி சீரியல் மானிட்டரைத் திறக்கவும்.

இரண்டு சாதனங்கள் கண்டறியப்பட்டு அவற்றின் முகவரிகள் காண்பிக்கப்படுவதை நாம் காண முடியும், ஆனால் நீங்கள் I2C LCD தொகுதியின் முகவரியை மட்டுமே கண்டுபிடிக்க விரும்பினால், ஸ்கேன் செய்யும் போது வேறு எந்த I2C சாதனங்களையும் இணைக்கக்கூடாது.
எனவே முடிவில் “0x27” என்ற முகவரி கிடைத்தது.

இரண்டு ஐ 2 சி சாதனங்கள், எல்சிடி தொகுதி மற்றும் ஆர்.டி.சி அல்லது நிகழ்நேர கடிகார தொகுதி இருப்பதால் இப்போது டிஜிட்டல் கடிகாரத்தை எடுத்துக்காட்டாக உருவாக்கப் போகிறோம். இரண்டு தொகுதிகள் இரண்டு கம்பிகளுடன் இணைக்கப்படும்.

பின்வரும் நூலகத்தைப் பதிவிறக்குக:
RTC நூலகம்: github.com/PaulStoffregen/DS1307RTC
TimeLib.h: github.com/PaulStoffregen/Time

ஆர்டிசிக்கு நேரத்தை எவ்வாறு அமைப்பது

Ar Arduino IDE ஐத் திறந்து கோப்பு> எடுத்துக்காட்டு> DS1307RTC> நேரத்தை அமைக்கவும்.
Complete பூர்த்தி செய்யப்பட்ட வன்பொருள் மற்றும் திறந்த சீரியல் மானிட்டருடன் குறியீட்டைப் பதிவேற்றவும், நீங்கள் முடித்துவிட்டீர்கள்.

சுற்று வரைபடம்:

திட்டம்:

//------------Program Developed by R.Girish-------//
#include
#include
#include
#include
LiquidCrystal_I2C lcd(0x27, 16, 2)
void setup()
{
lcd.init()
lcd.backlight()
}
void loop()
{
tmElements_t tm
lcd.clear()
if (RTC.read(tm))
{
if (tm.Hour >= 12)
{
lcd.setCursor(14, 0)
lcd.print('PM')
}
if (tm.Hour <12)
{
lcd.setCursor(14, 0)
lcd.print('AM')
}
lcd.setCursor(0, 0)
lcd.print('TIME:')
if (tm.Hour > 12)
{
if (tm.Hour == 13) lcd.print('01')
if (tm.Hour == 14) lcd.print('02')
if (tm.Hour == 15) lcd.print('03')
if (tm.Hour == 16) lcd.print('04')
if (tm.Hour == 17) lcd.print('05')
if (tm.Hour == 18) lcd.print('06')
if (tm.Hour == 19) lcd.print('07')
if (tm.Hour == 20) lcd.print('08')
if (tm.Hour == 21) lcd.print('09')
if (tm.Hour == 22) lcd.print('10')
if (tm.Hour == 23) lcd.print('11')
}
else
{
lcd.print(tm.Hour)
}
lcd.print(':')
lcd.print(tm.Minute)
lcd.print(':')
lcd.print(tm.Second)
lcd.setCursor(0, 1)
lcd.print('DATE:')
lcd.print(tm.Day)
lcd.print('/')
lcd.print(tm.Month)
lcd.print('/')
lcd.print(tmYearToCalendar(tm.Year))
} else {
if (RTC.chipPresent())
{
lcd.setCursor(0, 0)
lcd.print('RTC stopped!!!')
lcd.setCursor(0, 1)
lcd.print('Run SetTime code')
} else {
lcd.clear()
lcd.setCursor(0, 0)
lcd.print('Read error!')
lcd.setCursor(0, 1)
lcd.print('Check circuitry!')
}
}
delay(1000)
}
//------------Program Developed by R.Girish-------//

குறிப்பு:

LiquidCrystal_I2C lcd (0x27, 16, 2)

“0x27” என்பது ஸ்கேன் செய்வதன் மூலம் நாம் கண்டறிந்த முகவரி மற்றும் 16 மற்றும் 2 ஆகியவை எல்சிடி டிஸ்ப்ளேயில் உள்ள வரிசைகள் மற்றும் நெடுவரிசைகளின் எண்ணிக்கை.

ஆர்டிசிக்கு நாங்கள் முகவரியைக் கண்டுபிடிக்க வேண்டிய அவசியமில்லை, ஆனால் “0x68” ஐ ஸ்கேன் செய்யும் போது கண்டுபிடித்தோம், ஆனால் எப்படியும் ஆர்டிசி நூலகம் அதைக் கையாளும்.

கம்பி நெரிசலை எவ்வளவு குறைத்து, ஆர்டுயினோவில் ஜிபிஐஓ ஊசிகளை சேமித்தோம் என்பதை இப்போது பார்ப்போம்.

சிவப்பு பெட்டியில் சிறப்பிக்கப்பட்டுள்ள 4 கம்பிகள் மட்டுமே எல்சிடி டிஸ்ப்ளேவுடன் இணைக்கப்பட்டுள்ளன.

Arduino இலிருந்து 4 கம்பிகள் மட்டுமே இணைக்கப்பட்டுள்ளன, மேலும் RTC தொகுதி ஒரே வரிகளைப் பகிர்ந்து கொள்கிறது.

இப்போது நீங்கள் I2C பற்றிய அடிப்படை அறிவைப் பெற்றுள்ளீர்கள், மேலும் I2C LCD அடாப்டர் தொகுதியை எவ்வாறு பயன்படுத்துவது.
இந்த இடுகை உங்களுக்கு பிடிக்குமா? உங்களுக்கு ஏதேனும் கேள்விகள் உள்ளனவா? கருத்து பிரிவில் வெளிப்படுத்தவும், நீங்கள் விரைவான பதிலைப் பெறலாம்.




முந்தைய: எளிய டிரான்சிஸ்டர் டையோடு சோதனையாளர் சுற்று அடுத்து: இந்த ஐஆர் ரிமோட் கண்ட்ரோல் ரேஞ்ச் எக்ஸ்டெண்டர் சர்க்யூட் செய்யுங்கள்