안녕하세요 해당제품 구매하여 사용중인데
현재 아두이노와 컴퓨터를 연결하기 위해서 사용하는 케이블을 장착하면 아두이노에서 빨간불이 한번 왔다가 꺼집니다.
연결이 되지 않아서 아두이노 프로그램 포트가 비활성화 되어 있습니다. [툴]-[포트]
현재 연결하여도 아두이노에서 불빛이 안들어옴
금방 전까지 불이 들어오고 잘 사용하다가 갑자기 이렇게 되었습니다.
컴퓨터를 껏다 켜도 안되고 다른 케이블을 사용해도 안됩니다.
배터리를 연결해서 보면 아두이노에 불이 들어옵니다.
현재 컴퓨터에서 케이블 자체를 인식 못하고 있는거 같습니다.
케이블을 연결하고 장치관리자에서 포트 자체가 생성이 안되요
CH341SER을 재설치해도 안됩니다. 뭐가 문제 일까요???
아두이노에 코딩을 업로드하고 기계가 움직이는 것을 확인했고
그다음 기계를 멈추기 위해서 건전지를 뺐습니다.
그후에 다시 USB를 연결하니 컴퓨터에서 인식이 안되는 것 같아요
--------------------------------------------------------------------------------------------------------------------------------------------------------
작성코드
#include <SoftwareSerial.h>
#include <AFMotor.h>
AF_DCMotor motor_L(1);
AF_DCMotor motor_R(4);
int i;
//초음파센서 출력핀(trig)과 입력핀(echo), 변수, 함수 선언 //
int TrigPin = A0;
int EchoPin = A1;
long duration, distance;
void Obstacle_Check();
void Distance();
void Forward();
void Backward();
void Right();
void Left();
void Stop();
void setup() {
Serial.begin(9600); // PC와의 시리얼 통신속도
Serial.println("Eduino Smart Car Start!");
pinMode(EchoPin, INPUT); // EchoPin 입력
pinMode(TrigPin, OUTPUT); // TrigPin 출력
motor_L.setSpeed(160);
motor_L.run(RELEASE);
motor_R.setSpeed(180);
motor_R.run(RELEASE);
}
void loop() {
Forward();
delay(100);
Obstacle_Check();
}
//장애물 확인 및 회피 방향 결정//
void Obstacle_Check() {
int val = random(2);
Distance();
Serial.println(distance);
while (distance < 200) {
if (distance < 180) {
Backward();
delay(250);
Stop();
delay(50);
Distance();
}
else{
if (val ==0) {
Right();
delay(400);
}
else if (val ==1) {
Left();
delay(400);
}
Distance();
}
}
}
//거리 감지//
void Distance() {
digitalWrite(TrigPin, LOW);
delay(2);
digitalWrite(TrigPin, HIGH); // trigPin에서 초음파 발생(echoPin도 HIGH)
delayMicroseconds(10);
digitalWrite(TrigPin, LOW);
duration = pulseIn(EchoPin, HIGH); // echoPin이 HIGH를 유지한 시간을 저장 한다.
distance = ((float)(340 * duration)/1000) /2;
delay(5);
}
//방향 제어 함수//
void Forward() {
motor_L.run(FORWARD); motor_R.run(FORWARD);
for (i=0; i<200; i=i+20) {
motor_L.setSpeed(i); motor_R.setSpeed(i);
delay(2);
}
for (i=0;i<200;i=i-20){
motor_L.setSpeed(i); motor_R.setSpeed(i);
delay(2);
}
}
void Backward() {
motor_L.run(BACKWARD); motor_R.run(BACKWARD);
for (i=0; i<200; i=i+20) {
motor_L.setSpeed(i); motor_R.setSpeed(i);
delay(2);
}
for (i=0;i<200;i=i-20){
motor_L.setSpeed(i); motor_R.setSpeed(i);
delay(2);
}
}
void Right() {
motor_L.run(FORWARD); motor_R.run(BACKWARD);
for (i=0;i<180;i=i+20){
//j = i*1.3; if(j>=200) j = 200;
motor_L.setSpeed(i); motor_R.setSpeed(i);
delay(2);
}
for (i=180; i<0; i=i-20){
motor_L.setSpeed(i); motor_R.setSpeed(i);
delay(2);
}
}
void Left() {
motor_L.run(BACKWARD); motor_R.run(FORWARD);
for (i=0;i<180;i=i+20){
//j = i*1.3; if(j>=200) j = 200;
motor_L.setSpeed(i); motor_R.setSpeed(i);
delay(2);
}
for (i=180; i<0; i=i-20){
motor_L.setSpeed(i); motor_R.setSpeed(i);
delay(2);
}
}
void Stop() {
motor_L.run(RELEASE); motor_R.run(RELEASE);
for (i=200; i>=0; i=i-20) {
motor_L.setSpeed(i); motor_R.setSpeed(i);
delay(2);
}
}
usb로 연결시 드라이버문제여도 아두이노에는 전원이 공급되기 때문에 불이 들어와요!
따라서 문제는 usb로 연결시 아두이노에 전원이 공급이 안된다는 건데...
1. 아두이노에 b타입 usb포트 문제
2. 컴퓨터 usb포트 문제
3. usb케이블 선 문제
이 3가지중 문제인거 같아요
우선 컴퓨터 다른 포트에 연결해보시고 같은 문제시 다른 전자기기를 포트에 연결해보시고(다른 전자기기가 연결 된다면 본체 포트 문제X), 해결되지 않으면 usb케이블선 교체, 마지막 아두이노 보드에 포트부분 땜질이 끊어진 곳이 있나 확인 한번 부탁드려요
본체 자체의 usb포트에는 외장하드를 꽂았는데 인식했었습니다. 다른 usb 포트 4곳 모두 연결해보았지만 되지 않았어요. 아두이노에 케이블을 연결하면 딱 케이블 연결할때 빨간불이 한번 들어왔다가 꺼지고 그 뒤로는 들어오지 않습니다. 포트부분 납땜이라면 연결되는 네모난 모양 아래쪽에만 확인해보면 되나요?
아니면 다른 센서들이랑 사용하시다가 그렇게 되신거면, VCC/GND 잘못 결선해서 파손한게 아닌지.
그게 아니면 아마 케이블이나 PC문제일거같은데요?
그리고 이것저것 만지다가 배터리4개를 모두 끼우고 포트 연결하니 또 한번 컴퓨터에서 포트를 인식해서 코딩 업로드를 한번 진행했습니다.
그리고 자동차가 동작을 하는것을 확인하고 멈추기 위해 건전지를 하나 빼고 다시 아두이노를 연결하니 안되요.. 건전지를 끼워도 안되더라고요
컴퓨터 자체에서 포트를 인식못해서 장치관리자에 포트라는 항목이 생성되지 않음
핀하나가 밀려서 들어가면 불이 안들어오기도해서요!!
브레드보드 초음파센서 뒤쪽 케이블 4개 사진상 케이블이 잘못연결되서 그러는건가요?그리고 경기장 내에서 작동하는(움직이고 벽을 보면 뒤로 갔다가 방향을 트는 동작 후 다시 움직이는 동작) 코드 좀 받고 싶습니다. 유튜브 보고 작성한 코드인데 이대로 사용하면 되나요?
#include
#include
AF_DCMotor motor_L(1);
AF_DCMotor motor_R(4);
int i;
//초음파센서 출력핀(trig)과 입력핀(echo), 변수, 함수 선언 //
int TrigPin = A0;
int EchoPin = A1;
long duration, distance;
void Obstacle_Check();
void Distance();
void Forward();
void Backward();
void Right();
void Left();
void Stop();
void setup() {
Serial.begin(9600); // PC와의 시리얼 통신속도
Serial.println("Eduino Smart Car Start!");
pinMode(EchoPin, INPUT); // EchoPin 입력
pinMode(TrigPin, OUTPUT); // TrigPin 출력
motor_L.setSpeed(160);
motor_L.run(RELEASE);
motor_R.setSpeed(180);
motor_R.run(RELEASE);
}
void loop() {
Forward();
delay(100);
Obstacle_Check();
}
//장애물 확인 및 회피 방향 결정//
void Obstacle_Check() {
int val = random(2);
Distance();
Serial.println(distance);
while (distance < 200) {
if (distance < 180) {
Backward();
delay(250);
Stop();
delay(50);
Distance();
}
else{
if (val ==0) {
Right();
delay(400);
}
else if (val ==1) {
Left();
delay(400);
}
Distance();
}
}
}
//거리 감지//
void Distance() {
digitalWrite(TrigPin, LOW);
delay(2);
digitalWrite(TrigPin, HIGH); // trigPin에서 초음파 발생(echoPin도 HIGH)
delayMicroseconds(10);
digitalWrite(TrigPin, LOW);
duration = pulseIn(EchoPin, HIGH); // echoPin이 HIGH를 유지한 시간을 저장 한다.
distance = ((float)(340 * duration)/1000) /2;
delay(5);
}
//방향 제어 함수//
void Forward() {
motor_L.run(FORWARD); motor_R.run(FORWARD);
for (i=0; i
//방향 제어 함수//
void Forward() {
motor_L.run(FORWARD); motor_R.run(FORWARD);
for (i=0; i