Pages: [1]   Go Down
Author Topic: [Question] Conflit emetteur HF et VitualWire  (Read 872 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 0
Posts: 152
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour tout le monde =)

J'ouvre ce topic qui en fait est plutôt un cri à l'aide xD

En effet j'ai bricoler un système de contrôle de prises en HF ( 434 mhz) mais le soucis et qu'en voulant le combiner avec un projet bien plus conséquent bah plus rien ne marche ! smiley-sad
En debugant il semble que le coupable est l'initialisation de la librairie VirtualWire smiley-sad

Voila a quoi ressemble le début du code :
Code:
/* Gestion HF Chacon WEB*/

#include <SPI.h>
#include <Ethernet.h>
#include <VirtualWire.h>

const char *msg = "HelloWorld";

byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0x4D, 0x7F };
byte ip[] = { 192,168,1,10 };
byte gateway[] = { 192,168,1,254 };
byte subnet[] = { 192,168,1,254 };               
Server server(80);

String readString = String(); //string for fetching data from address
String ValeurL;

int val;
int torf; // variable pour true or false

bool bit2[26]={};              // tableau pour adresse hexa.
int txPin = 2;                 // emmetteur 433mhz en pin 2

void setup(){

  Ethernet.begin(mac, ip, gateway, subnet);
 
  Serial.begin(9600); // Initialisation du port série pour avoir un retour sur le serial monitor
  Serial.println("Tuto VirtualWire"); // Petit message de bienvenue
 
  vw_set_tx_pin(2);
  vw_setup(2000); // SI ON COMMENTE CETTE LIGNE CA MARCHE ...
 
  pinMode(txPin, OUTPUT);      // emmetteur pin en sortie
  }

par la suite le programme ressemble à ça :

Code:
transmit(torf,val);
        delay(10);
        transmit(torf,val);
        delay(100);
       
        Serial.print("TX ... "); // On signale le début de l'envoi
        vw_send((uint8_t *)msg, strlen(msg)); // On envoi le message
        vw_wait_tx(); // On attend la fin de l'envoi
        Serial.println("Done !"); // On signal la fin de l'envoi
        delay(1000); // Et on attend 1s pour pas flooder

La fonction transmit est utilisé pour le HomeEasy.

Il semble donc que je ne puisse pas utiliser les deux protocoles en même temps ...

Si quelqu'un a déjà eu ce soucis ou si une idée vous passe par la tête je suis preneur smiley

Amicalement,
Trigger
Logged

Offline Offline
Faraday Member
**
Karma: 19
Posts: 4170
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour tout le monde =)

J'ouvre ce topic qui en fait est plutôt un cri à l'aide xD

Il semble donc que je ne puisse pas utiliser les deux protocoles en même temps ...

Si quelqu'un a déjà eu ce soucis ou si une idée vous passe par la tête je suis preneur smiley

Amicalement,
Trigger

à chaud sans regarder le code je penche pour un des deux protocole (lib) qui maintient et ne libere donc pas l'emission en ASK l

faire un test d'ecoute pour une levée de doute : (recepteur sur audacity)
Logged

France
Offline Offline
Faraday Member
**
Karma: 52
Posts: 5341
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut,

Question bête ... Est ce que la lib ethernet n'utiliserai pas un timer ?
Parce que justement vw_setup() utilise un des timer (je sais plus lequel) pour la transmission.
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Offline Offline
Full Member
***
Karma: 0
Posts: 152
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@Skywodd

Question bête : on ne peut pas utiliser deux timer en meme temps ?

extrait de la lib virtualwire :

Code:
#ifndef TEST
    // Set up timer1 for a tick every 62.50 microseconds
    // for 2000 bits per sec
    TCCR1A = 0;
    TCCR1B = _BV(WGM12) | _BV(CS10);
    // Caution: special procedures for setting 16 bit regs
    OCR1A = ocr1a;
    // Enable interrupt

Donc il utiliserait le timer 1 ?

Quote
Question bête ... Est ce que la lib ethernet n'utiliserai pas un timer ?
Parce que justement vw_setup() utilise un des timer (je sais plus lequel) pour la transmission.

j'arrive déjà a envoyer un message en passant par une page web smiley lien ou pas ? je suis pas doué ^^
« Last Edit: February 23, 2012, 01:41:09 pm by trigger » Logged

