433MHz 무선 회로 다이어그램 및 설명. 핸드셋 전화기(433MHz)를 기반으로 한 자체 제작 무선 제어 키트

433/315MHz에 대한 자세한 내용은 이 짧은 리뷰를 통해 확인하실 수 있습니다. 이러한 무선 모듈은 일반적으로 송신기 하나와 수신기 하나가 포함된 쌍으로 판매됩니다. eBay에서 한 쌍을 4달러에 구입할 수 있으며, 한 번에 10개를 구입하는 경우 한 쌍당 2달러에 구입할 수 있습니다.

인터넷에 있는 대부분의 정보는 단편적이고 명확하지 않습니다. 따라서 우리는 이러한 모듈을 테스트하고 이들 모듈과 안정적인 USART -> USART 통신을 달성하는 방법을 보여 주기로 결정했습니다.

라디오 모듈 핀아웃

일반적으로 이러한 모든 무선 모듈에는 3개의 기본 접점(및 안테나)이 연결되어 있습니다.

송신기

  • 전압 vcc(전원 +) 3V~12V(5V에서 작동)
  • GND(접지 -)
  • 디지털 데이터 수신.

수화기

  • 전압 vcc(전원 +) 5V(일부는 3.3V에서 작동 가능)
  • GND(접지 -)
  • 수신된 디지털 데이터를 출력합니다.

데이터 전송

송신기가 입력에서 데이터를 수신하지 않으면 송신기 발진기가 꺼지고 대기 모드에서 약 몇 마이크로암페어를 소비합니다. 테스트하는 동안 꺼진 상태의 5V 공급 장치에서 0.2μA가 나왔습니다. 송신기가 일부 데이터 입력을 수신하면 433MHz 또는 315MHz 반송파를 방출하고 5V 전원을 사용하면 약 12mA를 소비합니다.

송신기는 더 높은 전압(예: 12V)에서 전력을 공급받을 수도 있으며, 이는 송신기 전력과 그에 따른 범위를 증가시킵니다. 테스트 결과 집 내부의 여러 벽을 통해 최대 20m까지 5V 전원 공급이 가능한 것으로 나타났습니다.

송신기가 작동하지 않더라도 전원을 켜면 수신기에 약간의 정적 신호와 잡음이 수신됩니다. 작동 반송파 주파수에서 신호가 수신되면 수신기는 자동으로 이득을 줄여 약한 신호를 제거하고 이상적으로는 변조된 디지털 데이터를 분리합니다.

수신기가 이득을 조정하는 데 어느 정도 시간을 소비하므로 데이터가 "폭발"되지 않는다는 점을 아는 것이 중요합니다! 전송은 메인 데이터 이전에 "인트로"로 시작되어야 하며, 그러면 수신자는 중요한 데이터를 수신하기 전에 자동으로 게인을 조정할 시간을 갖게 됩니다.

RF 모듈 테스트

+5V DC 소스와 173mm 수직 휩 안테나를 사용하여 두 모듈을 모두 테스트하는 경우. (433.92MHz 주파수의 경우 "1/4파"입니다) 벽을 통해 실제 20미터를 얻었으며 모듈 유형은 이러한 테스트에 큰 영향을 미치지 않습니다. 따라서 이러한 결과는 대부분의 블록에서 일반적이라고 가정할 수 있습니다. 정확한 주파수와 50/50 듀티 사이클을 갖춘 디지털 신호 소스가 송신기 데이터를 변조하는 데 사용되었습니다.

통신 조건이 이상적(높은 신호 강도)이 아닌 한 일반적으로 이러한 모든 모듈은 최대 1200보드 또는 최대 2400보드 직렬 전송까지만 안정적으로 작동합니다.

위에 표시된 것은 컴퓨터에서 수신될 마이크로컨트롤러에 정보를 직렬로 전송하기 위한 간단한 버전의 블록입니다. 유일한 변경 사항은 두 모듈의 전원 핀(Vcc 및 GND)에 25V 10uF 탄탈륨 커패시터를 추가한 것입니다.

결론

많은 사람들이 Arduino 컨트롤러 등과 함께 이러한 무선 통신을 사용합니다. 이는 마이크로 컨트롤러에서 다른 마이크로 컨트롤러로 또는 마이크로 컨트롤러에서 PC로 무선 통신을 수행하는 가장 쉬운 방법이기 때문입니다.

