산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

MCP3008의 고감도 물 센서

팬텀 YoYo 고감도 사용 SPI 인터페이스가 있는 MCP3008 8채널 10비트 ADC의 수분 센서.

소개

배경

다음 프로젝트에서 MCP3008을 사용하여 여러 센서를 모니터링하고 있습니다. 이 프로젝트에서는 Raspberry Pi 2, Windows 10 IoT Core 및 C#과 함께 SPI 인터페이스가 있는 MCP3008 8채널 10비트 ADC에서 Phantom YoYo 고감도 물 센서를 사용하는 방법에 대해 자세히 설명하겠습니다.

MCP3008 사용

ADC는 아날로그-디지털 변환기입니다. 아날로그 신호는 숫자로 변환되어 애플리케이션으로 읽어들입니다. MCP3008은 10비트 ADC입니다. 즉, 10비트를 사용하여 채널의 값을 나타냅니다. 값은 0에서 1023 사이의 숫자로 표시됩니다(총 1024개의 가능한 값). 이 숫자는 의미 있는 값으로 변환됩니다. 예를 들어 채널 중 하나의 전압을 측정하고 채널에서 읽은 값이 523이라고 가정해 보겠습니다. 최대 전압이 3.3V라는 것을 알고 있습니다. 채널의 전압은 공식을 사용하여 계산됩니다.

값/최대값 * Vref

내가 얻는 전압 해결

523 / 1023 * 3.3

1.687V 값 제공 . 먼저 판독값을 정규화한 다음 정규화된 판독값에 알려진 최대값인 3.3V를 곱하여 이 값을 계산했습니다.

정확한 전압 측정이 중요한 경우 Raspberry Pi의 실제 전압을 측정하고 이 값을 계산에 사용하여 ADC에서 더 정확한 변환을 얻을 것을 적극 권장합니다. 내 것을 측정했을 때 출력이 3.301V(소스 코드에서 찾은 값)임을 발견했습니다. 실제와 크게 다르지 않지만 다른 유형의 보드는 더 다를 수 있습니다.

물론, 전압을 계산하고 싶을 때는 말이 되지만, 센서마다 의미가 다릅니다. MCP3008의 채널에 연결된 각 센서에 대해 특정 세부정보를 알고 판독값을 적절하게 해석해야 합니다.

MCP3008 배선은 간단합니다. 칩 자체의 한쪽 끝에는 핀 1과 16을 나타내는 노치가 표시되어 있습니다(여기에서 데이터 시트 참조).

핀 1 ~ 8은 8개의 입력 핀이며 채널 0 ~ 7이라고 합니다. 채널 0은 핀 1입니다. 핀 16은 Vdd이며 전압 소스에 연결됩니다(3.3V 또는 5V on 라즈베리 파이). 핀 9는 Raspberry Pi의 접지 핀에 연결됩니다. 핀 15 및 14는 아날로그 회로를 참조하는 데 사용됩니다. 핀 15는 Vref이며 MCP3008에서 채널 중 하나의 최대 전압을 결정하는 데 사용됩니다. 내 예에서는 이 핀을 Raspberry Pi의 3.3V 소스에 연결했습니다. 채널 중 하나에 전압이 인가되면 MCP는 1023이 3.3V를 나타내고 0이 0V를 나타내도록 판독값을 조정합니다. 이렇게 하면 위에서 사용한 계산이 작동합니다. 핀 14는 아날로그 접지 핀입니다. 내 예에서는 Raspberry Pi의 접지 핀에 연결했습니다. 아날로그 회로를 디지털 회로에서 분리해야 하는 경우 이 핀은 아날로그 회로의 접지에 연결됩니다. 나머지 4개의 핀(10~13)은 Raspberry Pi와 통신하는 데 사용되는 SPI 직렬 인터페이스 핀입니다. 이 프로젝트에 포함된 배선 다이어그램은 이러한 핀을 Raspberry Pi에 연결하는 방법을 보여줍니다.

이 프로젝트에서는 이 개념을 설명하기 위해 간단한 전압 측정을 포함했습니다. 물 센서 판독값은 채널에서 판독된 값의 대체 해석을 보여줍니다.

프로젝트 개요

센서

이 프로젝트에서 저는 두 개의 회로를 하나로 연결했습니다. 첫 번째는 MCP3008 핀(채널 0) 중 하나에서 전압을 변경할 수 있는 간단한 전위차계입니다. 이것은 단순히 MCP3008이 어떻게 작동하는지 보여주기 위한 것입니다. 두 번째 회로는 MCP3008의 두 번째 채널(채널 1)에 연결된 물 센서입니다.

