telecommande NRF24L01

Bonjour a tous les arduinautes :slight_smile:

J’aurai besoins de votre aide. Je n'ai aucune connaissance en programmation et j'ai fait des recherches sur internet qui n'ont pas forcement donné ce que je recherche :frowning:

J'aurai besoins du montage suivant (photo ci jointe) de manière a activer la sortie 1 si le BP est activé et a la désactivé une fois relâché. (Montage astable il me semble)

Idem pour la sortie 2

La seule condition c’est que l’on ne doit pas pouvoir activer la sortie 1 si la 2 est activé et inversement sinon va y avoir des problèmes : /

J’ai essayé de bricoler quelque chose avec ardu block mais rien n'en est ressorti.

Pour l'info je cherche à remplacer la télécommande que j'ai fabriqué pour mon portail qui pour le moment se base sur un PIC 16F628 et un récepteur 433mhz médiocre en terme de performance.

Voila si un bon programmeur peut m'aider :slight_smile:

Je le remercie d'avance :wink:

je me permet de remonter le sujet si defois quelqu'un peut maider :blush:

bonsoir

je suis pas un pro de la programmation non plus mais regarde sur se site ça peut peut être t'aider

pour la condition il te fraudrais un truc du genre
si bp1 =1 et bp2=0
on active la sortie 1

ça devrais donner quelque chose qui ressemble a ça
if (BP1) && (!BP2)
digitalWrite (1, HIGH);

sinon dans le logiciel arduino tu as un exemple pour le bouton il te faudra l'adapter a tes besoins

salut

merci de ta reponse, en fait pour les boutons ca aurait plus ou moins ete.... le soucis est bien la transmission sans fil ^^

DD91:
le soucis est bien la transmission sans fil ^^

tu peux préciser le soucis .

mon soucis c'est que la conception de circuit et le montage ne me pose pas de probleme mais la programmation c'est zero pour moi :confused:

en fait voila ce que j'ai trouvé sur le net http://www.bashmodulo.com/arduino/nrf24l01-radio-frequency-transmitter-receiver-on-arduino/

dans son exemple on voit bien qu'il envoie des infos d'une arduino a l'autre

il me faudrai la meme chose mais a la place du joystick deux boutons poussoir (BP1 et BP2)

et que sur l'autre arduino j'ai par exemple la sortie 4 qui s'active a la reception du BP1 et la sortie 5 a la reception du BP2 avec une temporisation de 4secondes(si possible l'une ou l'autre mais pas les deux en meme temps)

j'ai deja fabriqué ce montage avec un pic et du 433mhz mais ca reste peut fiable d'ou mon interet pour du 2.4 (mes sensors domotique marchent a merveille avec ca)

nRF24L01 and UNO R3 Tutorial - Project Guidance - Arduino Forum j'ai trouvé ca mais je ne sait pas si ca correspond a ce que je recherche et y a qu'un seul bouton?

http://buildbot.com.br/blog/comunicacao-wireless-com-o-modulo-nrf24l01/ ha voila au vue des schemas ca doit etre ca que je recherche :slight_smile:

par contre je ne sait pas si l'allumage des leds est bistable ou astable

et si il y a l'interdiction d'allumage si l'autre bp est activé

je ne trouve pas la libray rf24.h pour essayer

DD91:
http://buildbot.com.br/blog/comunicacao-wireless-com-o-modulo-nrf24l01/ ha voila au vue des schemas ca doit etre ca que je recherche :slight_smile:

apparemment oui ça y ressemble

DD91:
par contre je ne sait pas si l'allumage des leds est bistable ou astable

de ce que je peux comprendre tu appuis sur le bouton ça allume la led et elle s’éteint quand tu relâche

DD91:
et si il y a l'interdiction d'allumage si l'autre bp est activé

non ça n'est pas le cas ici

mais l'interdiction peut peut etre faite aussi sur le récepteur en interdisant la sortie 2 si la sortie 1 est active et inversement .

la voila ..

voila j'ai essayer avec deux arduinos et ca fonctionne

un petit soucis de temp en temp la sortie reste activé :confused:

est ce que tu saurai modifier ca pour que la sortie reste active 3 secondes et se desactive avec interdiction d'allumage si la sortie 1 est active etc?

merci pour ton aide

et si possible obligation d'avoir un signal neutre a savoir aucun bouton poussoir d'appuyer pour pouvoir refaire un cycle de 3 secondes

si possible et sans trop etre exigent bien sur :slight_smile:

merci a toi

bon voila j'ai continué mes tests et ce montage correspond à ce que je souhaiterais

il faut quand meme certaine petite modif

coté recepteur:

  • la sortie reste active 3 secondes
  • interdiction d'allumer si l'une est active
  • obligation d'attendre que le bouton est ete relaché pour recommencer un cycle

coté émeteur

