- CAN அறிமுகம்
- SPI & I2C ஐ விட CAN இன் ஒப்பீடு
- நெறிமுறை பயன்பாடுகள் முடியும்
- Arduino இல் CAN நெறிமுறையை எவ்வாறு பயன்படுத்துவது
- கூறுகள் தேவை
- சுற்று வரைபடம்
- இரண்டு MCP2515 CAN தொகுதிகளுக்கு இடையிலான இணைப்பு
- CAN தகவல்தொடர்புக்கான புரோகிராமிங் Arduino
- டிரான்ஸ்மிட்டர் பக்க குறியீடு விளக்கம் (அர்டுடினோ நானோ)
- பெறுநரின் பக்க குறியீடு விளக்கம் (Arduino UNO)
- Arduino இல் CAN தகவல்தொடர்பு வேலை
இன்று எந்த சராசரி காரும் தகவல்களை உணர்ந்து பரிமாறிக்கொள்ள 60 முதல் 100 சென்சார் அலகுகளைக் கொண்டுள்ளது. தன்னியக்க ஓட்டுநர், ஏர்பேக் சிஸ்டம், டயர் பிரஷர் கண்காணிப்பு, குரூஸ் கண்ட்ரோல் சிஸ்டம் போன்ற அம்சங்களுடன் கார் தொடர்ந்து தங்கள் காரை மிகவும் புத்திசாலித்தனமாக்குகிறது. இந்த எண்ணிக்கை அதிக அளவில் செல்லும் என்று எதிர்பார்க்கப்படுகிறது. மற்ற சென்சார்களைப் போலன்றி, இந்த சென்சார்கள் முக்கியமான தகவல்களைச் செயலாக்குகின்றன, எனவே இந்த சென்சார்களிடமிருந்து தரவுகள் நிலையான வாகன தொடர்பு நெறிமுறைகளைப் பயன்படுத்தி தொடர்பு கொள்ளப்பட வேண்டும். எடுத்துக்காட்டாக, வேகம், தூண்டுதல் நிலை போன்ற கப்பல் கட்டுப்பாட்டு அமைப்பு தரவு மின்னணு கட்டுப்பாட்டு அலகுக்கு (ஈசியு) அனுப்பப்படும் முக்கிய மதிப்புகள்.காரின் முடுக்கம் அளவை தீர்மானிக்க, இங்கே தவறான தகவல்தொடர்பு அல்லது தரவு இழப்பு முக்கியமான தோல்விகளுக்கு வழிவகுக்கும். எனவே UART, SPI அல்லது I2C போன்ற நிலையான தகவல் தொடர்பு நெறிமுறைகளைப் போலன்றி, வடிவமைப்பாளர்கள் LIN, CAN, FlexRay போன்ற நம்பகமான ஆட்டோமொபைல் தொடர்பு நெறிமுறைகளைப் பயன்படுத்துகின்றனர்.
கிடைக்கக்கூடிய அனைத்து நெறிமுறைகளிலும் CAN மிகவும் முக்கியமாகப் பயன்படுத்தப்படுகிறது மற்றும் பிரபலமானது. CAN என்றால் என்ன, எவ்வாறு இயங்குகிறது என்பதை நாங்கள் ஏற்கனவே விவாதித்தோம். எனவே, இந்த கட்டுரையில் நாம் மீண்டும் அடிப்படைகளை ஆராய்வோம், பின்னர் இறுதியாக இரண்டு அர்டுயினோக்களுக்கு இடையில் தரவைப் பரிமாறிக்கொள்வோம். சுவாரஸ்யமானதாகத் தெரிகிறது! எனவே, தொடங்குவோம்.
CAN அறிமுகம்
CAN aka Controller Area Network என்பது தொழில்துறை மற்றும் வாகன பயன்பாடுகளுக்காக வடிவமைக்கப்பட்ட ஒரு தொடர் தொடர்பு பஸ் ஆகும். இது பல சாதனங்களுக்கிடையேயான தகவல்தொடர்புக்கு பயன்படுத்தப்படும் செய்தி அடிப்படையிலான நெறிமுறை. கீழே காட்டப்பட்டுள்ளதைப் போல பல CAN சாதனங்கள் ஒன்றாக இணைக்கப்படும்போது, இணைப்பு எங்கள் மைய நரம்பு மண்டலத்தைப் போல செயல்படும் ஒரு பிணையத்தை உருவாக்குகிறது, எந்தவொரு சாதனமும் முனையிலுள்ள வேறு எந்த சாதனத்துடனும் பேச அனுமதிக்கிறது.