팬텀 요요 물 센서에는 3개의 핀이 있습니다. 첫 번째 핀은 접지(장치에 '-'로 표시됨)이며 Raspberry Pi의 접지 핀에 연결됩니다. 다음 핀은 전원(장치에 '+'로 표시됨)이며 Raspberry Pi의 3.3V 핀에 연결됩니다(장치는 5V에도 연결할 수 있음). 세 번째이자 마지막 핀은 신호(기기에 's'로 표시되어 있습니다. 이 핀에는 기기에 있는 물의 양에 따라 달라지는 전압 신호가 있습니다. 이 기기는 수위 센서가 아닙니다. 단순히 변화하는 것을 감지합니다. 기기와 접촉하는 물의 양. 소스 핀은 MCP3008의 입력 중 하나에 연결됩니다.

서킷

센서를 지원하는 회로는 정말 간단합니다. 이 장치는 추가 구성 요소 없이 보드 라즈베리 파이에 직접 연결됩니다.


프로젝트 소프트웨어

신청서

이 프로젝트를 위해 만든 애플리케이션은 범용 Windows 애플리케이션입니다. 기본 보기에서 2미터를 표시합니다. 첫 번째 미터는 전위차계 회로에서 측정되는 전류 전압을 보여줍니다. 두 번째는 0에서 100까지의 값으로 정규화된 물 센서의 판독값을 보여줍니다. 소프트웨어는 또한 물 센서의 보정을 허용합니다. 소스 코드에 대한 링크는 페이지 하단에서 찾을 수 있습니다.

MCP3008 라이브러리

소프트웨어 프로젝트에는 MCP3008과 상호 작용하기 위한 별도의 프로젝트도 포함되어 있습니다. 이 코드는 MCP3008 칩을 프로젝트에 쉽게 통합하기 위해 애플리케이션에서 사용할 수 있습니다.

사용하려면 먼저 다음과 같이 클래스 개체를 선언합니다.

개인 Mcp3008 _mcp3008 =null;

OnNavigatedTo에서 이벤트는 다음 코드를 추가합니다:

_mcp3008 =새로운 Mcp3008(0);

await_mcp3008.Initialize();

채널 0의 전압을 읽으려면 다음 코드 줄을 사용하십시오.

부동 전압 =_mcp3008.Read(Mcp3008.Channels.Single0).AsScaledValue(3.3f);

한 채널에서 값을 읽었음을 나타내는 Channel.Single0의 사용에 유의하세요. 장치가 두 핀의 차이를 읽도록 지정할 수 있습니다. 이것은 Mcp3008.Channels.Differential0으로 지정할 수 있으며, 이는 채널 0이 양수이고 채널 1이 음수인 채널 0과 채널 1 사이의 차이로 측정해야 함을 나타냅니다. 소스 코드는 문서이며 각 값을 설명하는 도구 설명을 제공합니다.

객체 사용을 마치면 일반적으로 OnNavigatedFrom 이벤트는 개체를 삭제합니다.

_mcp3008.Dispose();

_mcp3008 =null;

시작하기

회로 조립

페이지 하단 근처에 있는 다이어그램을 가이드로 사용하여 이 가이드를 사용하여 회로를 조립하십시오(와이어 색상은 선택 사항이며 회로를 쉽게 따라갈 수 있도록 선택되었습니다. 건설될 때).

참고: 이 프로젝트는 옵션인 멀티미터를 사용하여 전위차계의 전압을 측정합니다. 이는 값을 MCP3008에서 읽은 값과 비교하기 위해 수행됩니다. 이것은 선택 사항입니다. 멀티미터가 없으면 이 전압을 비교할 수 없습니다. 이것은 MCP3008에서 읽은 값이 멀티미터에서 읽은 값과 동일하다는 것을 보여주기 위해 수행됩니다. 아래 이미지와 같이 멀티미터를 설정하여 DC 전압을 측정합니다(멀티미터는 다르게 보일 수 있음).

Fluke 87 멀티미터


애플리케이션 시작

디버그를 선택합니다. , 구성 및 원격 시스템 . 이제 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택한 다음 디버그를 클릭합니다. 꼬리표. 그런 다음 원격 머신 필드에 Raspberry Pi 2 IP 주소를 입력하고 인증 사용을 선택 취소합니다. .

F5 키를 누릅니다. . 애플리케이션이 기기에 배포되며 처음에는 몇 분이 소요될 수 있습니다.

아래 동영상은 애플리케이션 데모입니다.

참고: 이 응용 프로그램은 선형 360° 게이지를 사용하여 물의 양을 표시합니다. 이 센서에는 물의 양과 센서의 판독값 사이에 내가 알고 있는 선형 상관 관계나 다른 상관 관계가 없습니다. 더 많은 물이 존재할 때 더 높은 값에 비해 약간의 방울이 있을 때 더 작은 값을 생성합니다. ADC의 개념을 이해하는 데 도움이 되도록 선형 게이지를 더 많이 사용합니다. GPIO 핀에서 포착할 수 있는 높거나 낮은 신호를 생성하기 위해 광절연 AC 전압 센서를 배선한 방법과 유사하게 물 센서를 배선할 수 있습니다. 이 장치는 습식 또는 건식 신호를 제공하도록 배선될 수 있습니다. 하지만 이 물 센서를 ADC에 연결하는 이유는 물이 적은 것과 많은 것의 차이를 감지하고 이 프로젝트에서 설명하는 접근 방식이 이 목표를 달성하기를 원하기 때문입니다.

출처: MCP3008의 고감도 수분 센서


제조공정

  1. 잔디 스프링클러
  2. 롤링 핀
  3. 이미지 센서는 저전력, 높은 프레임 속도를 특징으로 합니다.
  4. Raspberry Pi 1-와이어 디지털 온도계 센서(DS18B20)
  5. MCP3008을 사용한 아날로그 센서 입력 raspberry pi:배선/설치/기본 프로그램
  6. MCP3008의 고감도 물 센서
  7. 로봇의 손가락 끝 감도를 높이는 소프트 센서
  8. ToughMet® 3TS 튜브 TS105(C72900)
  9. 관개용 고압 펌프
  10. 자동 워터 펌프 란 무엇입니까?