嵌入式

Arduino 433MHZ

2022-07-11  本文已影响0人  老中医167788

原文地址

发射端接线图

VCC GND DATA In
5V GND 12

发射端代码

// Include RadioHead Amplitude Shift Keying Library
#include <RH_ASK.h>
// Include dependant SPI Library 
#include <SPI.h> 

// Create Amplitude Shift Keying Object
RH_ASK rf_driver;

void setup()
{
    pinMode(A2, INPUT);
    pinMode(LED_BUILTIN,OUTPUT);
    // Initialize ASK Object
    rf_driver.init();
}

void loop()
{
    const char* msg = "Welcome to the Workshop!";
    if(digitalRead(A2) == LOW)
    {
        delay(20);
        if (digitalRead(A2) == LOW) {
            digitalWrite(LED_BUILTIN,HIGH);
            rf_driver.send((uint8_t*)msg, strlen(msg));
            rf_driver.waitPacketSent();
            while (digitalRead(A2) == LOW);
        }
    }
    delay(100);
    digitalWrite(LED_BUILTIN, LOW);
}

接收端端接线图

VCC GND DATA Out
5V GND 11

接收端代码

// Include RadioHead Amplitude Shift Keying Library
#include <RH_ASK.h>
// Include dependant SPI Library 
#include <SPI.h> 

// Create Amplitude Shift Keying Object
RH_ASK rf_driver;

void setup()
{
    // Initialize ASK Object
    rf_driver.init();
    // Setup Serial Monitor
    Serial.begin(9600);
    pinMode(PD2, OUTPUT);
}

void loop()
{
    // Set buffer to size of expected message
    uint8_t buf[24];
    uint8_t buflen = sizeof(buf);
    // Check if received packet is correct size
    if(rf_driver.recv(buf, &buflen))
    {
        digitalWrite(PD2, HIGH);
        // Message received with valid checksum
        Serial.print("Message Received: ");
        Serial.println((char*)buf);
    }
    delay(500);
    digitalWrite(PD2, LOW);
}
上一篇下一篇

猜你喜欢

热点阅读