433MHz의 RF 무선 모듈 기사에 대해 토론하십시오.

이 수신기는 "주말 디자인"으로 설계되었으며 다음 용도로 사용됩니다.
433MHz 주파수 모니터링, 방송 상황 평가, AM/WFM/PWM 송신기의 신호 청취, 방향 찾기 및 라디오 비콘 및 라디오 마이크 검색을 위한 지향성 안테나 작업 시. 수신기는 배리어 모드에서 작동하는 트랜지스터를 갖춘 슈퍼 재생기 회로에 따라 만들어졌으며 무선 제어 장비에서 반복적으로 테스트되었습니다. ULF는 널리 사용되는 LM358 연산 증폭기 칩을 사용하며, 증폭기 중 하나는 게인 제어 기능이 있는 예비 증폭기로 작동하고 두 번째는 코일 저항이 20-50Ω인 저임피던스 헤드폰과 매칭하기 위한 리피터로 작동합니다. 유사한 무선 제어 수신기와 달리 감지기 후 저역 통과 필터 차단 주파수를 3~4kHz로 줄여 신호가 없을 때 잡음을 줄이고 안테나 입력을 분류하는 커패시터의 정전 용량을 높여 영향을 줄입니다. 검출기 회로 튜닝에 대한 공진 지향성 "파동 채널" 안테나. 수신기의 감도는 대략 수 마이크로볼트이고 대역폭은 약 1MHz입니다. >2m 거리에서 80mW 전력을 갖는 423MHz 송신기의 신호는 소음 수준(수신기가 433MHz로 조정된 경우)과 비슷한 수준으로 수신됩니다. 수신 주파수는 L2 코일의 설정에 따라 결정되며 넓은 범위 내에서 변경될 수 있습니다.

수신기의 개략도
약 2V의 순방향 전압을 갖는 노란색 LED는 슈퍼 재생기 모드를 안정화하는 역할을 하며 전원 켜짐 표시기 역할도 합니다. 공급 전압 범위는 3.7-0V이며, 신호가 없을 때 9V에서 전원을 공급받을 때 소비 전류는 4mA, 신호를 수신하고 전체 볼륨은 12mA입니다. 수신기 조정은 수퍼 재생기 회로를 필요한 주파수로 조정(코일 L2의 권선을 압축 및 늘림)하는 것입니다.


조립된 수신기 보드의 사진입니다.



3요소 "파동 채널" 안테나가 있는 수신기

처음에는 양면 포일 유리 섬유에 스트립 통신선을 통해 지향성 안테나를 연결할 계획 이었지만 안테나 요소를 터치 할 때 수신기의 불안정한 작동으로 인해 능동 진동기를 수신기 입력에 연결해야했습니다. 2선 라인(플랫 케이블 와이어에서) 길이 160mm.

BNC 커넥터의 설치 치수가 수신기 보드의 크기를 초과하므로 나사를 사용하여 연결합니다.


일반 17cm 휩 안테나를 장착한 수신기 사진입니다.

인쇄회로기판 도면.
설치는 두께 1mm의 양면 호일 유리 섬유 라미네이트에 수행됩니다. 흰색으로 표시된 접점은 짧은 와이어 조각을 사용하여 보드 아래쪽(접지)의 포일에 연결됩니다. 주목! 거울에서 LUT용 보드를 인쇄하세요!

재미있는 사실! 433MHz에는 호환 가능한 다른 송신기가 있는데, 특히 1개와 2개가 있습니다. 또한 대체 수신기도 있습니다. 하지만 출력이 완벽하게 호환되지는 않습니다. 언제나전송이 실제로 발생하는지 여부에 관계없이 일종의 신호를 생성합니다.

실험을 위해 내부 DIP 스위치가 있는 eBay에서 구입한 차고 리모콘도 사용했습니다.