-modifier le fonctionnement pull-up (je souhaite que l'envoie de donnée se fasse lorsque elle recoit du 5V et non lorsque elle est a la masse

voila ce que je souhaiterai faire

quelqu'un saurait modifier ca?

je le remercie d'avance

 //Programa : Teste NRF24L01 - Receptor - Led
//Autor : Adilson Thomsen

#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"

//Armazena os dados recebidos
int recebidos[1];

//Inicializa a placa nos pinos 9 (CE) e 10 (CS) do Arduino
RF24 radio(9,10); 

//Define o endereco para comunicacao entre os modulos
const uint64_t pipe = 0xE14BC8F482LL;

//Define os pinos dos leds
int LED1 = 5;
int LED2 = 3;

void setup()
{
  //Define os pinos dos leds como saida
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);

  //Inicializa a serial
  Serial.begin(57600);
  
  //Inicializa a comunicacao
  radio.begin();
  //Entra em modo de recepcao
  radio.openReadingPipe(1,pipe);
  radio.startListening();
}

void loop()
{
  //Verifica se ha sinal de radio
  if (radio.available())
  {
    bool done = false;    
    while (!done)
    {
      done = radio.read(recebidos, 1);
      Serial.print("Dados recebidos : ");    
      Serial.println(recebidos[0]);
      
      //Se recebeu o numero 1, acende o LED1
      if (recebidos[0] == 1)
      {
        delay(10);
        digitalWrite(LED1, HIGH);
        delay(400);
        digitalWrite(LED1, LOW);
        delay(400);
      }
      else 
      {
       digitalWrite(LED1, LOW);
      }
      
      //Se recebeu o numero 2, acende o LED2
      if (recebidos[0] == 2)
      {
        delay(10);
        digitalWrite(LED2, HIGH);
        delay(400);
        digitalWrite(LED2, LOW);
        delay(400);
      }
      else 
      {
        digitalWrite(LED2, LOW);
      }
      delay(100);
    }
  }
  else
  {
  Serial.println("Aguardando dados...");
  }
}

j'ai essayé ca avec le peu de connaissance que j'ai mais maintenant quand j'actionne une sortie ca clignote

par contre je n'ai jamais les deux sortie en meme temp

je ne voit pas comment modifier a ma guise :/[/code]

Edite ton message et mets ton code entre les balises "code".

voila c'est fait :wink:

j'ai essayer de modifier quelques petite chose cet aprem

sur le recepteur je remarque que la led tx qui est allumé en permanence lorsque qu'aucune info n'est envoyer

lorsque j'appuie sur un bouton le TX s'eteint et ma led clignote (plus ou moins vite suivant le delais que j'y met) et ce sur deux ou trois cycle

a un moment la led TX se rallume et le clignotement s'arrete

si je debranche l'emeteur apres le debut du cycle j'ai le meme constat sur le recepteur

DD91:

      if (recebidos[0] == 1)

{
       delay(10);
       digitalWrite(LED1, HIGH);
       delay(400);                    <=======met 3000  pour un delay de 3sec
       digitalWrite(LED1, LOW);  //  ca clignote a cause de ça,  tant que tu appuis ça dit, allume led 1 attend        
                                               400ms et eteind la led attend 400ms, comme tu reste appuyé il recoit le        
                                               signal a 1 et  ca recommence,
       delay(400);                    
     }

else
     {
      digitalWrite(LED1, LOW);
     }
     
     //Se recebeu o numero 2, acende o LED2
     if (recebidos[0] == 2)
     {






j'ai essayé ca avec le peu de connaissance que j'ai mais maintenant quand j'actionne une sortie ca clignote

par contre je n'ai jamais les deux sortie en meme temp

je ne voit pas comment modifier a ma guise :/[/code]

tant mieux si tu n'a pas les deux sorties en même temps le signal dois été envoyé un par un, et pas en même temps du coup

qu'entend tu par

"obligation d'attendre que le bouton est ete relaché pour recommencer un cycle"

comme je t'ai dit je débute aussi donc dessolé de pas pouvoir t'aider plus . :smiley:

 //si le signal est le 2, allumage Signal ferme
      if (recepteur[0] == 2)
      {
        delay(15);
        digitalWrite(signalferme, HIGH);
        delay(3000);
        digitalWrite(signalferme, LOW);
        delay(5000);
        digitalWrite(signalouvert, HIGH);
        delay(3000);
        digitalWrite(signalouvert, LOW);

      }
      delay(1500);
    }
  }
  else
  {
  Serial.println("attente signal...");
  }
}

j'ai ecrit ca et j'ai bien l'alternance des deux led (led 1 allumé pendant 3 secondes puis eteint pendant 5 sec puis led2 allumé pendant 3 sec

j'ai le bouton de la telecommande qui est relaché depuis un moment mais la boucle continu encore et encore jusqu'a a un moment ou elle s'arrete toute seule (la led TX de l'arduino se rallume)

je seche vraiment la