상세 컨텐츠

본문 제목

라즈베리파이 미니 프로젝트 5탄 ! [부품 공부 - 토양 수분 센서 / 모터 드라이버 / LCD]

라즈베리파이 실습 및 미니 프로젝트 !

by 전자과_공대생 2021. 1. 21. 20:32

본문

728x90
반응형

날짜 : 2021.01.10 일요일 / 제목 : 프로젝트 준비 / 날씨 : 🥶🥶🌞

 

안녕하세요 ~! 전자과_공대생입니다 ~ (⌐■_■)

요즘 날씨가 풀리고는 있지만 그래도 겨울은 겨울이네요 ㅠㅠ

오늘은 토양 수분 센서와 모터 드라이버, LCD에 대해서 공부해보겠습니다.

그럼 오늘 할 실습을 알려드리겠습니다 !

 

 

{ 오늘 할 실습 }

👉오류난 ADC 모듈 원인 파악

👉토양 수분 센서

👉모터 드라이버

👉LCD

👉LCD 라이브러리 예제 사용

 

 

먼저 어제 포스팅 글에서 오류난 ADC 모듈에 대한 것부터 말씀드리겠습니다 !

부품을 지원해주신 박현규 님과 상의해본 결과, ADC 모듈의 고장이 원인일 수도 있다는 얘기가 나왔습니다.

현재 제가 쓰고 있는 ADC 모듈은 MCP3008입니다.

따라서 내일(월요일) 새로운 부품을 가지고 다시 한번 도전해볼 생각입니다 !

ADC 모듈에 대한 이야기는 다음 글에서 작성하겠습니다.

 

 

그럼 토양 수분 센서에 대해서 공부해보도록 하겠습니다 !

{ 필요한 재료 }

👉토양 수분 센서

 

프로젝트에서 사용할 토양 수분 센서

위에 사진은 제가 프로젝트에서 사용할 토양 수분 센서입니다.

SEN-13322 제품이며 다들 흔히 사용하지 않는 부품입니다.

그래서 그런지 데이터 시트도 아무리 찾아봐도 없는,,,

그래서 박현규 님의 지식과 구글에 떠다니는 여러 글을 종합해서 제가 이해한 대로 작성하겠습니다 !

우선 토양 수분 센서에 대해서 설명하기 전에 물의 저항에 대해서 설명드리겠습니다.

물의 저항은 0옴이라고 다들 생각하시는데 실제로는 수십 옴 정도가 나옵니다.

0옴(실제로는 수십 옴)이라는 것은 전기가 잘 통하지 않는다는 뜻입니다.

왜 물의 저항 이야기가 나오는 것인가??

바로 토양 수분 센서는 토양(흙)의 수분(물의 함량)을 측정하여 그 값을 나타낸 것이기 때문입니다.

그럼 어떻게 측정을 하는가??

전극이 부착된 양 쪽 수분 측정용 프로브를 이용하여 저항 값을 측정합니다.

즉, 프로브끼리 전기를 흘렸을 때 잘 흐르지 않는다면 흙에 물이 많다는 뜻입니다.

반대로 잘 흐를 경우에는 흙에 물이 적다는 뜻입니다.

그렇다면 실제로 어떻게 작동시키는가??

우선 센서 프로브를 흙에 꽂아서 사용합니다.

2개의 다리는 VCC, GND로 연결이 됩니다.

따라서 흙에 꽂게 되면 그 흙의 수분 함유량으로 인해 센서 자체가 저항이 됩니다.

여러 종류의 토양 수분 센서가 있지만 제가 사용할 부품은 총 3가지를 출력합니다.

사진에 나와있는 것처럼 VCC, GND, SIG(AO)입니다.

여기서 AO를 집중해야 됩니다 !

AO는 단순히 저항치에 의한 전압의 출력으로 측정하는 것입니다.

라즈베리파이는 아날로그 전압 값을 디지털 값으로 변환해주는 역할이 없습니다.

따라서 아날로그 전압 값을 디지털 값으로 보려면 ADC 모듈이 필요합니다 !

ADC 모듈에 대해서는 전 포스팅 글에서 설명드렸습니다 !

그래서 AO는 ADC를 통하여 출력 값을 얻을 수 있습니다.

아날로그 전압 값은 말 그대로 전압 값이 나오고 디지털 값은 전압 값에 따라 0~1023 사이 값을 출력합니다 !

따라서 물의 함량에 따른 결과 값을 알려드리겠습니다 !