운이 좋다면 eBay와 AliExpress에서 "딥 스위치가 있는 차고 문 개폐기 433mhz"와 같은 검색을 통해 이러한 리모컨을 여전히 찾을 수 있습니다. 그러나 최근에는 다른 리모콘의 신호를 수신하고 복사할 수 있는 "프로그래밍 가능" 리모콘으로 대체되었습니다. 판매자가 제공한 사진에 명확하게 표시되어 있고 제품 ​​설명에 표시되어 있어도 판매자가 DIP 스위치 없이 리모컨을 보내는 지점까지 도달합니다. 내가 사용한 리모콘과 리모콘의 외부 유사성에 의존해서는 안됩니다. 그러나 이 메모의 단계를 반복하기로 결정한 경우 존재 여부는 딥 스위치큰 역할은 안 할 거예요.

모듈은 프로젝트에서 사용하기 매우 쉽습니다.

수신기와 송신기 모두 VCC, GND 및 DATA 핀을 가지고 있습니다. 수신기에서는 DATA 핀이 두 번 반복됩니다. 모듈은 5V로 전원이 공급됩니다. 왼쪽 사진은 LED가 수신기의 DATA 핀에 연결된 회로를 보여줍니다. 오른쪽에는 DATA 핀이 버튼과 풀업 저항에 연결된 송신기가 있는 회로가 있습니다. 또한 두 회로 모두 LM7805 안정 장치를 사용합니다. 이보다 더 간단할 수는 없습니다.

Gqrx를 사용하여 신호를 기록하고 Inspectrum에서 결과 파일을 열어 보겠습니다.

여기서는 오실로스코프가 보여준 것과 동일한 짧고 긴 신호를 볼 수 있습니다. 그런데 이러한 신호 인코딩 방법을 On-Off Keying이라고 합니다. 이것은 아마도 여러분이 상상할 수 있는 전파를 사용하여 정보를 전송하는 가장 간단한 방법일 것입니다.

이를 실행하면 Scope Plot에서 다음을 볼 수 있습니다.

오실로스코프가 보여준 신호와 거의 동일합니다!

보시다시피 433MHz의 저렴한 무선 모듈은 우리에게 엄청난 창의력을 발휘할 수 있는 여지를 제공합니다. 이들은 서로 사용할 수 있을 뿐만 아니라 동일한 주파수에서 작동하는 다른 많은 장치와도 사용할 수 있습니다. 예를 들어 555 타이머를 사용하면 마이크로 컨트롤러 없이 순수 아날로그 장치에서 성공적으로 사용할 수 있습니다. NRF24L01과 같이 패킷 길이에 대한 제한 없이 체크섬, 압축, 암호화 등을 사용하여 자체 프로토콜을 구현할 수 있습니다. 마지막으로 모듈은 브로드캐스트 메시지를 보내는 데 적합합니다.

이러한 무선 모듈의 어떤 놀라운 애플리케이션이 떠오르시나요?

덧셈:당신은 또한 게시물에 관심이있을 수 있습니다

작동 주파수 - 433MHz인 핸드셋 전화기를 기반으로 구축된 무선 제어 시스템의 개략도. 휴대폰은 90년대 후반에 큰 인기를 얻었으며 여전히 어디에서나 판매되고 있습니다. 그러나 셀룰러 통신은 더 편리하며 이제 모든 곳에서 유선 전화를 대체하고 있습니다.

한번 구입한 전화기는 불필요해집니다. 톤/펄스 스위치가 있는 불필요하지만 서비스 가능한 핸드셋이 생성된다면 이를 기반으로 원격 제어 시스템을 만들 수 있습니다.

핸드셋이 DTMF 코드 생성기가 되려면 "톤" 위치로 전환하고 톤 다이얼링 회로가 정상적으로 작동할 수 있도록 충분한 전원을 공급해야 합니다. 그런 다음 신호를 송신기 입력으로 보냅니다.

개략도

그림 1은 이러한 무선 제어 시스템의 송신기 다이어그램을 보여줍니다. 핸드셋 전화기에 대한 전압은 저항 R1을 통해 9V DC 소스에서 공급되며, 이 경우 전화기의 톤 다이얼링 회로의 부하입니다. TA의 버튼을 누르면 저항 R1에 DTMF 신호의 가변 구성 요소가 있습니다.

저항 R1에서 저주파 신호는 송신기 변조기로 이동합니다. 송신기는 두 단계로 구성됩니다. 트랜지스터 VT1은 마스터 발진기로 사용됩니다. 주파수는 433.92MHz의 SAW 공진기에 의해 안정화됩니다. 송신기는 이 주파수에서 작동합니다.

