Untitled

mail@pastecode.io avatar
unknown
plain_text
16 days ago
1.4 kB
3
Indexable
Never
#include <Arduino.h>
#include <ESP32SPISlave.h>

#define CS_PIN 5
const int buzz = 17;

ESP32SPISlave spiSlave;

static constexpr size_t BUFFER_SIZE = 8;
uint8_t tx_buf[BUFFER_SIZE] = {0}; // Data to send
uint8_t rx_buf[BUFFER_SIZE] = {0}; // Buffer for received data

void setup() {
    Serial.begin(115200);
    pinMode(buzz, OUTPUT);
    pinMode(CS_PIN, INPUT_PULLUP); // Use pull-up for CS_PIN

    // Initialize the SPI slave
    if (!spiSlave.begin(VSPI, 18, 19, 23, CS_PIN)) { // SCK=18, MISO=19, MOSI=23, CS=CS_PIN
        Serial.println("Failed to initialize SPI slave!");
        while (true);
    }
}

void loop() {
    if (digitalRead(CS_PIN) == LOW) { // Check if CS is active
        size_t received_bytes = spiSlave.transfer(tx_buf, rx_buf, BUFFER_SIZE);
        
        if (received_bytes > 0) {
            // Print received data
            Serial.print("Received data: ");
            for (size_t i = 0; i < received_bytes; i++) {
                Serial.print(rx_buf[i]);
                Serial.print(" ");
            }
            Serial.println();
            
            // Play sound if received data is 1
            if (rx_buf[0] == 1) {
                Serial.println("Playing sound...");
                tone(buzz, 2100, 100); // Play tone for 100 ms
            }
        }
    }
    delay(10); // Reduced delay for faster polling
}
Leave a Comment