로그인회원등록 내글장바구니주문조회현재접속자
 상품 검색








 게시판 검색





 
 
회원등록 비번분실


온라인 입금계좌
ㆍ기업은행
ㆍ219-043192-01-028
ㆍ이건영

      거래은행 바로가기
 
 Arduino Open Source
아듀이노 함수의 상세설명
작성자 avrtools™        
작성일 2012/04/10
ㆍ추천: 0  ㆍ조회: 1794   
  소프트웨어 Serial 함수
------------------------------------------------------------------------------------------------------------------
제목 : 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
 AVRTOOLS™
   
  0
9999
윗글 플레시 메모리에 상수를 저장하고 읽는 함수
아래글 아듀이노 터치스위치
    N         제목    글쓴이 작성일 조회 추천
판매상품의 사용설명서는 다른 자료실에,,, avrtools™ 2011/08/30 (화) 1461 0
23 LCD 문자표시 (신형) avrtools™ 2012/04/12 (목) 2102 0
22 아듀이노 멜로디 연주 avrtools™ 2008/08/22 (금) 3454 0
21 아듀이노 4비트 LCD (구형) avrtools™ 2008/09/02 (화) 4302 0
20 아듀이노 가변저항 avrtools™ 2008/08/26 (화) 3074 0
19 직렬 데이터 이동(shift) 출력 avrtools™ 2012/04/10 (화) 1712 0
18 디지털 신호의 펄스폭을 측정하는 함수 avrtools™ 2012/04/10 (화) 1974 0
17 EEPROM 읽기, 쓰기 함수 avrtools™ 2012/04/10 (화) 2281 0
16 변수의 크기 avrtools™ 2012/04/10 (화) 1613 0
15 플레시 메모리에 상수를 저장하고 읽는 함수 avrtools™ 2012/04/10 (화) 1897 0
14 소프트웨어 Serial 함수 avrtools™ 2012/04/10 (화) 1794 0
13 아듀이노 터치스위치 [3] avrtools™ 2008/08/11 (월) 4105 0
12 아듀이노 shiftOut avrtools™ 2008/09/10 (수) 3364 0
11 아듀이노 스위치와 LED점등 avrtools™ 2008/08/13 (수) 4635 0
10 아듀이노의 주파수 출력 함수 avrtools™ 2009/10/20 (화) 2737 0
9 One Button Switch Library avrtools™ 2012/03/09 (금) 1841 0
8 아듀이노 논리연산 avrtools™ 2008/08/26 (화) 3005 0
7 아듀이노 PS2 키보드 읽기 avrtools™ 2008/09/10 (수) 4072 0
6 아듀이노 가로채기 함수 avrtools™ 2008/08/23 (토) 3186 0
5 아듀이노 전용명령 avrtools™ 2008/09/16 (화) 3914 0
4 아듀이노 PWM 출력과 타이머1 전용명령 avrtools™ 2008/08/19 (화) 3562 0
3 8비트 포트의 단일비트 조작방법 avrtools™ 2010/10/30 (토) 2365 0
2 직렬포트에서 문자를 받아 숫자 int로 저장 avrtools™ 2012/04/08 (일) 1682 0
1 직렬통신포트의 초기화 avrtools™ 2012/04/06 (금) 1468 0
1

바구니 : 0
 보관함 : 0
오늘뷰 : 0
HOME   |   회사소개   |   제휴안내   |   회사위치   |   서비스이용 약관   |   개인정보 보호정책   |   사이트맵
17015 경기도 용인시 기흥구 동백중앙로16번길 16-25, 508호. 전화 : 031-282-3310
사업자 등록번호 : 697-47-00075 / 대표 : 이건영 / 업태 : 제조업 / 종목 : LED조명, LED전원, 제어장치.
개인정보 관리책임자 : 홈페이지 관리자 . Copyright ⓒ2016 아크레즈 (ACLEDS INC.)
HOME TOP PREVNEXT 0 0 0