티스토리 뷰
// 터미널 창을 통해 값을 전달 하여 LED 제어 int ledPin = 12; int incomingByte = 0; void setup() { pinMode(ledPin, OUTPUT); Serial.begin(9600); } void loop() { if(Serial.available() > 0) { incomingByte = Serial.read(); Serial.print("incomingByte = "); Serial.println(incomingByte); if(incomingByte == '1') { digitalWrite(ledPin, HIGH); }else if(incomingByte == '0') { digitalWrite(ledPin, LOW); } } } //serialEvent 사용 //하드웨어 interrupt -> 코드로 구현 시 해당 이벤트 사용 불가 int ledPin[] = {10, 11, 12}; int incomingByte = 0; void setup() { for(int i = 0; i < 3 ; i++) { pinMode(ledPin[i], OUTPUT); digitalWrite(ledPin[i], LOW); } Serial.begin(9600); } void loop() { } void serialEvent() { incomingByte = Serial.read(); if(incomingByte >= 48 && incomingByte <= 53) { // 0~5 boolean ledFlag = incomingByte % 2 == 0 ? LOW : HIGH; digitalWrite(ledPin[(incomingByte - 48) / 2], ledFlag); } } //아누이노 2개 UART 통신 //전위차가 같도록 그라운드를 같이 사용한다. // softwareserial include // serial.read() 는 한번 읽고 난 버퍼는 비운다 주의!! #include <softwareserial.h> // SoftwareSerial(RXD PIN, TXD PIN) SoftwareSerial SWSerial(2, 3); const int MAX_DATA_LNEGTH = 5; int count = 0; byte getSerialData[MAX_DATA_LNEGTH]; void setup() { pinMode(10, OUTPUT); pinMode(11, OUTPUT); pinMode(12, OUTPUT); Serial.begin(9600); SWSerial.begin(9600); digitalWrite(10, LOW); digitalWrite(11, LOW); digitalWrite(12, LOW); } void loop() { if(SWSerial.available() > 0) { getSerialData[count] = SWSerial.read(); if(getSerialData[0] == 'A') count++; if(count > 4) { count = 0; getSerialData[0] = 0; if(getSerialData[4] == 'Z') { getSerialData[4] = 0; digitalWrite(10, getSerialData[1] - 48); digitalWrite(11, getSerialData[2] - 48); digitalWrite(12, getSerialData[3] - 48); } } } if(Serial.available() > 0) { SWSerial.write(Serial.read()); } }
'IT > Arduino' 카테고리의 다른 글
아두이노 교육3일차 CDS(조도센서)를 이용한 LED 제어 (0) | 2014.08.23 |
---|---|
아두이노 교육2일차 아날로그 신호 제어 (0) | 2014.08.16 |
아두이노 교육2일차 FND(Flexible Numeric Display) 제어 (0) | 2014.08.16 |
아두이노 교육2일차 외부인터럽트 (0) | 2014.08.16 |
아두이노 교육1일차 스위치로 LED 점멸 (0) | 2014.08.09 |
댓글