ஒரு கேன் நெட்வொர்க் மேலே காட்டப்பட்டுள்ளபடி இரு திசை தரவு பரிமாற்றத்திற்காக உயர் மற்றும் கேன் குறைந்த இரண்டு கம்பிகளைக் கொண்டிருக்கும். பொதுவாக CAN க்கான தகவல்தொடர்பு வேகம் 50 Kbps முதல் 1Mbps வரை இருக்கும், தூரம் 1Mbps இல் 40 மீட்டர் முதல் 50kpbs இல் 1000 மீட்டர் வரை இருக்கும்.
CAN செய்தியின் வடிவம்:
CAN தகவல்தொடர்புகளில் தரவு ஒரு குறிப்பிட்ட செய்தி வடிவமைப்பாக பிணையத்தில் அனுப்பப்படுகிறது. இந்த செய்தி வடிவமைப்பில் பல பிரிவுகள் உள்ளன, ஆனால் இரண்டு முக்கிய பிரிவுகள் அடையாளங்காட்டி மற்றும் தரவு ஆகும், இது CAN பஸ்ஸில் செய்திகளை அனுப்பவும் பதிலளிக்கவும் உதவுகிறது.
அடையாளங்காட்டி அல்லது CAN ஐடி: அடையாளங்காட்டி ஒரு CAN ஐடி என்றும் அழைக்கப்படுகிறது அல்லது பிஜிஎன் (அளவுரு குழு எண்) என்றும் அழைக்கப்படுகிறது. CAN நெட்வொர்க்கில் இருக்கும் CAN சாதனங்களை அடையாளம் காண இது பயன்படுகிறது. அடையாளங்காட்டியின் நீளம் 11 அல்லது 29 பிட்கள் ஆகும், இது CAN நெறிமுறையின் வகையை அடிப்படையாகக் கொண்டது.
நிலையான CAN: 0-2047 (11-பிட்)
விரிவாக்கப்பட்ட CAN: 0-2 29 -1 (29-பிட்)
தரவு: இது உண்மையான சென்சார் / கட்டுப்பாட்டு தரவு, இது ஒரு சாதனத்தை மற்றொரு சாதனத்திற்கு அனுப்ப வேண்டும். அளவு தரவு 0 முதல் 8 பைட்டுகள் வரை எங்கும் இருக்கலாம்.
தரவு நீளக் குறியீடு (டி.எல்.சி): தற்போதுள்ள தரவு பைட்டுகளின் எண்ணிக்கைக்கு 0 முதல் 8 வரை.
CAN இல் பயன்படுத்தப்படும் கம்பிகள்:
CAN நெறிமுறை தகவல்களை அனுப்ப மற்றும் பெற CAN_H மற்றும் CAN_L ஆகிய இரண்டு கம்பிகளைக் கொண்டுள்ளது. இரண்டு கம்பிகளும் ஒரு மாறுபட்ட வரியாக செயல்படுகின்றன, அதாவது CAN சமிக்ஞை (0 அல்லது 1) CAN_L மற்றும் CAN_H க்கு இடையிலான சாத்தியமான வேறுபாட்டால் குறிக்கப்படுகிறது. வேறுபாடு நேர்மறை மற்றும் ஒரு குறிப்பிட்ட குறைந்தபட்ச மின்னழுத்தத்தை விட பெரியதாக இருந்தால் அது 1 மற்றும் வேறுபாடு எதிர்மறையாக இருந்தால் அது 0 ஆகும்.
பொதுவாக ஒரு முறுக்கப்பட்ட ஜோடி கேபிள் CAN தகவல்தொடர்புக்கு பயன்படுத்தப்படுகிறது. படத்தில் காட்டப்பட்டுள்ளபடி ஒற்றை 120-ஓம் மின்தடை பொதுவாக CAN நெட்வொர்க்கின் இரண்டு முனைகளிலும் பயன்படுத்தப்படுகிறது, ஏனென்றால் வரி சமநிலையுடனும் அதே ஆற்றலுடனும் பிணைக்கப்பட வேண்டும்.
SPI & I2C ஐ விட CAN இன் ஒப்பீடு
ஆர்டுயினோவுடன் எஸ்.பி.ஐ மற்றும் அர்டுயினோவுடன் ஐ.ஐ.சி எவ்வாறு பயன்படுத்துவது என்பதை நாங்கள் ஏற்கனவே கற்றுக்கொண்டதால், எஸ்.பி.ஐ மற்றும் ஐ 2 சி ஆகியவற்றின் அம்சங்களை கேன் உடன் ஒப்பிடுவோம்
| அளவுரு | SPI | I2C | முடியும் |
| வேகம் | 3Mbps முதல் 10Mbps வரை | தரநிலை: 100Kbps | 10KBps முதல் 1MBps வரை பயன்படுத்தப்படும் கம்பியின் நீளத்தையும் பொறுத்தது |
| வேகமாக: 400 கே.பி.பி.எஸ் | |||
| ஹைஸ்பீட்: 3.4Mbps | |||
| வகை | ஒத்திசைவு | ஒத்திசைவு | ஒத்திசைவற்ற |
| கம்பிகளின் எண்ணிக்கை | 3+ (MISO, MOSI, SCK, SS1, SS2… SS (n)) | 2 கம்பிகள் (எஸ்.டி.ஏ, எஸ்.சி.எல்) | 2 கம்பிகள் (CAN_H, CAN_L) |
| டூப்ளக்ஸ் | முழு இரட்டை | அரை இரட்டை | அரை இரட்டை |
நெறிமுறை பயன்பாடுகள் முடியும்
- CAN நெறிமுறையின் வலுவான தன்மை மற்றும் நம்பகத்தன்மை காரணமாக, அவை தானியங்கி, தொழில்துறை இயந்திரங்கள், விவசாயம், மருத்துவ உபகரணங்கள் போன்ற தொழில்களில் பயன்படுத்தப்படுகின்றன.
- வயரிங் சிக்கலானது CAN இல் குறைக்கப்படுவதால் அவை முக்கியமாக கார் போன்ற வாகன பயன்பாடுகளில் பயன்படுத்தப்படுகின்றன.
- செயல்படுத்த குறைந்த செலவு மற்றும் வன்பொருள் கூறுகளின் விலையும் குறைவாக உள்ளது.
- CAN பஸ் சாதனங்களைச் சேர்க்க மற்றும் அகற்ற எளிதானது.
Arduino இல் CAN நெறிமுறையை எவ்வாறு பயன்படுத்துவது
Arduino எந்த உள்ளடிக்கிய CAN போர்ட்டையும் கொண்டிருக்கவில்லை என்பதால், MCP2515 எனப்படும் CAN தொகுதி பயன்படுத்தப்படுகிறது. இந்த CAN தொகுதி SPI தகவல்தொடர்புகளைப் பயன்படுத்தி Arduino உடன் இணைக்கப்பட்டுள்ளது. MCP2515 பற்றி மேலும் விரிவாகப் பார்ப்போம், அது Arduino உடன் எவ்வாறு இணைக்கப்பட்டுள்ளது.
MCP2515 CAN தொகுதி:

