금속근접센서 LJ12A34Z/BX 아두이노 문의(2)
페이지 정보
작성자 mapsul 작성일20-01-17 23:37 조회11,523회 댓글2건본문
추운날 앞선 질문글에 답해주셔서 정말 감사드립니다.
답변해 주신 바로 금속근접센서의 오픈소스 setup 란에 pinMode 부분을 추가로 입력 후 오픈소스를 돌려 시리얼 모니터를 확인해 보았으나, 안타깝게도 원하는 결과를 돌출하지는 못했습니다. 하단에 기재한 내용과 같이 몇가지 시도를 해보았으며, 재구매 혹은 다른 종류 (헤더핀이 박힌 칩형태)의 금속센서를 구입하기 전 확인해봐야 할
사항이 있는지 여쭤보고자 문의드립니다!
1. 혹시 코드가 이상해서인가? 하고 코드를 오픈소스를 다시 주의깊게 재입력
2. 혹시 스케치IDE 툴이 문제이려나? 하고 스케치를 최신버전으로 업데이트도 해보고 , 우노에 적합하다고 알고있었던 1.0.6ver 으로 재설치 시행
3. 혹시 보드 문제이려나? 하여 호환보드가 아닌 정품 SMD보드로 진행
4. 혹시나 싶어 구매처의 설명을 보며 해당 금속근접센서의 작동전압이 6V ~ 36V 라는 범주이기에 외부전압 12V 1.5A 어답터를 연결해 보았으나 이또한 정답은 아니였습니다. (허나 영상에서는 외부전원을 인가하지 아니하고 진행을 하였을 경우 금속마찰 시 100대의 아날로그 수치 , 이외의 경우 1023 의 아날로그 수치 돌출)
5. 혹시 컴퓨터 문제이려나? 하여 동기 노트북을 통해서 진행을 해보았으나 이또한 같은 시리얼 모니터 값을 나타내더군요!
( 이를테면 외부전원 없이 , 금속접촉없이 시리얼모니터 값은 대략 904 ~ 906 가량이라면 , 금속접촉 시 센서 뒷부분 LED 부분이 켜지나 시리얼모니터 값은 903 ~ 905가량의 수치가 표시되는 등 차이가 없었습니다.)
금속센서를 이용하여 모터를 돌려 볼 계획인데, 이러한 상황에서 이후를 진행해도 되는건지 센서를 교체해 봐야하는건지 궁금합니다.)
금속근접센서를 구매당시 VCC GND SIGNAL 세 단자의 끝 피복이 벗겨져 있었기에 MM 케이블 끝단자부분을 절단 후 피복을 벗겨 결선 후 절연테이프로 감은채로 진행했습니다.
제가 이제 막 아두이노를 시작한 단계라 이것저것 디버깅을 많이 해보면서 느낀바가 많았습니다.
개인적인 생각으로 남은건 서보모터 돌릴 시 생각보다 중요시되는 외부전원의 전류량 혹은 센서문제정도밖에 떠오르지를 않아서 앞서 말씀드린바와 같이
헤더핀을 꼽는 칩으로 된 금속센서를 재구매 하기전에 혹시라도 개인적으로 체크해본 사항 이외에 확인해 볼 사항이 있을까 싶어 여쭙고자 질문을 드립니다.
void setup() {
Serial.begin(9600);
pinMode(A0,INPUT_PULLUP);
}
void loop() {
int sensorValue = analogRead(A0);
Serial.println(sensorValue);
delay(100);
}
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
서보모터 또한 공부중에 있습니다. 기본적인 서보모터가 아니라 360도 회전이 필요할 것 같다 싶어서 외부전원을 인가해야하는 모터를 구입했었습니다.
youtube에 나온 서보모터 제어 오픈소스를 적용하여 공부를 하고 있는데, 2가지 예제에서 모터동작에 의문점이 들었습니다.
ex1) 0° -> 30° -> 0° -> 30° 이런식으로 제어하는 코드를 그대로 적용해 보았더니 제 모터는 멈출기미없이 무한회전을 했습니다.
ex2) 0° -> 30° -> 90° ->
180° 이런식으로 제어하는 코드를 그대로 적용해 보았더니터가 한번 돌고 포트가 빠지는 소리 들린뒤 다시 한번 모터가 한번 돌고 포트가 빠지는 소리 들린뒤 다시 한번 돌고 빠지는 소리 들리는 식으로
Serial.serialEvent() 내부 에러
java.io.IOException: Bad file descriptor in nativeavailable at gnu.io.RXTXPort.nativeavailable(Native Method) at gnu.io.RXTXPort$SerialInputStream.available(RXTXPort.java:1532) at processing.app.Serial.serialEvent(Serial.java:258) at gnu.io.RXTXPort.sendEvent(RXTXPort.java:732) at gnu.io.RXTXPort.eventLoop(Native Method) at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1575)
이런 문구를 시작으로 에러가 났습니다.
이제 막 배우는 입장에 너무 사소한 부분을 여쭙는게 아닐까 하는 생각이 들지만, 서둘러 배우고 익혀보고 적용해보고싶은 마음에 실례를 무릎쓰고 기초적인 부분들을
여쭤봅니다...
youtube 에서는 잘 돌아간 것으로 보아 코드문제는 아닌듯 싶어서 무슨 오류 때문에 이런 문제가 발생하는 것인가 궁금합니다.
각도제어가 불가능 하다는 제품설명이 있었으나 스케치의 기본 SERVO - SWEEP의 예제는 돌아가는것으로 보였습니다.
제 생각으로는 외부전원 어답터가 12V , 1.5A를 사용하고 있는데, 전압만이 중요한것이 아니라 전류도 중요함을 알게되었는데, 인가되는 전류문제이거나
혹은 애초에 각도조절이 불가능한 모터이기 때문에 발생하는 오류라 생각되는데 제 생각이 맞는지 궁금합니다.
제가 구입했던 모터 사양을 하단에 붙였습니다. 아두이노 코드를 익히고 접하기전에 기본적으로 알고있어야 하는 지식일 듯 싶어서 여쭤보겠습니다!
소개 (Introduction) :
사양 (Specification) :
동작 전압 : 4.8 ~ 6.0V(5V 권장)
회전 속도 : 0 ~ 43rpm (4.8V) / 55rpm (6V)
속도 : 0.2s/60도 (4.8V) / 0.16s/60도 (6V)
토크 : 5.0kgf.cm(4.8V) / 6.2kgf.cm(6V)
크기 : 41.3mm x 20.7mm x 40.2mm
무게 : 41g
댓글 : 2
조회수 : 11,523
master님의 댓글
master 작성일
//pinMode(A0,INPUT_PULLUP);
pinMode(A1,INPUT_PULLUP);
센서를 A1에 연결했으면 핀모드도 A1을 설정해야지요
핀모드 정도는 아셔야합니다.
mapsul님의 댓글
mapsul
아.. 죄송합니다! A0 핀모드에 원하는 결과값을 돌출할수가 없었기에 제가 임의로 해당 PinMode를 A1 A2 ㆍㆍㆍ 로 코딩변경 후 A1 A2 로 꽂아보고 시험해보는 도중 찍은 사진이였습니다. 해당 핀모드들 또한 같은 결과값을 돌출하였기에 , 센서불량이라 판단, 다른 금속센서를 한번 구입해볼까합니다.