질문게시판 > 답변 : 답변 : 답변 : 답변 : 레오나르도 시리얼통신 마우스 질문드립니다.

인기검색어 > 아두이노 센서 ATMEGA128

최신글 질문게시판 동영상강좌 가입하기

▼ BASIC4MCU 후원업체 신제품 정보 ▼

▲ BASIC4MCU 후원업체 신제품 정보 ▲

BASIC4MCU > 질문게시판

답변 : 답변 : 답변 : 답변 : 레오나르도 시리얼통신 마우스 질문드립니다.

페이지 정보

작성자 master 작성일19-03-14 09:16 조회66회 댓글2건

본문

 

// DateTime : 2019-03-14 오전 9:16:27
// by Ok-Hyun Park
#include <Mouse.h>
String Command="";
char Temp="";
void setup(){
  Serial.begin(9600);
}
//
void loop()
{
  Command="";
  while(Serial.available()){
    Temp=Serial.read();
    Command.concat(Temp);
  }
  if(Command!=""){
    if(Command=="Click"){
      Mouse.click();
    }
    int first=Command.indexOf(",");
    int second=Command.indexOf(",",first+1);
    int xpos=Command.substring(0,first).toInt();
    int ypos=Command.substring(first+1,second).toInt();
    int finalxpos=0;
    int finalypos=0;
    while(xpos||ypos){
      if(xpos>127)finalxpos=127;
      else if(xpos<-128)finalxpos=-128;
      else          finalxpos=xpos;
      xpos-=finalxpos;
      if(ypos>127)finalypos=127;
      else if(ypos<-128)finalypos=-128;
      else          finalypos=ypos;
      ypos-=finalypos;
      Mouse.move(finalxpos,finalypos);
    }
  }
}

 

지금처럼 처리하면

여러개의 데이터를 전송하더라도 매 바이트마다 if(Command!=""){ 문이 실행됩니다.

오동작하게 되는거죠

 

  while(Serial.available()){
    Temp=Serial.read();
    Command.concat(Temp);
  }
위 문장은 실행 시간이 빠르기 때문에

1바이트 밖에 수신하지 못합니다.

 

 

 

// DateTime : 2019-03-14 오전 9:26:43
// by Ok-Hyun Park
//
#include <Mouse.h>
String Command="";
char   Temp=0;
void setup(){
  Serial.begin(9600);
}
//
void loop(){
  while(1){ // '\n' 받을 때까지 버퍼에 더하면서 무한 대기
    Temp=Serial.read();
    if(Temp=='\n'){            Command.concat(Temp); continue; }  
    else          { Temp='\0'Command.concat(Temp); break;    }
  }
  //
  if(Command=="Click"){ Mouse.click(); }
  else{
    int first=Command.indexOf(",");
    int second=Command.indexOf(",",first+1);
    int xpos=Command.substring(0,first).toInt();
    int ypos=Command.substring(first+1,second).toInt();
    //
    while(xpos||ypos){
      if     (xpos127)finalxpos127;
      else if(xpos<-128)finalxpos=-128;
      else              finalxpos=xpos;
      xpos-=finalxpos;
      if     (ypos127)finalypos127;
      else if(ypos<-128)finalypos=-128;
      else              finalypos=ypos;
      ypos-=finalypos;
      Mouse.move(finalxpos,finalypos);
    }
  }
  Command="";
}

 

이 코드 돌려보세요

 

  • BASIC4MCU 작성글 SNS에 공유하기
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기
  • 카카오톡으로 보내기

댓글 : 2

조회수 : 66

이이제이님의 댓글

이이제이 작성일

감사합니다 돌려보았습니다만.
100,200\n 을주었지만 무반응입니다 제생각엔 시리얼모니터가 \n을 못읽는것같습니다.

master님의 댓글

master 댓글의 댓글작성일

void loop(){
  while(1){ // '\n' 받을 때까지 버퍼에 더하면서 무한 대기
    Temp=Serial.read();
    if(Temp=='\n'){            Command.concat(Temp); continue; } 
    else          { Temp='\0'; Command.concat(Temp); break;    }
  }
  //
<--------- 여기에서 Command를 시리얼모니터에 출력해서 무엇을 받았는지 체크해보세요
  if(Command=="Click"){ Mouse.click(); }
  else{

받는데 문제가 있는지, 정상적으로 받았는데 파싱에서 문제가 있는지
둘 중 하나겠죠

게시물 검색

BASIC4MCU > 질문게시판 목록

제목 날짜
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은… 스태프  19-01-15
공지 사이트 이용 안내 댓글[7] master  17-10-29
공지 [무료 공개] 소스코드 하이라이트 v2.0 beta [… 댓글[1] 첨부파일master  18-01-23
질문 avr studio코드를 codevision avr로 … 아우아우 새글 20:26
질문 ATMEGA128 의 avr studio의 코드를 co… 바다왕 새글 20:24
질문 아두이노 코딩 질문드립니다! 김정훈 새글 19:46
질문 로드셀로 측정한 무게가 음수인 이유가 궁금해요 첨부파일야거 새글 19:22
질문 압력센서 코딩 도와주세연 지그개시키 새글 17:39
질문 마스터님 도와주세요!!! Vhdl 코드 해석이 잘 안되… 양뜨 새글 16:42
질문 IG-43GM+Encoder 01TYPE에 대한 질문 … YDyd 새글 15:59
질문 아두이노 슬레이브 코드 질문 합니다. 쥬스 새글 13:28
답변 답변 : 아두이노 슬레이브 코드 질문 합니다. master 새글 15:18
질문 아두이노 코딩 댓글[1] 대구간 새글 12:45
답변 답변 : 아두이노 코딩 master 새글 15:03
질문 센서,모터 연결 질문 댓글[3] 가든 새글 10:05
질문 아두이노 블루투스 전송 댓글[1] 으아아악 새글 02:33
질문 아두이노 심박센서 댓글[3] 으아아악 새글 19-05-26
질문 pixycam을 이용하고 있는데 질문드립니다~~ 댓글[1] 첨부파일아야어여 새글 19-05-26
질문 블루투스에서 아두이노 전송 댓글[2] 첨부파일상오 새글 19-05-26
질문 이두이노 코드 질문드립니다. 서든칼신 새글 19-05-26
답변 답변 : 이두이노 코드 질문드립니다. master 새글 19-05-26
질문 ATMEGA128 fnd에 분과 초를 표시하는 소스코드 기벡장인 새글 19-05-26
답변 답변 : ATMEGA128 fnd에 분과 초를 표시하는… master 새글 19-05-26
질문 항상 감사합니다. 혹시 앱인벤터에 관한 내용도 질문가능… 댓글[1] 푸링이 새글 19-05-26
질문 Atmega128a 디지털시계 댓글[3] 첨부파일아트메가잘하고싶다 새글 19-05-25
질문 안녕하세요 서보모터 블루투스 연결 질문드려요 깈잌으  19-05-25
답변 답변 : 안녕하세요 서보모터 블루투스 연결 질문드려요 master 새글 19-05-25
질문 아두이노 MQ-7 관련 질문있습니다. 댓글[7] 아쿠아맨  19-05-25
질문 서보모터 시간제어 댓글[1] 코시  19-05-25
질문 초음파센서, 가변저항 차고 댓글[1] 코시  19-05-25
게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전