전압 값이 높으면 저항이 낮고 물이 많습니다 !

빈대로 전압 값이 낮으면 저항이 높고 물이 적은 것입니다 !

 

 

이제 모터 드라이버에 대해서 공부해보도록 하겠습니다 !

{ 필요한 재료 }

👉모터 드라이버

 

프로젝트에서 사용할 모터 드라이버

위에 사진은 프로젝트에서 사용할 모터 드라이버입니다 !

사용 방법에 대해서 설명드리겠습니다 !

우선 전원 인가는 대부분 배터리로 합니다 !

물론 라즈베리파이의 전원을 인가해도 가능합니다.

전원 인가는 아래 3개의 파란색에 연결하게 됩니다.

왼쪽부터 +12V, GND, +5V 역할을 합니다.

양 쪽 2개의 파란색에는 사용할 DC 모터를 연결합니다.

저의 프로젝트에서는 모터를 하나만 사용할 생각입니다 !

마지막으로 3개의 파란색 옆에 핀 6개 중 사용하는 것만 모두 라즈베리파이의 BCM에 꽂아주면 됩니다.

왼쪽부터 ENA, IN1, IN2, IN3, IN4, ENB입니다.

저는 하나의 모터만 사용할 것이기 때문에 ENA, IN1, IN2(또는 ENB, IN3, IN4)만 사용해도 됩니다.

ENA는 A 모터를 ENABLE 시킬 것인지 판단하는 것입니다.

ENA를 HIGH 전압을 걸어줘야 작동하면 LOW면 작동하지 않습니다.

IN1, IN2는 서로 다른 전압을 받아야 작동을 합니다.

만약 같은 전압(둘 다 HIGH 또는 LOW)이라면 동작하지 않습니다.

IN1이 HIGH이고 IN2가 LOW이면 정방향으로 회전합니다.

반대로 전압을 인가하면 역방향으로 회전합니다.

 

 

다음으로 LCD에 대해서 공부해보도록 하겠습니다 !

{ 필요한 재료 }

👉1602 LCD

👉I2C 제어기

 

프로젝트에서 사용할 LCD 앞면

위에 사진은 제가 프로젝트에서 사용할 LCD입니다 !

1602 LCD로 16X2으로 총 32 문자의 출력이 가능합니다.

프로젝트에서 사용할 LCD 뒷면

저는 LCD에 I2C 제어기가 추가되어있는 부품을 사용하기로 했습니다.

I2C 제어기가 없으면 복잡한 케이블 연결이 필요하기 때문에 간단하게 제어기 하나를 붙였습니다 !

제어기에는 GND, VCC, SDA, SCL이 있습니다.

SDA, SCL은 라즈베리파이의 SDA1과 SCL1에 연결하면 됩니다.

GND와 VCC는 많이 했으니 넘어가도록 하겠습니다.

또한 사진 속에서 빨간색 네모 안에 있는 것은 backlight 기능입니다.

backlight 기능을 가지고 있으면 어두운 환경에서 사용하기 좋습니다 !

 

 

이제 LCD 라이브러리를 이용하여 예제를 한번 풀어보겠습니다 !

{ 필요한 재료 }

👉라즈베리파이

👉브레드보드

👉1602 LCD

👉I2C 제어기

👉여러 점퍼 케이블

 

LCD를 사용하기 전에 설정을 해야 하는 것이 있다.

라즈베리파이의 설정 값 변경하는 방법

 위에 사진처럼 I2C을 Enable로 체크를 해줘야 합니다 !

 

그러면 이제 연결한 회로를 보여드리도록 하겠습니다 !

LCD 회로

좀 더 정리하여 보여드리도록 하겠습니다 !

정리한 LCD회로

SDA, SCL은 라즈베리파이에서 3번 핀(SDA), 5번 핀(SCL)에 연결했습니다 !

또한 VCC는 5V, GND는 GND에 연결했습니다.

이제 코딩을 보여드리겠습니다.

제가 보고 따라한 사이트는 여기입니다 !

사이트에서 알려준 대로 하게 된다면 성공적으로 동작합니다.

아래 영상은 제가 직접 따라 하여 동작하는 데 성공한 영상입니다 !

 

직접 따라하여 동작하는데 성공한 영상

 

 

이렇게 오늘 할 실습을 모두 마쳤습니다 !

그럼 다음 포스팅 글에서 뵙겠습니다 ~

이상 전자과_공대생이었습니다 ~ ! (⌐■_■)

감사합니다 ~!

728x90
반응형

관련글 더보기