France
Offline Offline
Faraday Member
**
Karma: 52
Posts: 5341
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Question bête : on ne peut pas utiliser deux timer en meme temps ?
Oui et non, tu peut utiliser les trois timer 0/1/2 pour trois choses différentes mais pas en même temps (une interruption simultané uniquement).

Bon sinon ethernet + virtualWire c'est possible, la preuve : http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1289769139
(J'adord le concept du frigo qui tweet quand ya plus de bières smiley-cool)

Essaye de faire un vw_set_rx_pin(3); puisque par défaut la broche Rx est sur D11 ce qui correspond au port SPI (utilisé pour communiquer avec l'ethernet shield).
Et de mettre le Ethernet.begin après les vw_set_... et vw_begin ...
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Offline Offline
Full Member
***
Karma: 0
Posts: 152
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@Skywodd

Merci de mettre un peu le nez dans ce contre temps smiley

Pour le moment j'ai déjà fait un sketch avec ton tuto ( super d’ailleurs, merci encore) avec un Ethernet Shield.
On arrive a saisir une chaine de cratères via une page web et faire un envoie vers un autre Arduino.

Dans l'exemple ci dessus j'utilise la pin 18 en tx, je ne comprend pas pk je devrais changer la rx alors que le système n'a pas de recepteur ... j'ai raté quelque chose ??

Changer le sens de certaines lignes au niveau du setup peu changer le déroulement ?
« Last Edit: February 23, 2012, 03:57:30 pm by trigger » Logged

Offline Offline
Faraday Member
**
Karma: 19
Posts: 4170
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


On arrive a saisir une chaine de cratères via une page web et faire un envoie vers un autre Arduino.

[HUM]
surement ça !
http://fr.wikipedia.org/wiki/Cha%C3%AEne_des_Puys

désolé , je n'ai pas pu m'en empêcher  smiley-mr-green
Logged

France
Offline Offline
Faraday Member
**
Karma: 52
Posts: 5341
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Dans l'exemple ci dessus j'utilise la pin 18 en tx, je ne comprend pas pk je devrais changer la rx alors que le système n'a pas de recepteur ... j'ai raté quelque chose ??
Que tu utilise ou non la broche Rx celle ci est mise en INPUT, ça peut poser probléme je pense (mais pas sur).

Changer le sens de certaines lignes au niveau du setup peu changer le déroulement ?
Oui dans le cas de VirtualWire certaines fonctions doivent être appelé avec d'autre ça peut être la cause de ton bug.

surement ça !
http://fr.wikipedia.org/wiki/Cha%C3%AEne_des_Puys

désolé , je n'ai pas pu m'en empêcher  smiley-mr-green
héhé Vive l'auvergne ! Auvergne FTW !
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Offline Offline
Full Member
***
Karma: 0
Posts: 152
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Et oui vive l'Auvergne !!!! smiley

Désolé Skywodd mais je ne comprend pas ton histoire de tx alors que je n'ai pas de recepteur ... ( je suis un boulé je sais ^^)
J'ai modifié l’ordre mais toujours le même soucis je n'ai pas de soucis pour l'envoi ( comme dans ton tuto) mais des que je passe pour commander les objets ( prises ou autres) ya plus rien qui marche ...
Logged

France
Offline Offline
Faraday Member
**
Karma: 52
Posts: 5341
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Désolé Skywodd mais je ne comprend pas ton histoire de tx rx alors que je n'ai pas de recepteur ... ( je suis un boulé je sais ^^)
Si la lib virtualWire travail avec la broche D12 en Rx (comme elle le fait par défaut) même si il n'y a pas de récepteur elle risque de venir foutre la m*rde avec la shield ethernet vu que D12 c'est aussi la broche MISO du bus SPI.
Essaye de mettre un vw_set_rx_pin(3); ça coute rien et si ça ce trouve ça réglera le probléme.
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Offline Offline
Full Member
***
Karma: 0
Posts: 152
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjours tout le monde :=)

J'ai bien pris note de toute vos remarques et je me suis donc lancé dans un petit sketch pour rechercher les erreurs.

Dans le code si dessus j'ai commenté/dé-commenté étape par étape pour chercher la où ça plante et il se trouve que c'est au moment de l'initialisation ...


N'étant pas du tout à l'aise avec les timers je ne sais pas trop où chercher ...

Amicalement,
Trigger

* Arduino_Chacon_web_beta.txt (8.97 KB - downloaded 12 times.)
Logged

Pages: [1]   Go Up
Jump to: