Zu Produktinformationen springen
1 von 3

Eletechsup Original Factory Official‌ Store

ASK AM HF-Superheterodyn-Fernempfänger-RX-Modul 433 MHz -112 dBm RX TX

ASK AM HF-Superheterodyn-Fernempfänger-RX-Modul 433 MHz -112 dBm RX TX

SKU:BX005*1+BX003*1

1008 auf Lager

Normaler Preis $17.98
Normaler Preis $17.98 Verkaufspreis $17.98
Sale Ausverkauft
Versand wird beim Checkout berechnet
Menge: 1 Empfangsmodul und 1 Sendemodul.
 
 

Artikelbeschreibung :

 

 

Technische Daten:
      Empfangsmodul Nr.: BX-RM06 -433 (passend zu unserem BX-TM01 -433 oder BX-TM05 -433 Modul)       
Empfängerempfindlichkeit (dBm):-112 ;
Betriebsfrequenz (MHz): 433.92MHz ;
Betriebsspannung (V):  DC 3-5.5V
Niedriger Stromverbrauch : 3.3V bei 433.92MHz, 6.0mA / 3.3V bei 315MHz, 4.8mA;
Betriebstemperatur: -40 ℃ ~ +85 ℃
 
Einschaltmodus, bei dem der Stromverbrauch auf mindestens 50nA reduziert werden kann;
     
 Pegelausgang der RSSI-Signalstärkesimulation;
 
     Gute Unterdrückung der lokalen Oszillatorstrahlung, Empfängermodul zur Zusammenarbeit (d. h. Single-Income) und es wird nicht miteinander interferieren, die Verwendung beeinträchtigt die Empfängerreichweite nicht

 

Sendemodul :  
 

Artikelbeschreibung :

 
Technische Daten :
 
             Sendemodul Nr.: BX-TM01 -433 
 
 Betriebsfrequenz (MHz): 433.92MHz ( 315MHZ ist verfügbar, wenn erforderlich , andere Frequenzen können bei einer Bestellung von 100 Stück angefertigt werden );        
            
Sendeleistung: mehr als 10mW;

Betriebsspannung (V):  DC 3-12V

niedriger statischer Stromverbrauch beim Senden : 10 mA ( Kein Senden Kein Stromverbrauch);

            SAW Frequenzstabilität :±75KHZ

Datenübertragungsrate  : 3 kb/s 

       Betriebstemperatur: -20 ℃ ~ +60 ℃
       
       Größe : 11x16x5.5MM
      
       Ausgabetyp: TTL
 
Laufende TX433 und RX433 Funkmodule mit AVR-Mikrocontrollern 

Manchmal möchte man in der Embedded-Entwicklung drahtlos arbeiten. Vielleicht möchte man verschiedene Messwerte von entfernt platzierten Sensoren aufzeichnen oder einfach eine Fernbedienung für ein Roboter- oder Autoalarmsystem bauen.

 

 
Die Sender- und Empfängermodule sind so abgestimmt, dass sie bei 433.92MHz korrekt funktionieren. Der Sender kann mit 3 bis 12V Stromversorgungbetrieben werden, während der Empfänger 5Vakzeptiert. 5V ist für AVR-Mikrocontroller üblich, daher gibt es keine Probleme bei der Schnittstelle. Die Module benötigen keine zusätzlichen Komponenten – einfach mit Strom versorgen und eine Datenleitung zum Senden von/Empfangen von Informationen anschließen, und schon ist es fertig. Für größere Entfernungen verwenden Sie 30 – 35cm Antennen. Die Module verwenden die Amplitudenmodulation (ASK) und nutzen eine Bandbreite von 1MHz.

Ich habe zwei separate Schaltungen für Tests auf Atmega8-Mikrocontrollern konstruiert.

Sender

 

 
Empfänger
 

 

 

 
 
 
 
 
 
 
 
 
 
 
 
 
Für Tests habe ich ein Prototyping-Board und ein Breadboard verwendet.

 

Wie Sie sehen können, habe ich eine LED zur Anzeige der Funkaktivität verwendet. Gut, genug von der Hardware – eigentlich gibt es dazu nichts mehr zu sagen – die Schaltungen sind einfach.

