RC카조립하기 - Egloos
Transcript of RC카조립하기 - Egloos
RC카조립하기
2016.11
고재관
Version 3
베이스보드조립
2
모터조립핀 끼우기
모터조립핀을 베이스보드에끼워 넣습니다.
3
모터 고정하기
모터조립핀 사이에 모터를끼웁니다.
구멍사이 볼트를 넣습니다.
볼트가 튀어 나오면 너트를끼워 조립 합니다.
조립시에는 나모양의 스크류드라이버를사용합니다.
4
모터 4개 모두 고정하기
나머지 모터도 조립합니다.
조립할 때 모터의 색상띠를 확인 하세요
5
모터연결 케이블
나머지 모터도 조립합니다.
조립할 때 모터의 색상띠를 확인 하세요
전선은 한쪽으로 모아서연결합니다.
배터리연결
7
배터리 및 배터리홀더
- +
+ -
3.7V 1000mA
3.7V 1000mA +
+
전원+와전원-부분주의요망바뀔경우 화상/화재위험매우높음
8
외부전원연결하기
-3.7V 1000mA +
다이오드
GNDD+D-5V
IN+
IN-VINGND
5V
GND
<참고용>
9
모터 & 모터드라이브 전원연결
IN1
IN3
IN2
IN4
22035VRVT
22035VRVT
OUT1
OUT2
OUT4
OUT3GND 5V
12
V
-3.7V 1000mA
3.7V 1000mA +
+
GND
5V
+
-
10
충전지케이스 조립하기
충전지를 조립합니다.
전지를 빼서 조립한후 다시끼워 넣습니다. +와 – 전극을주의 하세요
+
+
모터드라이버
12
모터 & 모터드라이브 데이터연결
IN1
IN3
IN2
IN4
22
03
5V
RV
T2
20
35
VR
VT
OU
T1
OU
T2
OU
T4
OU
T3G
ND
5V
12V
11
10
96
모터조립
14
15
모터 & 모터드라이브 연결
IN1
IN3
IN2
IN4
22
03
5V
RV
T2
20
35
VR
VT
OU
T1
OU
T2
OU
T4
OU
T3G
ND
5V
12V
11
10
9
6
16
작동확인
void loop(){
digitalWrite( 6, LOW );digitalWrite( 9, HIGH);digitalWrite(10, LOW );digitalWrite(11, HIGH);delay(2000);digitalWrite( 6, LOW );digitalWrite( 9, LOW );digitalWrite(10, LOW );digitalWrite(11, LOW );delay(2000);
}
void setup() {
pinMode( 6,OUTPUT);pinMode( 9,OUTPUT);pinMode(10,OUTPUT);pinMode(11,OUTPUT);
}
17
모터추가 연결
IN1
IN3
IN2
IN4
22035VRVT
22035VRVT
OUT1
OUT2
OUT4
OUT3GND 5V
12
V
연결완료
19
모터 & 모터드라이브 연결
IN1
IN3
IN2
IN4
22
03
5V
RV
T2
20
35
VR
VT
OU
T1
OU
T2
OU
T4
OU
T3G
ND
5V
12V
11
10
9
6
-3
.7V
10
00
mA
3.7
V 1
00
0m
A
+
+
GND5V
20
블루투스연결
RXTXGNDVCC
3
2
GND
5V
21
블루투스 프로그램
22
블루투스 프로그램
23
블루투스 셋팅값
1 전진
2 후진
3 정지
4 왼쪽으로
5 오른쪽으로
기타
25
배터리 충전기만들기
+ -3
.7V
10
00
mA
BAT+
BAT-
코드리뷰-정속
27
준비 1/5
#include <SoftwareSerial.h>
SoftwareSerial bluetooth(2,3); // RX, TX @Bluetooth
int IN1 = 6;int IN2 = 9;int IN3 = 10;int IN4 = 11;
28
진행 2/5
void RCGo(){digitalWrite(IN1, LOW);digitalWrite(IN2, HIGH);digitalWrite(IN3, LOW);digitalWrite(IN4, HIGH);
}
void RCStop(){digitalWrite(IN1, LOW);digitalWrite(IN2, LOW);digitalWrite(IN3, LOW);digitalWrite(IN4, LOW);}
void RCBack(){
digitalWrite(IN1, HIGH);digitalWrite(IN2, LOW);digitalWrite(IN3, HIGH);digitalWrite(IN4, LOW);
}
29
진행 3/5
void RCLeft(){digitalWrite(IN1, HIGH);digitalWrite(IN2, HIGH);digitalWrite(IN3, LOW);digitalWrite(IN4, HIGH);
}
void RCRight(){digitalWrite(IN1, LOW);digitalWrite(IN2, HIGH);digitalWrite(IN3, HIGH);digitalWrite(IN4, HIGH);
}
30
기능호출 4/5
void run(int n){
if(n == '1') RCGo();if(n == '2') RCBack();if(n == '3') RCStop();if(n == '4') RCLeft();if(n == '5') RCRight();
}
31
작동 5/5
void loop() { if (Serial.available()) {int a = Serial.read();Serial.println(a);run(a);
}
if (bluetooth.available()) {int b = bluetooth.read();Serial.println(b);bluetooth.println(b);run(b);
} delay(50);
}
void setup() {pinMode(IN1,OUTPUT);pinMode(IN2,OUTPUT);pinMode(IN3,OUTPUT);pinMode(IN4,OUTPUT);
Serial.begin(9600);bluetooth.begin(9600);
}
코드리뷰-속도조정
33
준비 1/5
#include <SoftwareSerial.h>
SoftwareSerial bluetooth(2,3); // RX, TX @Bluetooth
int IN1 = 6;int IN2 = 9;int IN3 = 10;int IN4 = 11;
#define MAX 255int nL = 255;int nR = 255;
34
진행 2/5
void RCGo(){analogWrite(IN1, 0);analogWrite(IN2, nR);analogWrite(IN3, 0);analogWrite(IN4, nL);
}
void RCStop(){analogWrite(IN1, 0);analogWrite(IN2, 0);analogWrite(IN3, 0);analogWrite(IN4, 0);}
void RCBack(){
analogWrite(IN1, nR);analogWrite(IN2, 0);analogWrite(IN3, nL);analogWrite(IN4, 0);
}
35
진행 3/5
void RCLeft(){analogWrite(IN1, MAX);analogWrite(IN2, MAX);analogWrite(IN3, 0);analogWrite(IN4, MAX);
}
void RCRight(){analogWrite(IN1, 0);analogWrite(IN2, MAX);analogWrite(IN3, MAX);analogWrite(IN4, MAX);
}
36
기능호출 4/5
void run(int n){
if(n == '1') RCGo();if(n == '2') RCBack();if(n == '3') RCStop();if(n == '4') RCLeft();if(n == '5') RCRight();
}
37
작동 5/5
void loop() { if (Serial.available()) {int a = Serial.read();Serial.println(a);run(a);
}
if (bluetooth.available()) {int b = bluetooth.read();Serial.println(b);bluetooth.println(b);run(b);
} delay(50);
}
void setup() {Serial.begin(9600);bluetooth.begin(9600);
}
코드리뷰-LED추가
39
준비 1/6
#include <SoftwareSerial.h>
SoftwareSerial bluetooth(2,3); // RX, TX @Bluetooth
int IN1 = 6;int IN2 = 9;int IN3 = 10;int IN4 = 11;
40
진행 2/6
void RCGo(){digitalWrite(A0, HIGH);digitalWrite(A1, LOW);digitalWrite(IN1, LOW);digitalWrite(IN2, HIGH);digitalWrite(IN3, LOW);digitalWrite(IN4, HIGH);
}
void RCStop(){digitalWrite(A0, LOW);digitalWrite(A1, LOW);digitalWrite(IN1, LOW);digitalWrite(IN2, LOW);digitalWrite(IN3, LOW);
void RCBack(){
digitalWrite(A0, LOW);digitalWrite(A1, HIGH);digitalWrite(IN1, HIGH);digitalWrite(IN2, LOW);digitalWrite(IN3, HIGH);digitalWrite(IN4, LOW);
}
41
진행 3/6
void RCLeft(){digitalWrite(IN1, HIGH);digitalWrite(IN2, HIGH);digitalWrite(IN3, LOW);digitalWrite(IN4, HIGH);
}
void RCRight(){digitalWrite(IN1, LOW);digitalWrite(IN2, HIGH);digitalWrite(IN3, HIGH);digitalWrite(IN4, HIGH);
}
42
기능호출 4/6
void run(int n){
if(n == '1') RCGo();if(n == '2') RCBack();if(n == '3') RCStop();if(n == '4') RCLeft();if(n == '5') RCRight();
}
43
작동 5/6
void setup() {pinMode(IN1,OUTPUT);pinMode(IN2,OUTPUT);pinMode(IN3,OUTPUT);pinMode(IN4,OUTPUT);
pinMode(A0,OUTPUT);pinMode(A1,OUTPUT);
Serial.begin(9600);bluetooth.begin(9600);
}
44
작동 6/6 if (bluetooth.available()) {int b = bluetooth.read();Serial.println(b);bluetooth.println(b);run(b);x = b;
}
if(x == '2'){
if( b == false) {digitalWrite(A1,HIGH);b = true;
} else {digitalWrite(A1,LOW);b = false;
}}delay(100);
}
int x = '1';bool b = false;
void loop() { if (Serial.available()){int a = Serial.read();Serial.println(a);run(a);x = a;
}