ABCelectronique : portail d'information dans le domaine de l'électronique

Merci de ne pas poster des messages en relation avec le piratage.


    Forums de Abcelectronique > Software / Péri-informatique
  » telecommande NRF24L01
Identifiant Se souvenir de moi ?
Mot de passe
Répondre     Nouvelle discussion
telecommande NRF24L01

 

dd91
dd91 ★★★☆☆☆☆ 27/05/2015, 20h20 #1  
bonjour a tous

voila j'ai besoins d'aide en programmation

j'ai recuperer sur ce site la prog d'une telecommande 2 canaux

http://buildbot.com.br/blog/comunic...odulo-nrf24l01/

je souhaite la modifier pour l'utilisé a ma convenance mais j'ai un probleme:

avec ma modification au lieux de ne faire qu'un cycle

- allumage led1 puis extinction allumage de la led2 puis extinction

le montage m'en fait 4

coté emeteur que je le laisse branché ou non c'est pareil

coté recepteur je voit que la led TX de l'ardui s'eteint puis a la fin des 4 cycles elle se rallume (par contre pourquoi elle fait 4 cycles ca....)

voila le code que j'ai tenté de modifié:

Code:
//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 2, acende o LED2 if (recebidos[0] == 2) { delay(15); digitalWrite(LED1, HIGH); delay(3000); digitalWrite(LED1, LOW); delay(5000); digitalWrite(LED2, HIGH); delay(3000); digitalWrite(LED2, LOW); delay(5000); } else delay(100); } } else { Serial.println("Aguardando dados..."); } }


j'ai modifier que la partie ou il y a l'actionnement du BP2

merci de votre aide

Dernière modification par Fas54 27/05/2015 à 21h42.
Fas54
Fas54 Administrateur 27/05/2015, 21h45 #2  
J'ai pas tout lu, mais certaines télécommandes peuvent envoyer plusieurs fois le code parce que le décodeur du récepteur attend plusieurs fois la séquence pour valider la réception.
Mais je suis peut-être à coté de l'idée...
dd91
dd91 ★★★☆☆☆☆ 27/05/2015, 21h55 #3  
ben je pense comme toi car on voit bien que la led Tx du recepteur a 4 sursauts de vie avant de se rallumer completement

maintenant je ne sait pas comment faire pour n'avoir qu'un seul cycle d'allumage de la led ?

Dernière modification par Fas54 28/05/2015 à 10h42.
Thyratron
Thyratron ★★★★★☆☆ 28/05/2015, 11h05 #4  
Bonjour,
A l'occasion de l'utilisation d'un produit de chez Nordic, il y a quelques temps, la bibliothèque Mirf était mentionné. Gain de temps pour l'utilisateur pressé :
https://itechnofrance.wordpress.com...-avec-larduino/
Répondre