MCP2515 தொகுதிக்கு ஒரு CAN கட்டுப்படுத்தி MCP2515 உள்ளது, இது அதிவேக CAN டிரான்ஸ்ஸீவர் ஆகும். MCP2515 க்கும் MCU க்கும் இடையிலான தொடர்பு SPI மூலம். எனவே, எஸ்பிஐ இடைமுகத்தைக் கொண்ட எந்த மைக்ரோகண்ட்ரோலருடன் இடைமுகப்படுத்துவது எளிது.
CAN பஸ் கற்க விரும்பும் ஆரம்பகட்டிகளுக்கு, இந்த தொகுதி ஒரு நல்ல தொடக்கமாக செயல்படும். இந்த CAN SPI வாரியம் தொழில்துறை ஆட்டோமேஷன், வீட்டு ஆட்டோமேஷன் மற்றும் பிற வாகன உட்பொதிக்கப்பட்ட திட்டங்களுக்கு ஏற்றது.
MCP2515 இன் அம்சங்கள் மற்றும் விவரக்குறிப்பு:
- அதிவேக CAN டிரான்ஸ்ஸீவர் TJA1050 ஐப் பயன்படுத்துகிறது
- பரிமாணம்: 40 × 28 மி.மீ.
- மல்டி கேன் பஸ் இடைமுகத்தை விரிவாக்குவதற்கான SPI கட்டுப்பாடு
- 8MHZ படிக ஆஸிலேட்டர்
- 120Ω முனைய எதிர்ப்பு
- சுயாதீன விசை, எல்.ஈ.டி காட்டி, சக்தி காட்டி உள்ளது
- 1 Mb / s CAN செயல்பாட்டை ஆதரிக்கிறது
- குறைந்த தற்போதைய காத்திருப்பு செயல்பாடு
- 112 முனைகளை இணைக்க முடியும்
MCP2515 CAN தொகுதியின் பின்அவுட்:
|
முள் பெயர் |
பயன்படுத்தவும் |
|
வி.சி.சி. |
5 வி பவர் உள்ளீட்டு முள் |
|
ஜி.என்.டி. |
தரை முள் |
|
சி.எஸ் |
SPI SLAVE தேர்ந்தெடுக்கப்பட்ட முள் (செயலில் குறைந்த) |
|
அதனால் |
SPI முதன்மை உள்ளீட்டு அடிமை வெளியீடு முன்னணி |
|
எஸ்.ஐ. |
SPI முதன்மை வெளியீடு அடிமை உள்ளீட்டு முன்னணி |
|
எஸ்.சி.எல்.கே. |
SPI கடிகார முள் |
|
INT |
MCP2515 குறுக்கீடு முள் |
இந்த டுடோரியலில், ஈரப்பதம் மற்றும் வெப்பநிலை (டி.எச்.டி 11) சென்சார் தரவை அர்டுயினோ நானோவிலிருந்து அர்டுயினோ யூனோவுக்கு CAN பஸ் தொகுதி MCP2515 வழியாக எவ்வாறு அனுப்புவது என்று பார்ப்போம்.
கூறுகள் தேவை
- Arduino UNO
- அர்டுடினோ நானோ
- டி.எச்.டி 11
- 16x2 எல்சிடி டிஸ்ப்ளே
- MCP2515 CAN தொகுதி - 2
- 10 கே பொட்டென்டோமீட்டர்
- ப்ரெட்போர்டு
- கம்பிகளை இணைக்கிறது
சுற்று வரைபடம்

