에듀이노-코딩교육 전문 쇼핑몰 에듀이노-코딩교육 전문 쇼핑몰

학교, 공공기관이라면 후불결제하세요!

 
현재 위치
  1. 게시판
  2. 묻고답하기

묻고답하기

기술문의 게시판입니다.

게시판 상세
제목 시리얼 통신 관련 문의 드립니다.
작성자 CS / 배송 (ip:)
  • 작성일 2019-05-30
  • 추천 추천하기
  • 조회수 94
안녕하세요 에듀이노입니다.
해당 문제는 기재해주신 문제로는 정확한 판단이 이루어지지 않습니다.
적증간에 회로적인 문제인지 소프트웨어적인 문제인지 판단하기에 앞서
사용하신 gps쉴드와 모터드라이버의 사용핀에 대한 호환 여부 및 제품사양을 체크해보시기 바랍니다.
감사합니다.
[ Original Message ]

안녕하세요.

귀사의 제품을 이용하여 로봇 제작을 하고 있습니다.

제가 하고자 하는 방향은 아두이노 우노, GPS, 모터 드라이버(L293D 쉴드) 를 차례로 적층하였습니다.

노트북 시리얼통신을 이용하여 GPS 값을 실시간으로 읽고, 시리얼 통신에 문자를 입력하여 원하는 모터를 구동하고자 합니다.


이때, 프로그램을 시작하면 GPS값을 읽다가 모터 구동을 위해 문자를 입력하기만 하면 GPS 수신을 중단합니다.

모터 구동은 되는데 GPS 수신은 멈추어서 더이상 진행을 할 수가 없습니다.


확인결과 모터쉴드 라이브러리의 AF_DCMortor1(1) 이 명령어가 들어가서 실행되면 gps 수신을 끊습니다.


코딩 프로그램과 시리얼 모니터를 첨부하겠습니다.

혹시 해결 방법이 있다면 회신 부탁 드리겠습니다.


#include <TinyGPS++.h>
#include <SoftwareSerial.h>
#include <AFMotor.h>
#include <Servo.h>

SoftwareSerial serial_connection(4, 3);
TinyGPSPlus gps;

void setup() {
  Serial.begin(9600);
  serial_connection.begin(9600);
  serial_connection.available();
  Serial.println("GPS Start");
}

void loop() {
  while(1)
  {
  if (serial_connection.available())
  {
    if (gps.encode(serial_connection.read()))
    {
      if (gps.location.isUpdated())
      {
        Serial.print(gps.location.lat(), 6);
        Serial.print(",");
        Serial.println(gps.location.lng(), 6);
        String a = Serial.readString();
        if (a == "p")
        {
          AF_DCMotor motor1(1);
          motor1.setSpeed(500);
          motor1.run(FORWARD);
          delay(500);
          motor1.run(RELEASE);
          Serial.println("p");
        }
      }
    }
    }
  }
}


게시글 신고하기

신고사유

신고해주신 내용은 쇼핑몰 운영자의 검토 후 내부 운영 정책에 의해 처리가 진행됩니다.

평점 0점
첨부파일
비밀번호 수정 및 삭제하려면 비밀번호를 입력하세요.
댓글 수정

비밀번호 :

수정 취소

/ byte

비밀번호 : 확인 취소

댓글 입력

댓글달기이름 :비밀번호 : 관리자답변보기

확인

/ byte

왼쪽의 문자를 공백없이 입력하세요.(대소문자구분)

에게만 댓글 작성 권한이 있습니다.

댓글 입력

댓글달기이름 :비밀번호 :

확인

/ byte

왼쪽의 문자를 공백없이 입력하세요.(대소문자구분)

에게만 댓글 작성 권한이 있습니다.

«
»