[Résolu] VirtualWire Le setup lent !

Bonjour à tous!

Pour mon projet d'alarme avec Arduino, j'ai besoin d'utiliser des modules RF comme ceux ci:

Pour les utiliser, j'utilise la librairie VirtualWire.

Comme montré dans les tuto j'initialise le port:

void setup() {
  
  // RF 433Mhz
  vw_setup(9600);
  vw_set_rx_pin(22);
  vw_rx_start();

Mais ce code rend mon Arduino très lent ! C'est facilement visible car j'ai un écran LCD et l'actualisation de l'affichage met au moins 1 seconde ! (Normalement c'est à peine visible, donc > 0.1s)

Après vérification, ce n'est que la fonction vw_setup(9600); qui me fait ça..

Une idée ?

Merci d'avance !

Damien L.

Bonjour,

Pour pouvoir t'aider, il faudrait avoir le code.

Bonsoir,
Merci d’avoir répondu, mais au vu de la complexité de mon code, je ne peux pas tout donner ici.
Le seul problème est le vw_setup(9600); je voudrais savoir si ça vient d’une incompatibilité, un problème du compilateur, etc…

#include <Arduino.h>

#include <Alarm.h>

#include <VirtualWire.h>
#include <IRremote.h>
#include <IRremoteInt.h>
#include <NokiaLCD.h>

#include <Time.h>
#include <TimeLib.h>
#include <GlobalTime.h>
void setup() {
  
  // RF 433Mhz
  //vw_setup(9600);
  vw_set_rx_pin(22);
  vw_rx_start();

  // Infrarouge
  irrecv.enableIRIn();
  Serial.begin(115200);
  delay(100);
  
  Serial.setTimeout(100);

  myAlarm.Calibrate();

  BT.begin(115200);

  lastBrightness = analogRead(A1);

  menu.SetOption(1, "Test relais");
  menu.SetOption(2, "Param Date");
  menu.SetOption(3, "Param Time");
  menu.SetOption(4, "DT Serial");
  
  menu.SetSubMenu(1, &myAlarm, &Alarm::TestRelay);
  menu.SetSubMenu(2, &myAlarm, &Alarm::ShowDateMenu);
  menu.SetSubMenu(3, &myAlarm, &Alarm::ShowTimeMenu);
}

Je précise que je n’ai aucune erreur et que les “menu” et “myAlarm” sont définis ailleurs.

Je n’utilise pas d’autres fonctions utilisant VirtualWire ormis les 3 du void setup() { }

Je doute que le problème soit dans le vw_setup(9600); mais plutôt dans la façon dont tu reçois les caractères.

On ne peut pas vous aider vraiment sans savoir comment vous gérez la boucle de réception d’information

Sinon de nombreux modules comme ceux que vous nous montrez fonctionnent mal à 9000 bps - essayez juste pour voir avec vw_setup(2000); - si ça se trouve vous perdez de nombreux messages ce qui vous donne une impression de lenteur

Quelle est la taille du message émis?

Justement je n'ai pas mis de réception (ça en est peut-être la cause?!), juste le setup.

Je test ça J-M-L !

EDIT: Merci J-M-L, tu as encore résolu mon problème !

En effet le récepteur RF ralentissait mon Arduino quand je le programmais pour du 9600 bits/s
Réglé sur 2400b/s je n'ai aucun soucis. Merci encore !

avec plaisir!