Kommen wir nun zum Softwareteil. Die Funkübertragung ist etwas komplizierter als die kabelgebundene Kommunikation, weil man nie weiß, welche Funksignale in der Luft vorhanden sind. Daher ist es wichtig, wie das übertragene Signal kodiert ist. Und hier gibt es viele Möglichkeiten: die Hardware-Kodierung wie USART verwenden oder eine eigene auf Basis einer der vielen Kodierungsverfahren wie NRZ, Manchester usw. schreiben. In meinem Beispiel habe ich das AVR-USART-Modul verwendet, um Datenpakete zu bilden. Hardware-Encoder lösen viele Probleme wie Synchronisation, Start und Stopp sowie verschiedene Signalprüfungen. Aber solange ich mich damit beschäftigte, konnte man sich nicht auf ein reines USART-Signal verlassen. Hier kann man tatsächlich improvisieren, indem man verschiedene Prüfungen usw. hinzufügt.

Ich habe beschlossen, 4-Byte-Datenpakete zu bilden, um ein Byte an Informationen zu senden. Diese beinhalten:

  • ein Dummy Synchronisationsbyte (10101010);

  • ein Adressbyte – falls es weitere Empfänger (oder Sender) gibt;

  • ein Datenbyte;

  • und Prüfsumme, die eigentlich die Summe aus Adresse und Daten ist (Adresse+Daten).

Warum habe ich ein Dummy-Byte am Anfang des Pakets verwendet? Ganz einfach: Mir ist aufgefallen, dass der Empfänger verschiedene Störgeräusche aus der Stromversorgung oder anderen Quellen aufnimmt, wenn der Sender keine Daten überträgt, weil der Empfänger seine Eingangsgewinnung je nach Eingangssignallpegel anpasst. Das erste Byte stimmt den Empfänger ein, damit er danach das Adressbyte, die Daten und die Prüfsumme zuverlässiger lesen kann. Bei anderen Übertragungsmodulen kann man dieses Dummy-Byte möglicherweise weglassen.

S-Senderprogramm für AVR Atmega8:

 

#include 
#include 
#ifndef F_CPU
//Taktfrequenz des Prozessors definieren, falls nicht definiert
#define F_CPU 8000000
#endif
//Gewünschte Baudrate festlegen
#define BAUDRATE 1200
//UBRR-Wert berechnen
#define UBRRVAL ((F_CPU/(BAUDRATE*16UL))-1)
//Empfängerparameter definieren
#define SYNC 0XAA// Synchronisationssignal
#define RADDR 0x44
#define LEDON 0x11//Befehl zum Einschalten der LED
#define LEDOFF 0x22//Befehl zum Ausschalten der LED
void USART_Init(void)
{
	//Baudrate festlegen
	UBRRL=(uint8_t)UBRRVAL; //unteres Byte
	UBRRH=(UBRRVAL>>8);	//oberes Byte
	//Datenrahmenformat festlegen: asynchron, keine Parität, 1 Stoppbit, 8 Bit
	UCSRC=(1< 
(0<  
//Sender und Empfänger aktivieren sowie Interrupt bei vollständigem Empfang
	UCSRB=(1< 
}
void USART_vSendByte(uint8_t u8Data)
{
 //Warten, wenn ein Byte übertragen wird
 while((UCSRA&(1< 
//Daten übertragen
 UDR = u8Data; 
}
void Send_Packet(uint8_t addr, uint8_t cmd)
{
	USART_vSendByte(SYNC);//Synchronisationsbyte senden	
	USART_vSendByte(addr);//Empfängeradresse senden
	USART_vSendByte(cmd);//Inkrementbefehl senden
	USART_vSendByte((addr+cmd));//Prüfsumme senden
}
void delayms(uint8_t t)//Verzögerung in ms
{
uint8_t i;
for(i=0;i 
_delay_ms(1);
}
int main(void)
{
USART_Init();
while(1)
	{//Endlossendung
	//Befehl zum Einschalten der LED senden
	Send_Packet(RADDR, LEDON);
	delayms(100);
	//Befehl zum Einschalten der LED senden
	Send_Packet(RADDR, LEDOFF);
	delayms(100);
	}
	return 0;
}

 

In meinem Fall habe ich eine Baudrate von 1200 verwendet. Sie kann je nach Entfernung und Umgebung erhöht oder verringert werden. Bei größeren Entfernungen funktionieren niedrigere Baudraten besser, da die Wahrscheinlichkeit für Übertragungsfehler größer ist. Die maximale Bitrate des Senders beträgt 8kbits/s, was etwa 2400 Baud entspricht. Aber was in der Theorie funktioniert, tut es in der Praxis meistens nicht. Daher ist 1200 Baud das Maximum, was ich zuverlässig zum Laufen bekommen habe.

<
Vollständige Details anzeigen