Moduli RX480E e TX-11RS-4

E' possibile come esempio elementare utilizzare il modulo TX-11RS-4 per trasmettere i segnali attraverso la variazione dei pin in base alla pressione di un pulsante, e il modulo RX480E sul lato ricevente per decodificare i segnali e azionare il LED.
Ecco una descrizione dettagliata di come impostare i collegamenti e scrivere il codice per far funzionare il tutto:
Collegamenti Hardware:
Trasmettitore (Arduino con modulo TX-11RS-4):
-
Arduino Pin 2: Collega il pulsante (con il pin in input pullup).
-
Arduino Pin 3, 4, 5, 6: Collega i pin del modulo TX-11RS-4. Questi pin controlleranno la trasmissione del codice.
-
VCC, GND: Alimenta il modulo TX-11RS-4 e Arduino.
-
Pulsante: Collega il pulsante tra il pin 2 e GND (in modalità input pullup, quindi quando il pulsante è premuto, il pin va a LOW).
Ricevitore (Arduino con modulo RX480E):
-
Arduino Pin 3, 4, 5, 6: Collega i pin D0, D1, D2, D3 del modulo RX480E per leggere il codice ricevuto.
-
VCC, GND: Alimenta il modulo RX480E e Arduino.
-
LED: Collega il LED a un pin (es. pin 7), utilizzando una resistenza limitatrice (ad esempio 220Ω per il LED).
Codice per il Trasmettitore (Arduino con TX-11RS-4):
#define BUTTON_PIN 2
#define TXD1 3
#define TXD2 4
#define TXD3 5
#define TXD4 6
void setup() {
pinMode(BUTTON_PIN, INPUT_PULLUP); // Imposta il pin del pulsante come input con pullup
pinMode(TXD1, OUTPUT);
pinMode(TXD2, OUTPUT);
pinMode(TXD3, OUTPUT);
pinMode(TXD4, OUTPUT);
}
void loop() {
if (digitalRead(BUTTON_PIN) == LOW) { // Se il pulsante è premuto
// Imposta tutti i pin del trasmettitore su LOW
digitalWrite(TXD1, LOW);
digitalWrite(TXD2, LOW);
digitalWrite(TXD3, LOW);
digitalWrite(TXD4, LOW);
} else { // Se il pulsante non è premuto
// Imposta tutti i pin del trasmettitore su HIGH
digitalWrite(TXD1, HIGH);
digitalWrite(TXD2, HIGH);
digitalWrite(TXD3, HIGH);
digitalWrite(TXD4, HIGH);
}
delay(50); // Piccola pausa per evitare rimbalzi del pulsante
} |
Codice per il Ricevitore (Arduino con RX480E e LED):
#define LED_PIN 7
#define D0_PIN 3
#define D1_PIN 4
#define D2_PIN 5
#define D3_PIN 6
void setup() {
pinMode(LED_PIN, OUTPUT);
pinMode(D0_PIN, INPUT);
pinMode(D1_PIN, INPUT);
pinMode(D2_PIN, INPUT);
pinMode(D3_PIN, INPUT);
Serial.begin(9600);
}
void loop() {
int value = 0;
// Leggi lo stato dei pin D0, D1, D2, D3 e costruisci il valore
value |= digitalRead(D0_PIN) << 0;
value |= digitalRead(D1_PIN) << 1;
value |= digitalRead(D2_PIN) << 2;
value |= digitalRead(D3_PIN) << 3;
// Accendi il LED se ricevi 0000 (pulsante premuto)
if (value == 0b0000) {
digitalWrite(LED_PIN, HIGH); // Accendi il LED
}
// Spegni il LED se ricevi 1111 (pulsante non premuto)
else if (value == 0b1111) {
digitalWrite(LED_PIN, LOW); // Spegni il LED
}
delay(50); // Ritardo per stabilizzare la lettura
} |
Spiegazione del Codice:
-
Trasmettitore:
-
Il pulsante è collegato al pin 2 con una resistenza di pullup. Quando il pulsante è premuto, il pin va a LOW.
-
Se il pulsante è premuto, Arduino imposta tutti i pin del modulo TX-11RS-4 (TXD1, TXD2, TXD3, TXD4) su LOW (corrispondente al codice binario 0000).
-
Se il pulsante non è premuto, Arduino imposta tutti i pin su HIGH (corrispondente al codice binario 1111).
-
Ricevitore:
-
Legge lo stato dei pin D0, D1, D2, e D3 del modulo RX480E.
-
Costruisce un valore binario utilizzando la lettura dei pin, dove ogni bit rappresenta lo stato di un pin.
-
Se il valore ricevuto è 0000 (pulsante premuto sul trasmettitore), accende il LED.
-
Se il valore ricevuto è 1111 (pulsante non premuto sul trasmettitore), spegne il LED.
Considerazioni:
-
Alimentazione: Assicurati che entrambi gli Arduino e i moduli RF siano alimentati correttamente (5V per Arduino e il modulo TX-11RS-4, 3.3V per il modulo RX480E se necessario).
-
Rimbalzo del pulsante: È una buona pratica aggiungere un piccolo ritardo (come il delay(50) nel codice) per evitare problemi legati ai rimbalzi del pulsante, che potrebbero causare letture multiple indesiderate.
Con questa configurazione, ogni volta che premi il pulsante sul trasmettitore, invierai il codice 0000 al ricevitore, che accenderà il LED. Quando rilasci il pulsante, invierai il codice 1111, che spegnerà il LED.
|