쌀. 1. 전화 다이얼러 핸드셋용 433MHz 송신기의 개략도.

전력 증폭기는 트랜지스터 VT2를 사용하여 만들어집니다. 이 단계에서는 AF 신호와 트랜지스터 베이스에 공급되는 바이어스 전압을 혼합하여 진폭 변조가 수행됩니다. 저항 R1의 DTMF 코드 저주파 신호는 저항 R7, R3 및 R5로 구성된 VT2 기반 전압 생성 회로로 들어갑니다.

커패시터 C3은 저항기와 함께 RF와 LF를 분리하는 필터를 형성합니다. 전력 증폭기는 U자형 필터 C7-L3-C8을 통해 안테나에 로드됩니다.

송신기의 무선 주파수가 전화 회로에 침투하는 것을 방지하기 위해 RF 신호의 경로를 차단하는 인덕터 L4를 통해 전원이 공급됩니다. 수신 경로(그림 2)는 초재생 방식에 따라 만들어집니다. 초재생 검출기는 트랜지스터 VT1에 만들어집니다.

RF 주파수 제어가 없으며 안테나의 신호는 L1 통신 코일을 통해 전달됩니다. 수신 및 감지된 신호는 연산 증폭기 A1의 직접 입력에서 중간점을 생성하는 전압 분배기 R6-R9의 일부인 R9에 할당됩니다.

주요 LF 증폭은 연산 증폭기 A1에서 발생합니다. 이득은 저항 R7에 따라 달라집니다(조정 시 이득을 최적으로 조정하는 데 사용할 수 있음). 그런 다음 감지된 신호의 레벨을 조절하는 저항 R10을 통해 DTMF 코드가 KR1008VZh18 유형의 A2 마이크로 회로 입력으로 전송됩니다.

A2 칩의 DTMF 코드 디코더 회로는 출력 레지스터의 3비트만 사용된다는 점을 제외하면 표준 회로와 거의 다르지 않습니다. 디코딩 결과 얻은 3비트 이진 코드는 K561KP2 멀티플렉서의 십진 디코더에 공급됩니다. 그리고 나가는 길에. 출력은 버튼에 표시된 번호에 따라 지정됩니다.

쌀. 2. 주파수가 433MHz이고 K1008VZh18 기반 디코더를 갖춘 무선 제어 수신기의 회로도.

K1008VZh18 입력의 감도는 저항 R12(또는 R12/R13 비율)에 따라 달라집니다.

명령이 수신되면 해당 출력에 논리적 명령이 나타납니다.

명령이 없으면 출력은 고저항 상태가 됩니다. 단, 마지막으로 수신된 명령에 해당하는 출력은 논리적 0이 됩니다. 제어할 계획을 실행할 때 이 점을 고려해야 합니다. 필요한 경우 고정 저항을 사용하여 모든 출력을 0으로 풀업할 수 있습니다.

세부

안테나는 길이가 160mm인 와이어 스포크입니다. 송신기 코일 L1 및 L2(그림 1)는 동일하며 프레임이 없는 PEV-2 0.31의 5회전, 내부 직경 3mm, 감겨진 회전을 갖습니다. 코일 L3은 동일하지만 1mm 단위로 감겨 있습니다.

코일 L4는 100μH 이상의 기성 인덕터입니다.

설치 시 수신기 코일(그림 2) L1과 L2는 하나의 코일이 다른 코일의 연속인 것처럼 공통 축에서 서로 가깝게 위치합니다. L1 - 2.5회전, L2 - 10회전, PEV 0.67, 내부 권선 직경 3mm, 프레임 없음. 코일 L3 - PEV 0.12 와이어 30회, 저항이 1M 이상인 일정한 저항 MLT-0.5에 감겨 있습니다.

샤트로프 S.I.RK-2015-10.

