Re: Arduino Nano et arpRF ?
Posté : dim. 4 févr. 2024 21:55
Ca y est j'ai mon code fonctionnel. je me suis pas mal aidé de chatGPT, mais ça ne remplace pas les précieux conseil de Jacques
Je vous le partage si jamais ça peut intéresser ou inspirer quelqu'un :
Je suis curieux d'avoir un retour/avis dessus.
Encore merci pour la rapidité de réponses

Je vous le partage si jamais ça peut intéresser ou inspirer quelqu'un :
Code : Tout sélectionner
#include <ArpRFLib.h>
byte NODEID = 1;
#define NETWORKID 212 // Adresse du réseau commune à toutes les machines
uint16_t band = RF12_868MHZ; // Fréquence de l'émetteur RF12
float frequency_setting = 868.00; // Entre 863,00 et 870,00 MHz
const int randomButtonPin = Arp0; // Ajustez le numéro de broche selon votre configuration
const int flashButton = Arp1;
const int ledPin = Arp5;
int Val = 0;
bool var = 0;
unsigned long previousMillis = 0;
long intervalMin = 400;
long intervalMax = 1000;
void generateRandomValues();
void setup() {
rf12_initialize(NODEID, band, NETWORKID, rf12_calcul_freq(frequency_setting));
pinMode(randomButtonPin, INPUT);
pinMode(flashButton, INPUT);
pinMode(ledPin, OUTPUT);
randomSeed(analogRead(Arp2)); // Initialisation de la graine pour la génération pseudo-aléatoire
}
void loop() {
int randomButtonState = analogRead(randomButtonPin);
// Si le bouton flash est enfoncé, la valeur est 1023, sinon 0 ou aléatoire
if (analogRead(flashButton) > 300) {
Val = 1023;
} else {
if (randomButtonState > 300) {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= intervalMin) {
generateRandomValues();
previousMillis = currentMillis;
intervalMin = random(intervalMin, intervalMax + 1);
}
} else {
// Si le bouton aléatoire est en position OFF, la valeur est 0
Val = 0;
}
}
delay(10);
digitalWrite(ledPin, var);
var = !var; // Inverse l'état de var à chaque itération
rf12_sendNow(0, &Val, sizeof(Val));
delay(10);
}
void generateRandomValues() {
Val = random(300, 1023);
rf12_sendNow(0, &Val, sizeof(Val));
}
Encore merci pour la rapidité de réponses
