ค่มือการใช้งาน et-mega uˇ-rsˇ˝˛ ู · 2017-10-27 ·...
Post on 17-Jan-2020
2 Views
Preview:
TRANSCRIPT
คมอการใชงาน ET-MEGA��U�-RS���
ET-MEGA32U4-RS485 หนา 1
ET-MEGA32U4-RS485
บอรด ET-MEGA32U4-RS485 เปนบอรดไมโครคอนโทรลเลอรตระกล AVR ซ�งสามารถเลอกพฒนาโปรแกรม
ดวยภาษาตางๆท�รองรบการทางานของไมโครคอนโทรลเลอรตระกล AVR เบอร ATMEGA32U4 หรอ C++ บน
แพลตฟอรมของ Arduino โดยบอรด ET-MEGA32U4-RS485 ถกออกแบบใหเปนบอรดคอนโทรลขนาดเลกท�ม
องคประกอบพ .นฐานครบถวนในบอรดเดยว เหมาะสมสาหรบนาไปประยกตใชงานในการควบคมท .งแบบท�ทางานเด�ยวๆ
อสระ Standalone หรอทางานรวมกนโดยการเช�อมโยงเปนเครอขายผานระบบสญญาณส�อสารแบบ RS485 Bus
• มบสส�อสาร RS485 2-Wire Half Duplex พรอมข .วตอแบบ Terminal 7.62mm และ RJ45 ขนานกนอยาง
ละ 2 ชด เพ�มความสะดวกในการตอใชงานเปนเครอขายพวงกนแบบบสไดโดยสะดวก ซ�งบอรดออกแบบให
สามารถตอรวมกนในบสไดมากถง 67จด โดยม Jumper จานวน 9บตสาหรบเลอกกาหนดตาแหนงแอดเดรสให
แตละบอรดมตาแหนงแอดเดรสไมซ .ากน และสามารถตอไดไกลเปนระยะทางรวมกนไดถง :7;;เมตร
• มแหลงจายไฟแบบ Switching Regulate ขนาด 5V/1A รองรบแรงดน Input ต .งแต 7-30V พรอมแผน
ระบายความรอนทาใหสามารถใชงานตอเน�องกนเปนเวลานานๆไดอยางไมมปญหา
• ม Output RELAY ขนาด 10A จานวน 7ชด สาหรบใชทาหนาท�เปนสวตช เปด ปด อปกรณไฟฟาตางๆ ผาน
หนาสมผสแบบ NO/COMMON คอหนาสมผสเช�อมตอถงกนเม�อส�ง ON RELAY พรอมวงจรลดสญญาณ
รบกวนท�เกดจากการอารคของกระแสกระชากในขณะหนาสมผสรเลยตดและตอในกรณนาหนาสมผสไปใช
ส�งงานเปดปดอปกรณจาพวกขดลวดเชน มอเตอร โซลนนอยดวาลว แมกเนตกซ ฯลฯ
• ม RTC(Real Time Clock) เบอร DS3231 พรอมแบตเตอรร� Backup
คมอการใชงาน ET-MEGA��U�-RS���
ET-MEGA32U4-RS485 หนา 2
• มบสส�อสาร I2C Bus ท .งแบบใชงานกบอปกรณท�เปน 3V และ 5V สาหรบขยายอปกรณ Input / Output แบบ
ตางๆผาน I2C Bus หรอ เช�อมตอกบอปกรณเซนเซอรตางๆท�เปน I2C Bus
• มข .วตอ I/O บสแบบ Digital ขนาด 1บต โดยใชข .วแบบ 3 Pin สาหรบประยกตใชงานรวมกบ Input/Output
แบบตางๆ เชน Input สวตช หรอ 1-Wire Sensor ตางๆเชน เซนเซอรวดอณหภมเบอร DS18B20
• มข .วตอสญญาณแบบ Analog (A0-A3) โดยใชงานเปน Analog ADC จานวน =ชอง หรอ ใชเปน Digital I/O
จานวน =บต ไดตามตองการ โดยใชข .วตอแบบ 6Pin
• มข .วตอสญญาณแบบ Analog A4 และ A5 โดยใชงานเปน Analog ADC ขนาด :ชอง จานวน 7ชด หรอ ใช
เปน Digital I/O ขนาด :บต จานวน 7ชด ไดตามตองการ โดยใชข .วตอแบบ 3Pin
• มข .วตอ ISP แบบ 6PIN มาตรฐาน ATMEL สาหรบใชโปรแกรมผานเคร�องโปรแกรมแบบ ISP ตามมาตรฐาน
ATMEL
• มข .วตอ Micro USB สาหรบใชทาหนาท�เปน USART Download ผาน Bootloader โดยใชแพลตฟอรมการ
พฒนาโปรแกรมแบบ Arduino
• รองรบการตดต .งใชงานบนราง DIN ขนาด 69มม.
คมอการใชงาน ET-MEGA��U�-RS���
ET-MEGA32U4-RS485 หนา 3
การพฒนาโปรแกรม ET-MEGA32U4 RS485
ในการพฒนาโปรแกรมของบอรด ET-MEGA32U4 RS485 น .น ถาผใชตองการพฒนาโปรแกรมดวยภาษาซ ของ
AVR อยาง WinAVR ผใชสามารถทาไดตามปรกตโดยใชงานรวมกบเคร�องโปรแกรมตระกล AVR ท�รองรบการโปรแกรม
MCU เบอร ATMEGA32U4 แบบ Incircuit Serial Programmer ผานทางข .วโปรแกรมแบบ AVRISP ขนาด 6PIN ตาม
มาตรฐานของ ATMEL
แตสาหรบผใชท�ตองการพฒนาโปรแกรมของบอรดดวยแพลตฟอรมแบบ Arduino กสามารถทาไดทนทโดยไม
จาเปนตองใชเคร�องมอโปรแกรมใดๆจากภายนอกอก ซ�งบอรด ET-MAGA32U4 RS485 ชดมาตรฐาน จาก อทท จะทา
การบรรจโปรแกรม Bootloader ของ Arduino Leonardo เตรยมไวใหเรยบรอยแลวผใชสามารถใชการพฒนาโปรแกรม
ของบอรดดวยแพลตฟอรม Arduino ไดทนทโดยกาหนด Hardware ในการพฒนาบนแพลตฟอรม Arduino เปน Arduino
Leonardo แลว Upload โปรแกรมผานทาง USB Serial ของบอรดไดทนท ซ�งจะทาใหอปกรณตางๆบนบอรดมสญญาณ
การควบคมและส�งงานเปนดงน .
คมอการใชงาน ET-MEGA��U�-RS���
ET-MEGA32U4-RS485 หนา 4
• RELAY#0 ใช Pin D6 เปน Digital Output (LOW = ON RELAY, HIGH = OFF RELAY)
• RELAY#1 ใช Pin D7 เปน Digital Output (LOW = ON RELAY, HIGH = OFF RELAY)
• LED Status ใช Pin D13 เปน Digital Output (LOW = OFF LED, HIGH = ON LED)
• 1-Wire ใช Pin D5 เปน 1-Wire Bus
• RS485 ใช Serial1
o RXD ใช Pin D0 (Default Serial1 RXD)
o TXD ใช Pin D1 (Default Serial1 TXD)
o DIR ใช Pin D4 เปน Digital Output (LOW = Receive RS485, HIGH = Send RS485)
• RS485 Slave Address
o ID0 ใช Pin D8 เปน Digital Input Pull Up (กาหนด pinMode = INPUT_PULLUP)
o ID1 ใช Pin D9 เปน Digital Input Pull Up (กาหนด pinMode = INPUT_PULLUP)
o ID2 ใช Pin D10 เปน Digital Input Pull Up (กาหนด pinMode = INPUT_PULLUP)
o ID3 ใช Pin D11 เปน Digital Input Pull Up (กาหนด pinMode = INPUT_PULLUP)
o ID4 ใช Pin D12 เปน Digital Input Pull Up (กาหนด pinMode = INPUT_PULLUP)
• I2C Bus ใช I2C Bus Default
o SDA ใช Pin D2 เปนสญญาณในการเช�อมตอ
o SCL ใช Pin D3 เปนสญญาณในการเช�อมตอ
• Analog#0 ใช Pin A0,A1,A2,A3 ในการเช�อมตอ
• Analog#1 ใช Pin A4 ในการเช�อมตอ
• Analog#2 ใช Pin A5 ในการเช�อมตอ
• Debug Serial(USB Serial) ใช Serial
คมอการใชงาน ET-MEGA��U�-RS���
ET-MEGA32U4-RS485 หนา 5
การใชงาน I2C Bus
วงจรในสวนของการเช�อมตอกบอปกรณแบบ I2C Bus ของบอรด ET-MAGA32U4 RS485 จะใชขาสญญาณ
PD0(Arduino : D3) ทาหนาท�เปน SCL และใช PD1(Arduino : D2) ทาหนาท�เปนสญญาณ SDA โดยภายในบอรดจะ
ตดต .งชพ RTC เบอร DS3231 ซ�งเปน RTC แบบ I2C ทางานท�ระดบ Logic TTL 5V และยงจดใหมข .วตอแบบ RJ11 6PIN
กบ CPA 4PIN Block อยางละชด สาหรบทาหนาท�เช�อตอกบอปกรณ I2C Bus ท�เปนสญญาณ Logic TTL 5V จาก
ภายนอกไดตามตองการอกดวย
สาหรบอปกรณท�เปน I2C Bus แตมระดบสญญาณเปน Logic 3.3V น .น บอรด ET-MEGA32U4 RS485 เองก
ไดจดทาวงจรแปลงระดบสญญาณ Logic จาก 5V เปน 3.3V ของ I2C Bus จดเตรยมไวใหผใชไดนาไปเช�อมตอ
ประยกตใชงานไดตามตองการผานทางข .วตอแบบ CPA 5PIN Block ดงรป
I2C RTC เบอร DS3231 เปน Real Time Clock นาฬกา สาหรบประยกตใชกบงานควบคมตางๆ เชน ต .งเวลา
เปด ปด อปกรณไฟฟา โดยเช�อมตอกบ MCU ผานทาง I2C Bus
คมอการใชงาน ET-MEGA��U�-RS���
ET-MEGA32U4-RS485 หนา 6
I2C Bus 3.3V
เปนข .ว I2C Bus แบบ CPA 5PIN Block ใชสาหรบเช�อมตอกบอปกรณท�เช�อมตอผาน I2C Bus แบบท�รองรบ
การใชงานกบแหลงจายไฟและระดบสญญาณโลจกในการเช�อมตอเปน 3.3V เชน Sensor ตรวจอากาศ ET-SENSOR
BME280 หรอ ET-SENSOR SHT15 หรอ ET-SENSOR SHT31 หรอ ET-SENSOR AM2302 เปนตน
รปแสดงตวอยางการเช�อมตอกบอปกรณ I2C Bus 3.3V กบ ET-SENSOR BME280
คมอการใชงาน ET-MEGA��U�-RS���
ET-MEGA32U4-RS485 หนา 7
I2C Bus 5V แบบ 4Pin Block
เปนข .ว I2C Bus แบบ CPA 4PIN Block ใชสาหรบเช�อมตอกบอปกรณท�เช�อมตอผาน I2C Bus แบบท�รองรบ
การใชงานกบแหลงจายไฟและระดบสญญาณโลจกในการเช�อมตอเปน 5V เชน เซนเซอรสาหรบตรวจวดอณหภมและ
ความช .นในอากาศและในดน รน ET-SHT10 WATER PROOF SENSOR หรอบอรดขยาย Input/Output ตางๆ เชน
ET-I2C REL8 หรอ ET-I2C DCIN8 เปนตน
รปตวอยางการเช�อมตอ I2C Bus(5V) แบบ 4 Pin กบ ET-SHT10 WATER PROOF SENSOR
คมอการใชงาน ET-MEGA��U�-RS���
ET-MEGA32U4-RS485 หนา 8
I2C Bus แบบ RJ11(5V)
เปนข .ว I2C Bus แบบ RJ11 6PIN ใชสาหรบเช�อมตอกบอปกรณท�เช�อมตอผาน I2C Bus แบบท�รองรบการใช
งานกบแหลงจายไฟและระดบสญญาณโลจกในการเช�อมตอเปน 5V เชน บอรดขยาย Input/Output ตางๆ เชน ET-I2C
REL8 หรอ ET-I2C DCIN8 เปนตน
รปตวอยางการตอขยาย Output Relay ดวย I2C Bus 5V กบบอรด ET-I2C REL8
คมอการใชงาน ET-MEGA��U�-RS���
ET-MEGA32U4-RS485 หนา 9
รปตวอยางการเช�อมตอข .ว I2C Bus แบบ RJ11 กบ I2C Display แบบ OLED
คมอการใชงาน ET-MEGA��U�-RS���
ET-MEGA32U4-RS485 หนา 10
ANALOG(AN0..AN5)
บอรด ET-MEGA32U4 RS485 มสญญาณ ANALOG ใหใชงานจานวน | ชอง โดย จดเรยงสญญาณเช�อมตอ
ผานข .ว Connector จานวน 6 ชด คอ ข .วตอ ANALOG#0 จานวน =ชอง (A0…A3) ข .วตอ ANALOG#1 จานวน :ชอง
(A4) และข .วตอ ANALOG#2 จานวน :ชอง (A5) ดงน .
รปตวอยางการตอใชงาน ANALOG#2 กบเซนเซอร HK1100C เพ�อวดความดน 0-12บาร
คมอการใชงาน ET-MEGA��U�-RS���
ET-MEGA32U4-RS485 หนา 11
1-Wire Bus
1-Wire จะใชสญญาณ Digital I/O Pin D5(PC6) ซ�งสามารถนาไปประยกตใชงานเปน Digital Input หรอ
Digital Output หรอ 1-Wire Bus สาหรบเช�อมตอกบอปกรณ 1-Wire เชน DS18B20
รปแสดงตวอยางการตอเซนเซอรวดอณหภมแบบ 1-Wire เบอร DS18B20
คมอการใชงาน ET-MEGA��U�-RS���
ET-MEGA32U4-RS485 หนา 12
External LED Status
LED Status จะใชสญญาณ Digital I/O Pin D13(PC7) สาหรบส�งงานควบคมการตดดบของ LED โดยจะม
ทรานซสเตอรชวยขบกระแสและมข .วตอสาหรบตอกบ LED ภายนอกไดอก เชนเม�อตองการตดต .งเปน LED Status แสดง
การทางานตดไวภายนอกกลองโดยการตอผาน Connector มาเช�อมกบบอรดได
รปแสดงตวอยางการเช�อมตอ LED Status สาหรบนาไปแสดงผลนอกบอรด
คมอการใชงาน ET-MEGA��U�-RS���
ET-MEGA32U4-RS485 หนา 13
การใชงาน Output Relay
บอรด ET-MEGA32U4-RS485 จะม Output Relay จานวน 2ชอง แตละชองทางานอสระตอกน โดย
Output แตละชดจะมข .วตอแบบ Terminal 7.62mm ขนาด 7Pin เปนจดเช�อมตอใชงาน โดยจะเปนจดตอหนาสมผส
Relay ชนด NO(Normal Open) โดยหนาสมผสแตละชดสามารถรบกระแสไดสงสด :;แอมป ซ�งหนาสมผสจะม
คณสมบตเหมอน สวตช เปด ปด อปกรณไฟฟา โดยในสภาวะปรกตตอนท� Relay ยงไมทางาน หนาสมผสน .จะยงไม
ตอเช�อมถงกนเหมอนการปดสวตช แตเม�อส�งให Relay ทางาน หนาสมผสน .จงจะเช�อมตอเขาถงกนเหมอนการเปดสวตช
ดงน .นเราจงสามารถนาหนาสมผสของ Relay น .ไปใชส�ง เปด ปด อปกรณไฟฟาตางๆแทนสวตชได เพยงแตหนาสมผส
Relay น .จะมความพเศษกวาหนาสมผสสวตชท�วๆตรงท� ไมตองใชมอกดเพ�อส�ง เปด ปด เอง แตเราสามารถส�ง เปด ปด
สวตชน .ไดจากโปรแกรมโดยกาหนดเง�อนไขตางๆไดเอง โดยสามารถส�ง ON Relay ไดโดยกาหนด Logic Output ของ
GPIO Output ใหเปน LOW และส�ง OFF Relay ไดโดยการกาหนด Logic Output ของ GPIO Output ใหเปน HIGH
ในกรณท�นาหนาสมผสรเลยไปใชเปดปดอปกรณไฟฟาท�มขนาดพกดกระแสสงๆ โดยเฉพาะอปกรณไฟฟาท�เปน
ขดลวด เชน วาลวไฟฟา และ มอเตอร ซ�งอปกรณเหลาน .จะดงกระแสผานตวเองในพกดท�สงกวาปรกต 7-6เทาตว เพ�อใช
ในการสตารทและเร�มตนทางาน ซ�งในขณะท� ON และ OFF มกจะเกดการกระชากอยางรนแรงผานหนาสมผส ซ�งจะทาให
เกดการอารคและเกดสญญาณรบกวนใหกบอปกรณไฟฟาตางๆท�ตอใชงานรวมกนอยในระบบไฟฟาเดยวกนได ซ�งเรา
สามารถลดการกระชากปองกนการอารคท�หนาสมผสน .ไดโดยการตดต .ง MOV(Varistor) ครอมเขาไปท�หนาสมผสได โดยท�
ไกลๆข .วตอของหนาสมผสแตละชดของบอรด ET-MEGA32U4-RS485 ผใชสามารถตดต .ง MOV สาหรบปองกนการอารค
ท�หนาสมผสเม�อส�ง เปด ปด หนาสมผสได ซ�งสามารถเลอกใช MOV ขนาดตางๆใหเหมาะสมกบขนาดและประเภท
แรงดนไฟฟาทานาไปใชงานงานเปดปดอปกรณไฟฟาท .ง กระแสตรง และ กระแสสลบ
รปแสดง ตาแหนงและวงจรการตดต .ง MOV (Varistor) กบหนาสมผส Relay ในบอรด ET-MEGA32U4-RS485
คมอการใชงาน ET-MEGA��U�-RS���
ET-MEGA32U4-RS485 หนา 14
RS485 Bus
RS485 Bus เปนบสการส�อสาร USART แบบ Half Duplex สามารถประยกตใชส�อสารรบสงขอมลเปนระบบ
เครอขายในระยะทางท�หางไกลกนไดเปนอยางด โดยจะใช D1(PD3) เปน TXD ใช D0(PD2) เปน RXD และใช D4(PD4)
เปน DIR Direction สาหรบเลอกทศทางการรบสงขอมลใน RS485 Bus โดยตองกาหนดให D4(DIR) ทาหนาท�เปน
Digital Output Pin ถากาหนดใหเปน Logic LOW(“0”) จะเปนการกาหนดทศทางเปนฝายรบขอมลจาก RS485 Bus
ถากาหนดเปน Logic HIGH(“1”) จะเปนการกาหนดทศทางเปนฝายสงขอมลออกไปใน RS485 Bus จดเช�อมตอ
สญญาณ RS485 Bus จะม 7แบบ คอ Terminal ขนาด �.|7มม. และข .วตอ Connector แบบ RJ45 อยางละ 7ชด ให
ผใชเลอกใชไดตามความสะดวกและเหมาะสม
1 2 3 4 5 6 7 8
RS
48
5(+
)
RS
48
5(-)
NC
+V
(7-3
0V
)
+V
(7-3
0V
)
NC
GN
D
GN
D
รปแสดง การจดตาแหนงสญญาณของ RS485 ในข .ว RJ45
คมอการใชงาน ET-MEGA��U�-RS���
ET-MEGA32U4-RS485 หนา 15
แหลงจายไฟเล 7ยง Power Supply
บอรด ET-MEGA32U4-RS485 มจดรบไฟเล .ยงวงจรเพ�อใชเปนแหลงจายไฟใหอปกรณในบอรด ซ�งรองรบ
แรงดนไฟฟากระแสตรงไดในยาน �-6;VDC โดยมจดเช�อมตอแหลงจายไฟเล .ยงวงจร 3ชองทาง คอ ข .ว Terminal
7.62mm ขนาด 7Pin และ Connector RJ45 อก 2ชด
โดยในกรณท�ใชการเช�อมตอแบบ RJ45 น .น สามารถใชสาย UTP ท�ใชกบเครอขายระบบ LAN แบบ Direct ตาม
มาตรฐาน EIA/TIA T568A หรอ EIA/TIA T568B มาใชเปนสายส�อสารและแหลงจายไฟ Power Supply ใหกบอปกรณใน
บอรดไปพรอมๆกนในสายสญญาณเสนเดยวกนได แตอยางไรกตามในกรณท�จดใชงานมอปกรณอ�นๆท�ตองตอใชงาน
เพ�มเตมมากกวาอปกรณในบอรดและอปกรณน .นมความตองการใชกระแสมาก ขนาดสายและหนาสมผสของขวตอ RJ45
อาจไมสามารถรองรบการใชการในลกษณะอยางน .ได ผใชจาเปนตองแยกสายสาหรบใชเปนคสายของ Power Supply ใน
ขนาดสายท�รองรบพกดกระแสไฟฟาไดสงเพยงพอกบความตองการของอปกรณไฟฟาท�จะใชงานเองดวย
คมอการใชงาน ET-MEGA��U�-RS���
ET-MEGA32U4-RS485 หนา 16
ตวอยางการตอสาย RS485 โดยใชข .ว RJ45 โดยใชสายแลนดมาตรฐาน EIA/TIA T568A/B
ตวอยางการตอสาย RS485 และ แหลงจาย Power 7-30V โดยใชข .ว Terminal 7.62มม.
คมอการใชงาน ET-MEGA��U�-RS���
ET-MEGA32U4-RS485 หนา 17
การกาหนด Address ของ RS485
บอรด ET-MEGA32U4-RS485 ออกแบบใหม Jumper สาหรบเลอกกาหนด ID Code ของบอรดจานวน 9ชด
ซ�งจะสามารถเลอกกาหนดคา Address ของบอรดใหมความแตกตางไมซ .ากนได 67ตาแหนง โดย Jumper แตละตวจะ
เลอกกาหนดตาแหนงเปน LOW หรอ HIGH ไดตามตองการดงตาราง
การกาหนด Jumper เพ�อต .งคา ID Code ID Code
ID4(D12) ID3(D11) ID2(D10) ID1(D9) ID0(D8)
LOW LOW LOW LOW LOW 00
LOW LOW LOW LOW HIGH 01
LOW LOW LOW HIGH LOW 02
LOW LOW LOW HIGH HIGH 03
LOW LOW HIGH LOW LOW 04
LOW LOW HIGH LOW HIGH 05
LOW LOW HIGH HIGH LOW 06
LOW LOW HIGH HIGH HIGH 07
LOW HIGH LOW LOW LOW 08
LOW HIGH LOW LOW HIGH 09
LOW HIGH LOW HIGH LOW 10
LOW HIGH LOW HIGH HIGH 11
LOW HIGH HIGH LOW LOW 12
LOW HIGH HIGH LOW HIGH 13
LOW HIGH HIGH HIGH LOW 14
LOW HIGH HIGH HIGH HIGH 15
HIGH LOW LOW LOW LOW 16
HIGH LOW LOW LOW HIGH 17
HIGH LOW LOW HIGH LOW 18
HIGH LOW LOW HIGH HIGH 19
HIGH LOW HIGH LOW LOW 20
HIGH LOW HIGH LOW HIGH 21
HIGH LOW HIGH HIGH LOW 22
HIGH LOW HIGH HIGH HIGH 23
HIGH HIGH LOW LOW LOW 24
HIGH HIGH LOW LOW HIGH 25
HIGH HIGH LOW HIGH LOW 26
HIGH HIGH LOW HIGH HIGH 27
HIGH HIGH HIGH LOW LOW 28
HIGH HIGH HIGH LOW HIGH 29
HIGH HIGH HIGH HIGH LOW 30
HIGH HIGH HIGH HIGH HIGH 31
ตารางแสดง การเลอกกาหนดรหส ID Code ของบอรด ET-MEGA32U4-RS485
คมอการใชงาน ET-MEGA��U�-RS���
ET-MEGA32U4-RS485 หนา 18
ตวอยางการกาหนดฟงกช�นใชงาน Serial USB และ Serial RS485 ของบอรด ET-MEGA32U4-RS485
/* Demo ET-MEGA32U4-RS485 Serial Port Interface
* MCU : ATMEGA32U4(Arduino Leonado)
* : Bootloader
* : -> .../caterina/Caterina-Leonardo.hex
* : Fuse Bit
* : -> low_fuses = 0xFF
* : -> high_fuses = 0xD8
* : -> extended_fuses = 0xCB(0xFB)
* : Lock Bit
* : -> 0x2F(0xEF)
* RS485 : RS485 RXD:D0
* : RS485 TXD:D1
* : RS485 Direction(D4 : LOW = RXD, HIGH = TXD)
*/
#define SerialDebug Serial // USB Serial
#define SerialRS485 Serial1 // Serial1(D1=TXD,D0=RXD)
//================================================= =================
const int RS485_DIRECTION_PIN = 4; // RS 485 Direction
const int RS485_RXD_SELECT = LOW;
const int RS485_TXD_SELECT = HIGH;
//================================================= =================
const int RS485_ID0_PIN = 8; // Sla ve ID LSB
const int RS485_ID1_PIN = 9;
const int RS485_ID2_PIN = 10;
const int RS485_ID3_PIN = 11;
const int RS485_ID4_PIN = 12; // S lave ID MSB
//================================================= =================
int SlaveAddress = 0;
char SlaveID[2];
//================================================= =================
คมอการใชงาน ET-MEGA��U�-RS���
ET-MEGA32U4-RS485 หนา 19
void setup(void)
{
pinMode(RS485_DIRECTION_PIN, OUTPUT);
digitalWrite(RS485_DIRECTION_PIN, RS485_RXD_SELEC T);
pinMode(RS485_ID0_PIN, INPUT_PULLUP);
pinMode(RS485_ID1_PIN, INPUT_PULLUP);
pinMode(RS485_ID2_PIN, INPUT_PULLUP);
pinMode(RS485_ID3_PIN, INPUT_PULLUP);
pinMode(RS485_ID4_PIN, INPUT_PULLUP);
//=============================================== =================
SlaveAddress = 0;
if(digitalRead(RS485_ID0_PIN) == HIGH) SlaveAddre ss += 1;
if(digitalRead(RS485_ID1_PIN) == HIGH) SlaveAddre ss += 2;
if(digitalRead(RS485_ID2_PIN) == HIGH) SlaveAddre ss += 4;
if(digitalRead(RS485_ID3_PIN) == HIGH) SlaveAddre ss += 8;
if(digitalRead(RS485_ID4_PIN) == HIGH) SlaveAddre ss += 16;
String StringID = String(SlaveAddress,DEC);
if(SlaveAddress < 10)
{
SlaveID[0] = '0';
SlaveID[1] = StringID[0];
}
else
{
SlaveID[0] = StringID[0];
SlaveID[1] = StringID[1];
}
//=============================================== =================
SerialDebug.begin(115200); // D ebug USART
SerialRS485.begin(115200); // R S485 USART
while(!SerialDebug); // wait for USB serial connect.
}
คมอการใชงาน ET-MEGA��U�-RS���
ET-MEGA32U4-RS485 หนา 20
void loop(void)
{
//=============================================== ==========================
SerialDebug.print("My Slave ID : ");
SerialDebug.write(SlaveID[0]);
SerialDebug.write(SlaveID[1]);
//=============================================== ==========================
digitalWrite(RS485_DIRECTION_PIN, RS485_TXD_SELEC T);
SerialRS485.print("My RS485 Slave ID:");
SerialRS485.write(SlaveID[0]);
SerialRS485.write(SlaveID[1]);
SerialRS485.flush();
digitalWrite(RS485_DIRECTION_PIN, RS485_RXD_SELEC T);
//=============================================== ==========================
While(1)
{
…
…
…
}
//=============================================== ==========================
}
top related