정보나눔

오픈소스하드웨어 프로젝트에 대한 다양한 정보를 나누는 공간입니다.

서보모터 및 LCD출력에 관한 질문입니다.
노마 | 2019-06-05
 

1. 프로젝트 사용한 보드 종류

  (EX : 오렌지보드, 오렌지 BLE보드, 아두이노 UNO 등)

 아두이노 UNO 사용

 

2. 사용한 개발 프로그램명

  (EX : 아두이노 IDE, 스크래치, mBlock 등)

 아두이노 IDE

 

3. 사용한 센서 모델명

  (센서 모델명을 자세하게 적어 주실 경우 더 정확하게 확인할 수 있습니다.)

 

서보모터 SG-90

LCD 1602

인체감지센서 SR-501 PIR

지문인식센서 GT-511C3을 사용중입니다.

 

4. 연결한 회로 설명 (또는 이미지)

 

위 코딩은 지문인식센서를 이용하여 서보모터가 돌아가게끔 한 코딩입니다. 더불어 인체감지센서를 이용해 LCD및 지문인식센서의 백라이트를 켜고 끌 수 있게 설정해놨습니다. 아직 함수를 따로 사용하는데 어려움이 있어서 setup 과 loop안에만 넣어놨습니다..ㅠ

 

5. 소스코드 (주석 필수)

  (원하는 기능의 코드를 전부 작성해 드리긴 어렵습니다. 기초부터 차근차근 공부해보면서 코드를 만들어 보세요.)

 

 

6. 문제점 및 에러 내용

  (소스코드 문제일 경우 에러 내용도 같이 올려주세요.)

#include <FPS_GT511C3.h>
#include <SoftwareSerial.h>
#include <Servo.h>
#include <LiquidCrystal.h>


Servo sv; //서브모터 변수 설정 (▲서브모터)
int sensor=9; // 센서의 signal 선을 7번에 연결(★인체감지)
int LCD_LED = 10; // LCD백라이트 조절(●LCD)
LiquidCrystal LCD(12,11,7,6,5,4); //(●LCD)
FPS_GT511C3 fps(2, 3); //지문인식 핀

void setup()
{
sv.attach(8); //(▲서브모터)
pinMode(sensor, INPUT); //(★인체감지)
pinMode(LCD_LED, OUTPUT); //LCD백라이트(●LCD)

Serial.begin(9600); // 통신속도 9600bps로 시리얼 통신 시작
while(!Serial);
Serial.println("통신 연결 완료!");

LCD.begin(16,2); //LCD 크기 설정(●LCD)
}


void loop(){
int val= digitalRead(sensor); //(★인체감지)

if(val==1){
LCD.clear(); //(●LCD)
LCD.print("WELCOME");//(●LCD)
LCD.setCursor(0,1); //(●LCD)
LCD.print("Put Your finger");//(●LCD)
digitalWrite(LCD_LED,HIGH); //(●LCD)

Serial.println("감지 O");
delay(100);

fps.Open();
fps.SetLED(true);

//지문인식센서=========
if(fps.IsPressFinger()){
fps.CaptureFinger(false);
int id = fps.Identify1_N();
if (id < 200) {  //지문인식이 되었을 때
Serial.print("Verified ID:");
Serial.println(id);
LCD.clear();
LCD.setCursor(0,0);
LCD.print(" Verified!");
sv.write(180);//=============(지문인식 완료 됬을 때 ▲서보모터)
} else { //지문이 저장한 것과 다를때
Serial.println("Finger not found");
LCD.clear();
LCD.setCursor(0,0);
LCD.print("Who are you?");
}
} else { //기본 대기 상태
Serial.println("Please press finger");
}
}
else//=================================== 인체감지 없을 때
{
Serial.println("감지 X");
delay(100);

LCD.clear();
fps.Close();
fps.SetLED(false);
digitalWrite(LCD_LED,LOW);

sv.write(0);
}
}

 

 

 

 

저 코딩으로 컴파일 할 시에 서보모터가 계속 떨림 현상(?)이 일어납니다ㅠㅠ 또한 지문인식을 하였을 때 LCD에 출력이 되지 않더라고요.. 이 부분에 대해서 어떻게 하면 될지 죄송스럽게 여쭤봅니다

 

 

프로필사진

판다마니아 2019-06-05 19:21:23

서보랑 lcd랑 지문인식까지 다사용하실 경우 전원이 부족해서 원할하게 동작을 안할 수 있습니다.

 

배터리나 아답터와 같은 추가 전원을 연결하여 서보모터나 LCD의 전원을 따로 빼면 괜찮을 것 같습니다.

(LCD 화면이 흐리거나 서보모터가 떨리는 현상은 전원쪽 문제일 수 있습니다.

이전글   |    아두이노 코드들을 합치는데 문제가 있습니다... 2019-06-04
다음글   |    아두이노 키패드와 블루투스를 이용한 금고 제작 명령어인데 작동이 안됩니다. ... 2019-06-05