|
|
![]() ------------------------------------------------------------------------------------------------------------------
Á¦¸ñ : Software Serial Library
ÀÌ ¼ÒÇÁÆ®¿þ¾î´Â M168-USBÀÇ Çϵå¿þ¾î UARTÀÎ TXD¿Í RXDÇÉÀ» ÀÌ¹Ì »ç¿ëÇϰí Àִµ¥, Ãß°¡·Î ´õ ÇÊ¿äÇÑ UART¸¦ ¼ÒÇÁÆ®¿þ¾î ¸¸À¸·Î ¸¸µé¾î »ç¿ëÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù. (¼º´ÉÀÌ Á¶±Ý ¶³¾îÁý´Ï´Ù)
¾ÆµàÀ̳ëÀÇ Çϵå¿þ¾î´Â ¿ø·¡ Á÷·ÄÅë½Å Æ÷Æ®(UART)ÀÎ µðÁöÅÐ D0 Çɰú D1 ¹øÇÉÀÌ ÀÖ½À´Ï´Ù.
ÇöÀç, ÀÌ Æ÷Æ®´Â ¾ÆµàÀÌ³ë ±âÆÇÀ» USB·Î PC¿¡ ¿¬°áÇØ¼, ½ÇÇàÄڵ带 ¾÷·ÎµåÇϴµ¥ »ç¿ëÇϰí ÀÖ½À´Ï´Ù. ÀÌ Çϵå¿þ¾î Á÷·ÄÆ÷Æ®´Â 64 ¹ÙÀÌÆ®ÀÇ ºñ±³Àû Å« SRAMÀÇ °ø°£À» Â÷ÁöÇϰí ÀÛµ¿ÇÕ´Ï´Ù. (´ë½Å ¼º´ÉÀÌ ÁÁ½À´Ï´Ù) ÀÌ Çϵå¿þ¾î UART¸¦ ÀÌ¹Ì PC¿Í µ¥ÀÌÅͳª ¸í·ÉÀ» ÁÖ°í ¹Þ´Âµ¥ »ç¿ëÇÏ´Â ÁßÀ̶ó¸é, Ãß°¡·Î UART°¡ ÇÊ¿äÇÕ´Ï´Ù.
UART°¡ ´õ ÇÊ¿äÇѵ¥,,, ¾îÂîÇØ¾ß ÇÒ±î¿ä? ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù, ´Ü ¼º´ÉÀÌ Á¶±Ý ¸ðÀÚ¶óÁö¸¸ ±×·±µ¥·Î ¾µ¸¸ÇÕ´Ï´Ù.
³²¾ÆÀÖ´Â µðÁöÅÐ ÇÉÀ» ¼ÒÇÁÆ®¿þ¾î Á÷·ÄÅë½Å Æ÷Æ®·Î »ç¿ëÇÏ´Â ¶óÀ̺귯¸®·Î °³¹ßµÇ¾ú½À´Ï´Ù. ¼ÒÇÁÆ®¿þ¾î´Â SoftwareSerial À̶ó´Â À̸§ÀÇ ÇÔ¼ö¸¦ »ç¿ëÇÕ´Ï´Ù. ¼ÒÇÁÆ®¿þ¾î Á÷·ÄÆ÷Æ® Á¦ÇÑ Çϵå¿þ¾î¿¡¼ Áö¿øÇÏÁö ¾Ê´Â ±â´ÉÀ» ÇÔ¼ö·Î ±¸ÇöÇϱ⠶§¹®¿¡ Á¦ÇÑÀÌ ÀÖ½À´Ï´Ù. ¼Óµµ´Â 4800, ȤÀº 9600 bps·Î ¸¸ ÀÛµ¿ÇÕ´Ï´Ù. Serial.read() ´Â µ¥ÀÌÅͰ¡ µµÂøÇÒ ¶§ ±îÁö ±â´Ù¸³´Ï´Ù. ±â´Ù¸®´Â µ¿¾È ´Ù¸¥ Æ÷Æ®ÀÇ µ¥ÀÌÅÍ´Â À¯½ÇµË´Ï´Ù.
±×·¡¼ ÁÖ·Î ¼Û½Å¿ëÀ¸·Î »ç¿ëÇÒ °ÍÀ» ÃßõÇÕ´Ï´Ù. ¿ë¿ë ¿¹µµ ÀÌ·± ¹æ½ÄÀÔ´Ï´Ù. ¼ÒÇÁÆ®¿þ¾î Á÷·ÄÆ÷Æ® »ç¿ë ¿¹ #include <SoftwareSerial.h> // ¼ÒÇÁÆ®¿þ¾î Á÷·ÄÆ÷Æ®¸¦ »ç¿ëÇÕ´Ï´Ù. #define rxPin 6 // ¼ö½Å ÇÉÀº D6 #define txPin 7 // ¼Û½Å ÇÉÀº D7 // ¼ÒÇÁÆ®¿þ¾î Á÷·ÄÆ÷Æ®ÀÇ À̸§°ú ÇÉÀ» SoftwareSerial(rxPin, txPin);À¸·Î ÁöÁ¤ÇÕ´Ï´Ù. SoftwareSerial swSerial = SoftwareSerial(rxPin, txPin); void setup() // ÃʱâÈ ÇÔ¼ö { pinMode(rxPin, INPUT); //¼ÒÇÁÆ®¿þ¾î ½Ã¸®¾óÆ÷Æ®¿¡ »ç¿ëÇÏ´Â ¼ö½ÅÇÉ pinMode(txPin, OUTPUT); // ¼ÒÇÁÆ®¿þ¾î ½Ã¸®¾óÆ÷Æ®¿¡ »ç¿ëÇÏ´Â ¼Û½Å ÇÉ swSerial.begin(19200); // ¼ÒÇÁÆ®¿þ¾î ½Ã¸®¾óÆ÷Æ®ÀÇ Åë½Å¼Óµµ¸¦ ¼³Á¤
Serial.begin(9600); // Çϵå¿þ¾î Åë½ÅÆ÷Æ®ÀÇ ¼Óµµ¸¦ ¼³Á¤ delay(100); // ´ë±â½Ã°£ =0.1ÃÊ swSerial.print("Hello, world!"); // ÀÛµ¿À» PC·Î ¾Ë¸³´Ï´Ù. } void loop() // ÁÖ ÇÔ¼ö { if (Serial.available() > 0) // Çϵå¿þ¾î Á÷·ÄÆ÷Æ®·Î µé¾î¿Â ¼ö½Å°ªÀ» Á¡°Ë { byte inchar = Serial.read(); // Çϵå¿þ¾î Á÷·ÄÆ÷Æ®¿¡¼ µ¥ÀÌÅ͸¦ Àд´Ù. swSerial.print(inchar); // ¼ö½ÅÇÑ µ¥ÀÌÅ͸¦ ¼ÒÇÁÆ®¿þ¾î Á÷·ÄÆ÷Æ®¿¡ ±×´ë·Î ¼Û½ÅÇÑ´Ù. } } RX ÇÉ¿¡ »ç¿ëÇÏ¸é ¾ÈµÇ´Â ÇÉ: 10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69
»õ·Î ¾÷±×·¹ÀÌµå µÈ ¼ÒÇÁÆ®¿þ¾î ½Ã¸®¾ó ¶óÀ̺귯¸®´Â mySerial.available() À» »ç¿ëÇÒ ¼ö ÀÖ´Ù.
´ÙÀ½ ¿¹Á¦´Â D2, D3 ÇÉÀ» ¼ÒÇÁÆ®¿þ¾î ½Ã¸®¾ó·Î ¼³Á¤ÇÏ¿©
Hardware Srial Æ÷Æ®¿Í Software Serial¿¡¼ µ¥ÀÌÅ͸¦ ¼Û¼ö½ÅÇÏ´Â ¿¹ ÀÌ´Ù.
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); // ¼ÒÇÁÆ®¿þ¾î ½Ã¸®¾ó¿¡ »ç¿ëÇÒ RX, TX ÇÉÀ» Á¤ÀÇÇÑ´Ù void setup() { Serial.begin(57600); Serial.println("Goodnight moon!"); // ÀÌÁ¦ ¼ÒÇÁÆ®¿þ¾î ½Ã¸®¾óÀ» ¼³Á¤ÇÑ´Ù mySerial.begin(4800); mySerial.println("Hello, world?"); } void loop() // ÀÌ ÀÛµ¿À» ¹Ýº¹ÇÑ´Ù. { if (mySerial.available()) // ¼ÒÇÁÆ® ½Ã¸®¾ó¿¡¼ µ¥ÀÌÅͰ¡ µé¾î¿À¸é Serial.write(mySerial.read()); // ¼ÒÇÁÆ® ½Ã¸®¾ó¿¡¼ µ¥ÀÌÅ͸¦ ÀÐ¾î¼ Çϵå¿þ¾î ½Ã¸®¾ó·Î ¼Û½ÅÇÑ´Ù. if (Serial.available()) // Çϵå¿þ¾î ½Ã¸®¾ó¿¡¼ µ¥ÀÌÅͰ¡ ÀÖÀ¸¸é mySerial.write(Serial.read()); // Çϵå¿þ¾î ½Ã¸®¾ó¿¡¼ µ¥ÀÌÅ͸¦ ÀÐ¾î¼ ¼ÒÇÁÆ®¿þ¾î ½Ã¸®¾ó·Î µ¥ÀÌÅ͸¦ ¼Û½ÅÇÑ´Ù. } ÀÌ ÇÁ·Î±×·¥Àº ¹«·á ¼ÒÇÁÆ®¿þ¾î·Î, ½Åü¿Í Àç»ê »óÀÇ ¾î¶² À§Çè°ú ¼ÕÇØ¸¦ º¸»óÇÏÁö ¾Ê½À´Ï´Ù.
ÀÌ ÇÁ·Î±×·¥Àº GNU ¹«·á ¼ÒÇÁÆ®¿þ¾î ¹èÆ÷±ÔÁ¤À» µû¸¨´Ï´Ù. Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA ![]() |
![]() ![]() ![]() ![]() ![]() | ![]() |
![]() |
![]() |