문학: S. 페트루스. IR 원격 제어 위성 튜너용 라디오 확장기, R-6-200.

  • 연결이 쉽습니다. 문제의 모듈은 nRF24L01+와 달리 5V의 전압으로 전원이 공급됩니다.
  • 유효성. 무선 모듈은 많은 제조업체에서 다양한 디자인으로 생산되며 상호 교환이 가능합니다.
  • 결점:

    • 433.920MHz의 주파수에서는 다른 많은 장치(라디오 샹들리에, 라디오 소켓, 라디오 전자열쇠, 라디오 모델 등)가 작동하여 라디오 모듈 간의 데이터 전송을 "방해"할 수 있습니다.
    • 피드백이 부족합니다. 모듈은 수신기와 송신기로 구분됩니다. 따라서 nRF24L01+ 모듈과 달리 수신기는 승인 신호를 송신기에 보낼 수 없습니다.
    • 낮은 데이터 전송 속도(최대 5kbit/초)
    • MX-RM-5V 수신기는 전원 버스의 작은 리플에도 매우 중요합니다. Arduino가 전원 버스(서보, LED 표시기, PWM 등)에 작지만 일정한 잔물결을 발생시키는 장치를 제어하는 ​​경우 수신기는 이러한 잔물결을 신호로 간주하고 송신기의 전파에 응답하지 않습니다. 수신기에 대한 리플 효과는 다음 방법 중 하나로 줄일 수 있습니다.
      • USB 버스가 아닌 외부 소스를 사용하여 Arduino에 전원을 공급하십시오. 많은 외부 전원 공급 장치의 출력 전압이 제어되거나 평활화됩니다. 전압이 크게 "저하"될 수 있는 USB 버스와는 다릅니다.
      • 수신기 전원 버스에 평활 커패시터를 설치합니다.
      • 수신기에는 별도의 안정화 전원을 사용하십시오.
      • 전원 버스에 리플을 발생시키는 장치에는 별도의 전원을 사용하십시오.

    우리는 다음이 필요합니다:

    • 무선 모듈 FS1000A 및 MX-RM-5V x 1세트.
    • Trema LED(빨간색, 주황색, 녹색, 파란색 또는 흰색) x 1개
    • 무선 모듈을 연결하기 위한 암-암 와이어 세트 x 1 세트.

    프로젝트를 구현하려면 라이브러리를 설치해야 합니다.

    • 라이브러리 iarduino_RF433(무선 모듈 FS1000A 및 MX-RM-5V 작업용)
    • 라이브러리 iarduino_4LED, (Trema 4자리 LED 표시기 작업용)

    Wiki 페이지 - Arduino IDE에 라이브러리 설치에서 라이브러리를 설치하는 방법을 확인할 수 있습니다.

    안테나:

    모든 수신기의 첫 번째 증폭기와 송신기의 마지막 증폭기는 안테나입니다. 가장 간단한 안테나는 휩 안테나(특정 길이의 와이어 조각)입니다. 안테나(수신기와 송신기 모두)의 길이는 반송파 주파수 파장의 1/4배여야 합니다. 즉, 휩 안테나는 1/4파장(L/4), 반파장(L/2) 및 파장(1L)과 동일할 수 있습니다.

    전파의 길이는 빛의 속도(299"792"458m/s)를 주파수(이 경우 433"920"000Hz)로 나누어 계산합니다.

    L = 299"792"458 / 433"920"000 = 0.6909m = 691mm.

    따라서 433.920MHz의 무선 모듈용 안테나 길이는 다음과 같습니다. 691mm(1L), 345mm(L/2) 또는 173mm(L/4). 연결 다이어그램에 표시된 것처럼 안테나는 접촉 패드에 납땜되어 있습니다.

    동영상:

    연결 다이어그램:

    수화기:

    (설정 코드에서) 시작되면 스케치는 송신기와 동일한 매개변수를 나타내는 라디오 수신기의 작동을 구성하고 LED 표시기를 사용한 작업도 시작합니다. 그 후, 지속적으로 (루프 코드에서) 버퍼에 무선 수신기에서 수신한 데이터가 있는지 확인합니다. 데이터가 있으면 데이터 배열로 읽어온 후 요소 0의 값(Trema 슬라이더 판독값)이 LED 표시기에 표시되고 요소 1의 값(Trema 전위차계 판독값)이 변환되어 LED를 설정하는 데 사용됩니다. 명도.

    프로그램 코드:

    송신기:
    #포함하다 // FS1000A 송신기와 작동하도록 라이브러리를 연결합니다. iarduino_RF433_Transmitter radio(12); // iarduino_RF433 라이브러리와 작동할 라디오 객체를 생성합니다. 이는 송신기가 연결된 핀 번호를 나타냅니다. int data; // 데이터 전송을 위한 배열 생성 void setup())( radio.begin(); // FS1000A 송신기의 작동을 시작합니다. (NUMBER 비트/초의 속도를 매개변수로 지정할 수 있지만, setDataRate 함수 호출) radio.setDataRate (i433_1KBPS); // 데이터 전송 속도 지정 (i433_5kbps, i433_4kbps, i433_3kbps, i433_2kbps, i433_1kbps, i433_500bps, i433_100bps), i433_1kbps - 1kbit/초 Radio.openwritingpipe ( 5); // 데이터 전송을 위해 5개의 파이프를 엽니다(송신기는 파이프 중 하나만 데이터를 전송할 수 있습니다: 0...7) ) // 다른 파이프 번호를 지정하여 openWritingPipe 함수를 다시 호출하면 송신기는 새로 파이프를 통해 데이터 전송을 시작합니다. 지정된 파이프 void loop())( data = AnalogRead(A1); // A1 핀에서 Trema 슬라이더 판독값을 읽고 이를 데이터 배열의 0 요소에 씁니다. data = AnalogRead(A2); // Trema 판독값을 읽습니다. 핀 A2의 전위차계를 데이터 배열의 1 요소에 씁니다. radio.write(&data, sizeof(data)); // 보내려는 배열의 바이트 수를 나타내는 데이터 배열에서 데이터를 보냅니다. Delay(10); // 패킷 사이에 일시 중지)
    수화기:
    #포함하다 // MX-RM-5V 수신기와 작동하도록 라이브러리를 연결합니다. #include // 4자리 LED 표시기와 함께 작동하도록 라이브러리를 연결합니다. iarduino_RF433_Receiver radio(2); // iarduino_RF433 라이브러리와 작동할 라디오 객체를 생성하여 수신기가 연결된 핀 번호를 나타냅니다(외부 인터럽트를 사용하는 핀에만 연결 가능) iarduino_4LED dispLED(6,7); // 디스플레이 핀(CLK, DIO)을 나타내는 iarduino_4LED 라이브러리의 기능과 작동할 dispLED 객체를 생성합니다. int data; // 데이터를 수신할 배열을 생성합니다. const uint8_t pinLED=11; // LED가 연결된 PWM 출력을 나타내는 상수를 생성합니다. void setup())( dispLED.begin(); // LED 표시기 작동 시작 radio.begin(); // MX 작동 시작 -RM-5V 수신기(비트/초의 속도 NUMBER를 지정하는 매개변수로 사용할 수 있으며, 그러면 setDataRate 함수를 호출할 필요가 없습니다) radio.setDataRate (i433_1KBPS); // 데이터 수신 속도 지정(i433_5KBPS) , i433_4KBPS, i433_3KBPS, i433_2KBPS, i433_1KBPS, i433_500BPS, i433_100BPS), i433_1KBPS - 1kbit/sec radio.openReadingPipe(5); // 데이터를 수신하려면 파이프 5를 엽니다(매개변수 없이 함수를 호출하면 모든 파이프가 다음에서 열립니다). 한 번, 0에서 7까지) // radio.openReadingPipe(2); // 데이터를 수신하기 위해 파이프 2를 엽니다(이 방법으로 한 번에 여러 파이프를 들을 수 있습니다) // radio.closeReadingPipe(2); // 파이프 2를 닫습니다. (매개변수 없이 함수를 호출하면 모든 파이프가 0부터 7까지 한 번에 닫힙니다.) radio.startListening(); // 수신기를 켜고 열린 파이프 듣기 시작 // radio.stopListening (); // 필요한 경우 수신기를 끕니다. ) void loop())( if(radio.available())( // 버퍼에 수신된 데이터가 있는 경우 radio.read(&data, sizeof(data)); // 읽습니다. 데이터를 데이터 배열에 넣고 읽을 바이트 수를 지정합니다. dispLED.print(data); // 표시기에 Trema 슬라이더 판독값을 표시합니다. AnalogWrite(pinLED, map(data,0,1023,0,255)); // 밝기 설정 Trema 전위차계의 회전 각도에 따라 LED의 회전) // uint8_t 유형의 변수에 대한 참조 형식의 매개변수로 사용 가능한 함수를 호출하면 파이프의 번호를 얻습니다. 데이터가 왔습니다(26.5과 참조)
    로드 중...로드 중...