டிரான்ஸ்மிட்டர் பக்கத்தில் இணைப்பு:
|
கூறு - முள் |
அர்டுடினோ நானோ |
|
MPC2515 - வி.சி.சி. |
+ 5 வி |
|
MPC2515 - GND |
ஜி.என்.டி. |
|
எம்.பி.சி 2515 - சி.எஸ் |
டி 10 (SPI_SS) |
|
MPC2515 - SO |
D12 (SPI_MISO) |
|
MPC2515 - எஸ்.ஐ. |
D11 (SPI_MOSI) |
|
MPC2515 - SCK |
D13 (SPI_SCK) |
|
MPC2515 - INT |
டி 2 |
|
டி.எச்.டி 11 - வி.சி.சி. |
+ 5 வி |
|
DHT11 - GND |
ஜி.என்.டி. |
|
DHT11 - வெளியே |
அ 0 |
CAN ரிசீவர் பக்கத்தில் சுற்று இணைப்புகள்:
|
கூறு - முள் |
Arduino UNO |
|
MPC2515 - வி.சி.சி. |
+ 5 வி |
|
MPC2515 - GND |
ஜி.என்.டி. |
|
எம்.பி.சி 2515 - சி.எஸ் |
10 (SPI_SS) |
|
MPC2515 - SO |
12 (SPI_MISO) |
|
MPC2515 - எஸ்.ஐ. |
11 (SPI_MOSI) |
|
MPC2515 - SCK |
13 (SPI_SCK) |
|
MPC2515 - INT |
2 |
|
எல்சிடி - வி.எஸ்.எஸ் |
ஜி.என்.டி. |
|
எல்சிடி - விடிடி |
+ 5 வி |
|
எல்சிடி - வி 0 |
10K பொட்டென்டோமீட்டர் சென்டர் பின் |
|
எல்சிடி - ஆர்.எஸ் |
3 |
|
எல்சிடி - ஆர்.டபிள்யூ |
ஜி.என்.டி. |
|
எல்சிடி - இ |
4 |
|
எல்சிடி - டி 4 |
5 |
|
எல்சிடி - டி 5 |
6 |
|
எல்சிடி - டி 6 |
7 |
|
எல்சிடி - டி 7 |
8 |
|
எல்சிடி - ஏ |
+ 5 வி |
|
எல்சிடி - கே |
ஜி.என்.டி. |
இரண்டு MCP2515 CAN தொகுதிகளுக்கு இடையிலான இணைப்பு
எச் - அதிக முடியும்
எல் - குறைவாக இருக்கலாம்
|
MCP2515 (Arduino நானோ) |
MCP2515 (Arduino UNO) |
|
எச் |
எச் |
|
எல் |
எல் |
எல்லா இணைப்புகளும் செய்யப்பட்டவுடன், எனது வன்பொருள் கீழே உள்ளது

