Categorieën

Communicatie / 433MHz ASK zender+ontvanger

ASK 882 SET
433MHz ASK zender+ontvanger

Set van zender en ontvanger voor iets grotere afstanden.

Status

Op voorraad

€ 5,95
Prijs per set

 

Aantal: 
+ in winkelwagentje
Op verlanglijst
 

ASK Zender STX882 + Ontvanger SRX882

  • Wordt geleverd met 2 antennes.
  • Deze set heeft een bereik van ongeveer 15 tot 20 meter.
  • Werkt op 5V DC
  • 433MHz
 
Voorbeeld sketch voor deze set met één Arduino

/*
  ask_rxtx.ino - V2
  AUTHOR: Edward Comer, USA
  Open Source Licenesed under Creative Commons Attribution 4.0 International (CC BY 4.0)
  See: https://creativecommons.org/licenses/by/4.0/
  ------------
  Gebruikt de RadioHead library voor berichtjes via een simple ASK zender en ontvanger receiver, b.v. FS1000A en MX-RM-5V, etc.
 
  Voor RadioHead informatie, zie:
  http://www.airspayce.com/mikem/arduino/RadioHead/classRH__ASK.html#details
  ------------
  Deze sketch regelt zowel de zender als de ontvanger op één Arduino
  de ontvanger wordt gestuurd door een inverted PTTPIN, welke de spanning van de ontvanger haalt tijdens het zenden om storing te voorkomen.
  De ontvanger werkt met 5v. De werkstroom is:≤5.5mA (5.0VDC) nominaal 4ma
  Arduino DC stroom per I/O Pin: 40.0 mA
 
   +-------+   +---------+
   |FS1000A|   |XD-RF-5V |
   |D 5 G  |   | 5 D  G  |
   ++-+-+--+   +-+-+--+--+
    | | |        | |  |
    | + +        | |  +
    |            | |
  +-+------------+-+--+
  | 1            1 1  |
  | 2            0 1  |
  |    ARDUINO        |
  +-------------------+
*/
 
 
#include
#include
#include     // Niet gebruikt, maar blijkbaar nodig om te compileren
#define SPEED 2000  // De gewenste bit rate in bits per seconde
#define RXPIN 11    // De pin om te ontvangen
#define TXPIN 12    // De pin om te zenden
#define PTTPIN 10   // de zogenaamde Push To Talk pin
#define PTTINVERTED true // true = LOW bij zenden, anders HIGH
 
RH_ASK driver(SPEED, RXPIN, TXPIN, PTTPIN, PTTINVERTED);
 
char kbdbuf[RH_ASK_MAX_MESSAGE_LEN];
char rxbuf[RH_ASK_MAX_MESSAGE_LEN];
uint8_t rxbuflen = sizeof(rxbuf);
 
 
const int ledPin = 13; // onboard LED
 
void setup()
{
  digitalWrite(ledPin, HIGH);
  Serial.begin(19200);
  while (!Serial); // Wacht op serieële connectie
  if (!driver.init())
  {
    Serial.println("Radiohead driver.init failed - system halting");
    while (true) {}  // Doe niets tot volgende reset
  }
  digitalWrite(ledPin, LOW);
  Serial.println("");
  Serial.print("Maximum berichtlengte vereist voor deze driver is ");
  Serial.print(RH_ASK_MAX_MESSAGE_LEN);
  Serial.println("");
  Serial.print("Maximum berichtlengte beschikbaar voor deze driver is ");
  Serial.print(driver.maxMessageLength());
  Serial.println("");
  Serial.println("Setup afgerond.");
  Serial.println("");
  Serial.println("Geef bericht in: ");
}
 
/*
   De power-down wordt geregeld met pin 10. De ontvanger gebruikt 5V @ 4ma en de Arduino kan 40ma leveren.
 
   Opm: Het bericht wordt niet direct weergegeven tijdens typen
*/
void loop()
{
  if (readline(Serial.read(), kbdbuf, RH_ASK_MAX_MESSAGE_LEN) > 0)
  {
    Serial.print("U typte: [");
    Serial.print(kbdbuf);
    Serial.println("]");
    // Verstuur bericht via radio
    driver.send(kbdbuf, strlen(kbdbuf));
    driver.waitPacketSent();
    Serial.println("Zenden afgerond");
    delay(500);  // vertraging voor RX turnon
    memset(kbdbuf,0,sizeof(kbdbuf));
  }
 
  // Controleer op data ontvangen via radio
  if (driver.recv(rxbuf, &rxbuflen)) // Non-blocking
  {
    // Bericht met goede checksum ontvangen, dumpen.
    //driver.printBuffer("Ontvangen:", buf, QtyRead);
    Serial.write(0x07); // Belletje in de Putty console
    Serial.print("ontvangen: ");
    Serial.println(rxbuf);
    Serial.println("-------------");
    memset(rxbuf,0,sizeof(rxbuf));
    rxbuflen = sizeof(rxbuf);
    Serial.println("Geef nieuw bericht in: ");
  }
}
 
/**
   Non-blocking tekenreeks gelezen uit terminal
   naam: readline(int readchar, char* buffer, int len)
   @param readchar is het gelezen letterteken
   @param buffer is opslag voor opgebouwde tekenreeks
   @param len is maximum toegelaten lengte van de input reeks
   @return geeft lengte van de gelezen reeks, anders een negatieve waarde
    
   Geïnspireerd door Majenko's Hardware Hacking Blog
   http://tinyurl.com/hmb8vwa
*/
int readline(int readchar, char* buffer, int len)
{
  static int pos = 0;
  int ret_pos;
 
  if (readchar > 0) {
    switch (readchar) {
      case '\r': // Sluit af met CR of LF
      case '\n':
        ret_pos = pos;
        pos = 0; // Reset positie index voor volgende ingave
        return ret_pos;
      default:
        if (pos < len - 1) {
          buffer[pos++] = readchar;
          buffer[pos] = 0;
        } else {    // else buffer is vol
          buffer[pos] = 0;
          ret_pos = pos;
          pos = 0; // Reset positie index voor volgende ingave
          return ret_pos;
        }
    }
  }
  // Geen regeleinde gevonden, return -1.
  return -1;
}

 

Deze website gebruikt cookies om het bezoek te meten, we slaan geen persoonlijke gegevens op.
© Martoparts.nl