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

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

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

묻고답하기

상품 게시판 상세
제목 스마트카 구동관련 문의드립니다 이성규입니다 답변 빨리좀 부탁드릴께요ㅠㅠ
작성자 iys01193 (ip:)
  • 작성일 2018-11-08
  • 추천 추천하기
  • 조회수 88
스마트카 관련 사진들입니다  
배선도 여러번 확인 했는데 확인 부탁드립니다 곧 동영상도 올리겠습니다.
https://blog.naver.com/ys4132/221394111332
구동동영상있는 블로그입니다.


그리고 같이 보내주셨던 예제코드입니다.


#include <SoftwareSerial.h> // 시리얼 통신을 위한 라이브러리 선언

int RightMotor_E_pin = 5;      // 오른쪽 모터의 Enable & PWM  
int LeftMotor_E_pin = 6;       // 왼쪽 모터의 Enable & PWM
int RightMotor_1_pin = 8;      // 오른                                                                                            쪽 모터 제어선 IN1
int RightMotor_2_pin = 9;      // 오른쪽 모터 제어선 IN2
int LeftMotor_3_pin = 10;      // 왼쪽 모터 제어선 IN3
int LeftMotor_4_pin = 11;      // 왼쪽 모터 제어선 IN4

#define L_Line A3  // 왼쪽 라인트레이서 센서는 A3 핀에 연결
#define C_Line A4  // 가운데 라인트레이서 센서는 A4 핀에 연결
#define R_Line A5  // 오른쪽 라인트레이서 센서는 A5 핀에 연결

int Rmotor_dir = 1;   
int Lmotor_dir = 1;   
int motor_s = 200;     // 모터 속도
int last_Sensor;       // 마지막 센서값 저장

void setup(){
  Serial.begin(9600);  
 
  // 모터 핀은 출력으로 설정
  pinMode(RightMotor_E_pin, OUTPUT);
  pinMode(LeftMotor_E_pin, OUTPUT);
  pinMode(RightMotor_1_pin, OUTPUT);
  pinMode(RightMotor_2_pin, OUTPUT);
  pinMode(LeftMotor_3_pin, OUTPUT);
  pinMode(LeftMotor_4_pin, OUTPUT);
 
  // 라인트레이서 센서는 입력으로 설정
  pinMode(L_Line,INPUT);
  pinMode(C_Line,INPUT);
  pinMode(R_Line,INPUT);
  delay(3000);  
}
 
void loop(){
  if(digitalRead(L_Line)){              // 왼쪽 센서가 감지되면
    motor_role(motor_s,-(motor_s/4));   // 좌측 모터를 1/2속도로 회전
    last_Sensor = 2;                   
  }
  else if(digitalRead(C_Line)){          // 만약 가운데 센서가 감지되면
    motor_role(motor_s,motor_s);         // 직진하라
    last_Sensor = 0;                     
  }  
  else if(digitalRead(R_Line)){         // 만약 오른쪽 센서가 감지되면
    motor_role(-(motor_s/4),motor_s);   // 우측 모터를 1/2속도로 회전
    last_Sensor = 1;                   
  }  
}

void motor_role(int R_motor, int L_motor){
 
 if(R_motor>0){       // 우측 모터 정회전
   digitalWrite(RightMotor_1_pin,Rmotor_dir);
   digitalWrite(RightMotor_2_pin,!Rmotor_dir);
 }
 else if(R_motor<0){  // 우측 모터 역회전
   digitalWrite(RightMotor_1_pin,!Rmotor_dir);
   digitalWrite(RightMotor_2_pin,Rmotor_dir);
 }
 else{                // 우측 모터 정지
   digitalWrite(RightMotor_1_pin,LOW);
   digitalWrite(RightMotor_2_pin,LOW);
 }
 if(L_motor>0){       // 좌측 모터 정회전
   digitalWrite(LeftMotor_3_pin,Lmotor_dir);
   digitalWrite(LeftMotor_4_pin,!Lmotor_dir);
 }
 else if(L_motor<0){  // 좌측 모터 역회전
   digitalWrite(LeftMotor_3_pin,!Lmotor_dir);
   digitalWrite(LeftMotor_4_pin,Lmotor_dir);
 }
 else{                // 좌측 모터 정지
   digitalWrite(LeftMotor_3_pin,LOW);
   digitalWrite(LeftMotor_4_pin,LOW);
 }
 analogWrite(RightMotor_E_pin,abs(R_motor));   // 우측 모터 속도값
 analogWrite(LeftMotor_E_pin,abs(L_motor));    // 좌측 모터 속도값
}
평점 0점
첨부파일
비밀번호 삭제하려면 비밀번호를 입력하세요.
댓글 수정

비밀번호 :

수정 취소

/ byte

비밀번호 : 확인 취소

댓글 입력

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

확인

/ byte

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

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

댓글 입력

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

확인

/ byte

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

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

«
»