CAN தகவல்தொடர்புக்கான புரோகிராமிங் Arduino
முதலில் நாம் Arduino IDE இல் CAN க்காக ஒரு நூலகத்தை நிறுவ வேண்டும். பின்வரும் நூலகத்தைப் பயன்படுத்துவதன் மூலம் அர்டுயினோவுடன் MCP2515 CAN தொகுதி இடைமுகப்படுத்துவது எளிதாகிறது.
- Arduino CAN MCP2515 நூலகத்தின் ZIP கோப்பைப் பதிவிறக்கவும்.
- Arduino IDE இலிருந்து: ஸ்கெட்ச் -> நூலகத்தைச் சேர்க்கவும் ->.ZIP நூலகத்தைச் சேர்க்கவும்
இந்த டுடோரியல் குறியீட்டில் இரண்டு பகுதிகளாக ஒன்று CAN டிரான்ஸ்மிட்டர் குறியீடு (Arduino நானோ) என்றும் மற்றொன்று CAN ரிசீவர் குறியீடு (Arduino UNO) என்றும் பிரிக்கப்பட்டுள்ளது, இவை இரண்டும் இந்த பக்கத்தின் கீழே காணப்படுகின்றன. அதற்கான விளக்கம் பின்வருமாறு.
தரவை அனுப்புவதற்கும் பெறுவதற்கும் நிரலை எழுதுவதற்கு முன், மேலே உள்ள படிகளைப் பின்பற்றி நீங்கள் நூலகத்தை நிறுவியுள்ளீர்கள் என்பதை உறுதிப்படுத்திக் கொள்ளுங்கள், மேலும் CAN தொகுதி MCP2515 உங்கள் திட்டத்தில் பின்வருமாறு தொடங்கப்படுகிறது.
MCP2515 CAN தொகுதியைத் தொடங்கவும்:
MCP2515 உடன் இணைப்பை உருவாக்க படிகளைப் பின்பற்றவும்:
1. SPI CS இணைக்கப்பட்டுள்ள முள் எண்ணை அமைக்கவும் (இயல்புநிலையாக 10)
MCP2515 mcp2515 (10);
2. பாட் வீதம் மற்றும் ஆஸிலேட்டர் அதிர்வெண் அமைக்கவும்
mcp2515.setBitrate (CAN_125KBPS, MCP_8MHZ);
கிடைக்கும் பாட் விகிதங்கள்:
CAN_5KBPS, CAN_10KBPS, CAN_20KBPS, CAN_31K25BPS, CAN_33KBPS, CAN_40KBPS, CAN_50KBPS, CAN_80KBPS, CAN_83K3BPS, CAN_95KBPS, CAN_100KBPS, CAN_125,
கிடைக்கும் கடிகார வேகம்:
MCP_20MHZ, MCP_16MHZ, MCP_8MHZ
3. முறைகளை அமைக்கவும்.
mcp2515.setNormalMode (); mcp2515.setLoopbackMode (); mcp2515.setListenOnlyMode ();
டிரான்ஸ்மிட்டர் பக்க குறியீடு விளக்கம் (அர்டுடினோ நானோ)
டிரான்ஸ்மிட்டர் பிரிவில், அர்டுயினோ நானோ MCP2515 CAN தொகுதிடன் SPI ஊசிகளின் மூலம் இணைக்கப்பட்டுள்ளது மற்றும் DHT11 வெப்பநிலை மற்றும் ஈரப்பதம் தரவை CAN பஸ்ஸுக்கு அனுப்புகிறது.
முதலில் தேவையான நூலகங்கள் சேர்க்கப்பட்டுள்ளன, எஸ்பிஐ கம்யூனிகேஷனைப் பயன்படுத்துவதற்கான எஸ்பிஐ நூலகம், கேன் கம்யூனிகேஷனைப் பயன்படுத்துவதற்கான எம்சிபி 2515 நூலகம் மற்றும் ஆர்டுயினோவுடன் டிஹெச்.டி சென்சார் பயன்படுத்த டிஹெச்.டி நூலகம் . நாங்கள் முன்பு DHT11 ஐ Arduino உடன் இணைத்தோம்.
#சேர்க்கிறது
இப்போது Arduino நானோவின் A0 உடன் இணைக்கப்பட்டுள்ள DHT11 (OUT pin) இன் முள் பெயர் வரையறுக்கப்பட்டுள்ளது
# DHTPIN A0 ஐ வரையறுக்கவும்
மேலும், DHTTYPE DHT11 என வரையறுக்கப்படுகிறது.
# DHTTYPE DHT11 ஐ வரையறுக்கவும்
CAN செய்தி வடிவமைப்பை சேமிப்பதற்கான ஒரு canMsg struct தரவு வகை.
struct can_frame canMsg;
SPI CS இணைக்கப்பட்டுள்ள முள் எண்ணை அமைக்கவும் (இயல்புநிலையாக 10)
MCP2515 mcp2515 (10);
மேலும், வகுப்பு DHT க்கான DHT பொருளுடன் DHT முள் Arduino நானோ மற்றும் DHT வகை DHT11 துவக்கப்படுகிறது.
DHT dht (DHTPIN, DHTTYPE);
வெற்றிட அமைப்பில் அடுத்தது ():
பின்வரும் அறிக்கையைப் பயன்படுத்தி SPI தகவல்தொடர்புகளைத் தொடங்குங்கள்
SPI.begin ();
பின்னர் DHT11 சென்சாரிலிருந்து வெப்பநிலை மற்றும் ஈரப்பதம் மதிப்புகளைப் பெறத் தொடங்க கீழேயுள்ள அறிக்கையைப் பயன்படுத்தவும்.
dht.begin ();
அடுத்து MCP2515 பின்வரும் கட்டளையைப் பயன்படுத்தி RESET செய்யப்படுகிறது
mcp2515.reset ();
இப்போது MCP2515 500KBPS மற்றும் 8MHZ வேகத்தை கடிகாரமாக அமைத்துள்ளது
mcp2515.setBitrate (CAN_500KBPS, MCP_8MHZ);
மேலும் MCP2525 சாதாரண பயன்முறையில் அமைக்கப்பட்டுள்ளது
mcp2515.setNormalMode ();
வெற்றிட சுழற்சியில் ():
பின்வரும் அறிக்கை ஈரப்பதம் மற்றும் வெப்பநிலை மதிப்பைப் பெறுகிறது மற்றும் ஒரு முழு எண் h மற்றும் t இல் சேமிக்கிறது.
int h = dht.readHumidity (); int t = dht.readTemperature ();
அடுத்து CAN ஐடி 0x036 (விருப்பப்படி) மற்றும் டி.எல்.சி 8 ஆக வழங்கப்படுகிறது, மேலும் தரவு மற்றும் தரவுகளுக்கு h மற்றும் t தரவை கொடுத்து அனைத்து தரவையும் 0 உடன் ஓய்வெடுக்கிறோம்.
canMsg.can_id = 0x036; canMsg.can_dlc = 8; canMsg.data = h; // canMsg.data = t இல் ஈரப்பதம் மதிப்பைப் புதுப்பிக்கவும் ; // canMsg.data = 0x00 இல் வெப்பநிலை மதிப்பைப் புதுப்பிக்கவும் ; // அனைத்தையும் 0 canMsg.data = 0x00; canMsg.data = 0x00; canMsg.data = 0x00; canMsg.data = 0x00; canMsg.data = 0x00;
எல்லாவற்றிற்கும் மேலாக, CAN BUS க்கு செய்தியை அனுப்ப பின்வரும் அறிக்கையைப் பயன்படுத்துகிறோம்.
mcp2515.sendMessage (& canMsg);
எனவே இப்போது வெப்பநிலை மற்றும் ஈரப்பதம் தரவு CAN பஸ்ஸுக்கு செய்தியாக அனுப்பப்படுகின்றன.
பெறுநரின் பக்க குறியீடு விளக்கம் (Arduino UNO)
ரிசீவர் பிரிவில், அர்டுயினோ யுஎன்ஓ எம்சிபி 2515 மற்றும் 16 எக்ஸ் 2 எல்சிடி டிஸ்ப்ளேவுடன் இணைக்கப்பட்டுள்ளது. இங்கே Arduino UNO CAN பஸ்ஸிலிருந்து வெப்பநிலை மற்றும் ஈரப்பதத்தைப் பெறுகிறது மற்றும் LCD இல் பெறப்பட்ட தரவைக் காண்பிக்கும்.
முதலில் தேவையான நூலகங்கள் சேர்க்கப்பட்டுள்ளன, எஸ்பிஐ கம்யூனிகேஷனைப் பயன்படுத்துவதற்கான எஸ்பிஐ நூலகம், கேன் கம்யூனிகேஷனைப் பயன்படுத்துவதற்கான எம்சிபி 2515 நூலகம் மற்றும் ஆர்டுயினோவுடன் 16 எக்ஸ் 2 எல்சிடியைப் பயன்படுத்த லிக்விட் கிரைசிட்டல் நூலகம் .
#சேர்க்கிறது
அடுத்து Arduino UNO உடன் இணைக்கப் பயன்படுத்தப்படும் LCD ஊசிகளும் வரையறுக்கப்படுகின்றன.
const int rs = 3, en = 4, d4 = 5, d5 = 6, d6 = 7, d7 = 8; லிக்விட் கிரிஸ்டல் எல்சிடி (ஆர்எஸ், என், டி 4, டி 5, டி 6, டி 7);
CAN செய்தி வடிவமைப்பை சேமிக்க ஒரு struct தரவு வகை அறிவிக்கப்படுகிறது.
struct can_frame canMsg;
SPI CS இணைக்கப்பட்டுள்ள முள் எண்ணை அமைக்கவும் (இயல்புநிலையாக 10)
MCP2515 mcp2515 (10);
வெற்றிட அமைப்பில் ():
முதலில் எல்சிடி 16x2 பயன்முறையில் அமைக்கப்பட்டு வரவேற்பு செய்தி காண்பிக்கப்படும்.
lcd.begin (16,2); lcd.setCursor (0,0); lcd.print ("CIRCUIT DIGEST"); lcd.setCursor (0,1); lcd.print ("CAN ARDUINO"); தாமதம் (3000); lcd.clear ();
பின்வரும் அறிக்கையைப் பயன்படுத்தி SPI தகவல்தொடர்புகளைத் தொடங்குங்கள்.
SPI.begin ();
அடுத்து MCP2515 பின்வரும் கட்டளையைப் பயன்படுத்தி RESET செய்யப்படுகிறது.
mcp2515.reset ();
இப்போது MCP2515 500KBPS மற்றும் 8MHZ வேகத்தை கடிகாரமாக அமைத்துள்ளது.
mcp2515.setBitrate (CAN_500KBPS, MCP_8MHZ);
மேலும் MCP2525 சாதாரண பயன்முறையில் அமைக்கப்பட்டுள்ளது.
mcp2515.setNormalMode ();
வெற்றிட சுழற்சியில் அடுத்தது ():
CAN பஸ்ஸிலிருந்து செய்தியைப் பெற பின்வரும் அறிக்கை பயன்படுத்தப்படுகிறது. செய்தி கிடைத்தால், அது நிபந்தனைக்குள் வரும்.
if (mcp2515.readMessage (& canMsg) == MCP2515:: ERROR_OK)
இல் என்றால் நிலையில் தரவும் பெறப்படவில்லை மற்றும் கேட்ச் சேமிக்கப்படுகிறது anMsg , வெப்பநிலை மதிப்பு உள்ளது என்று ஈரப்பதம் மதிப்பு மற்றும் தரவு உள்ளது என்று தரவு. இரண்டு மதிப்புகளும் ஒரு முழு எண் x மற்றும் y இல் சேமிக்கப்படுகின்றன.
int x = canMsg.data; int y = canMsg.data;
மதிப்புகளைப் பெற்ற பிறகு, வெப்பநிலை மற்றும் ஈரப்பதம் மதிப்புகள் பின்வரும் அறிக்கையைப் பயன்படுத்தி 16x2 எல்சிடி காட்சியில் காட்டப்படும்.
lcd.setCursor (0,0); lcd.print ("ஈரப்பதம்:"); lcd.print (x); lcd.setCursor (0,1); lcd.print ("தற்காலிக:"); lcd.print (y); தாமதம் (1000); lcd.clear ();
Arduino இல் CAN தகவல்தொடர்பு வேலை
வன்பொருள் தயாரானதும், அந்தந்த Arduino பலகைகளில் CAN டிரான்ஸ்மிட்டர் மற்றும் CAN ரிசீவர் (முழுமையான நிரல்கள் கீழே கொடுக்கப்பட்டுள்ளன) க்கான நிரலைப் பதிவேற்றவும். இயங்கும் போது, டிஹெச்.டி 11 படிக்கும் வெப்பநிலை மதிப்பு CAN தகவல்தொடர்பு மூலம் மற்றொரு அர்டுயினோவுக்கு அனுப்பப்படும் மற்றும் 2 வது ஆர்டுயினோவின் எல்சிடியில் காண்பிக்கப்படும், கீழே உள்ள படத்தில் நீங்கள் காணலாம். எல்சிடியில் காட்டப்படும் வெப்பநிலை உண்மையான அறை வெப்பநிலைக்கு அருகில் இருக்கிறதா என்று சோதிக்க எனது ஏசி ரிமோட்டையும் பயன்படுத்தினேன்.

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