Problème connexions.

Les cartes Arduino, les platines

Re: Problème connexions.

Message non lude Domo31 » Ven 27 Fév 2015 23:07

Bonjour,
J'ai enfin pu reprendre mon projet.

Donc : j'ai essayé ce que j'ai mis en trace écrite, mais rien a faire , ça ne marche pas ...

Du coup j'ai ensuite refait des tests pour la réception avec le récepteur avec le Simple et le Advanced mais ça ne marche pas.
Je continue mes recherches , je tombe la dessus :
http://forum.idleman.fr/discussion/245/ ... easy-reuni
J'installe donc la librairie HRCSwitch qui est censé résoudre tout mes problèmes, mais la encore, rien ... Ca ne marche pas non plus ...
Avec ce code :
Code: Tout sélectionner
#include <HRCSwitch.h>
HRCSwitch mySwitch = HRCSwitch();
const int TXpin = 1;



void setup()
{
Serial.begin(9600);
mySwitch.enableTransmit(TXpin);
Serial.println("HRCSwitch ready");
}



void loop()
{

//Turn ON HE300
mySwitch.send(1234,0,true);
delay(2000);
//Turn ON RCSwitch
mySwitch.send(1234,24);
delay(2000);
//Turn OFF HE300
mySwitch.send(1234,0,false);
delay(2000);
//Turn OFF RCSwitch
mySwitch.send(1233,24);
delay(2000);

}


Je commence a ne plus rien comprendre .... C'est pourtant censé marcher ! ...

Du coup je test un montage que avec la DHT11 pour voir si ce n'est pas un autre problème.
J'essai ça : https://skyduino.wordpress.com/2013/04/ ... ite-dht11/
Du coup ce code :
Code: Tout sélectionner
const byte DHT11_PIN = 5;
 
/** Code d'erreur de la fonction readDHT11() */
enum {
  DHT11_SUCCESS, //!< Pas d'erreur
  DHT11_TIMEOUT_ERROR, //!< Temps d'attente dépassé
  DHT11_CHECKSUM_ERROR //!< Données reçues erronées
};
 
/** Fonction setup() */
void setup() {
 
  /* Initialisation du port série */
  Serial.begin(115200);
  Serial.println(F("DHT11 DEMO"));
}
 
/** Fonction loop() */
void loop() {
 
  /* Variables d'usage */
  byte temperature, humidity;
 
  /* Lecture de la température et de l'humidité + gestion des erreurs */
  switch (readDHT11(DHT11_PIN, &temperature, &humidity)) {
  case DHT11_SUCCESS:
     
    /* Affichage de la température et du taux d'humidité */
    Serial.print(F("Humidite (%): "));
    Serial.println((int) humidity);
    Serial.print(F("Temperature (^C): "));
    Serial.println((int) temperature);
    break;
 
  case DHT11_TIMEOUT_ERROR:
    Serial.println(F("Temps d'attente depasse !"));
    break;
 
  case DHT11_CHECKSUM_ERROR:
    Serial.println(F("Erreur de checksum !"));
    break;
  }
   
  /* Pas besoin de rafraichir l'affichage très souvent */
  delay(2000);
}
 
/**
 * Lit la température et le taux d'humidité capté par un capteur DHT11
 *
 * @param pin Broche sur laquelle est câblé le capteur
 * @param temperature Pointeur vers la variable stockant la température
 * @param humidity Pointeur vers la variable stockant le taux d'humidité
 * @return DHT11_SUCCESS si aucune erreur, DHT11_TIMEOUT_ERROR en cas de timeout, ou DHT11_CHECKSUM_ERROR en cas d'erreur de checksum
 */
byte readDHT11(byte pin, byte* temperature, byte* humidity) {
 
  /* data[] -> buffer contenant les données du cpateur
   * counter -> compteur permettant de savoir quel bit est reçu (bitwise)
   * index -> compteur permettant de savoir quel octet est reçu (bitwise)
   * timeout -> compteur pour le timeout
   */
  byte data[5] = { 0 }, counter = 7, index = 0;
  unsigned int timeout;
 
  /* Conversion du numéro de broche Arduino en ports/masque binaire "bas niveau" */
  /* Utiliser les registres du microcontrôleur est bien plus rapide que digitalWrite() */
  uint8_t bit = digitalPinToBitMask(pin);
  uint8_t port = digitalPinToPort(pin);
  volatile uint8_t *ddr = portModeRegister(port); // Registre MODE (INPUT / OUTPUT)
  volatile uint8_t *out = portOutputRegister(port); // Registre OUT (écriture)
  volatile uint8_t *in = portInputRegister(port); // Registre IN (lecture)
 
  /* Réveil du capteur */
  *ddr |= bit; // OUTPUT
  *out &= ~bit; // LOW
  delay(18); // Temps d'attente à LOW causant le réveil du capteur
  *out |= bit; // HIGH
  delayMicroseconds(40);
  *ddr &= ~bit; // INPUT
 
  /* Attente de la réponse du capteur */
  timeout = 0;
  while(!(*in & bit)) /* Attente d'un état LOW */
    if (++timeout == 10000)
      return DHT11_TIMEOUT_ERROR;
  timeout = 0;
  while(*in & bit) /* Attente d'un état HIGH */
    if (++timeout == 10000)
      return DHT11_TIMEOUT_ERROR;
 
  /* Lecture des données du capteur (40 bits) */
  for (byte i = 0; i < 40; ++i) {
 
    /* Attente d'un état LOW */
    timeout = 0;
    while(!(*in & bit))
      if (++timeout == 10000)
        return DHT11_TIMEOUT_ERROR;
 
    /* Mise en mémoire du temps courant */
    unsigned long t = micros();
 
    /* Attente d'un état HIGH */
    timeout = 0;
    while(*in & bit)
      if (++timeout == 10000)
        return DHT11_TIMEOUT_ERROR;
 
    /* Si le delta Temps est supérieur à 40µS c'est un "1", sinon c'est un "0" */
    if ((micros() - t) > 40)
      data[index] |= (1 << counter); // "1"
    // Le tableau data[] est initialisé à "0" par défaut <span class="wp-smiley wp-emoji wp-emoji-wink" title=";)">;)</span>
 
    /* Si le compteur de bits atteint zéro */
    if (counter-- == 0) {
      counter = 7; /* On passe à l'octet suivant */
      ++index;
    }
  }
 
  /* Format des données :
   * [0] = humidité en %
   * [1] = zéro
   * [2] = température en degrés Celsius
   * [3] = zéro
   * [4] = checksum (humidité + température)
   */
  *humidity = data[0];
  *temperature = data[2];
 
  /* Vérifie la checksum */
  if (data[4] != (data[0] + data[2]))
    return DHT11_CHECKSUM_ERROR; /* Erreur de checksum */
  else
    return DHT11_SUCCESS; /* Pas d'erreur */
}


Ca marche , mais la le problème c'est qu'au lieu que ça m'affiche ceci :
http://www.hostingpics.net/viewer.php?id=39359165pb.jpg
J'ai ça à la place , soit quelque chose de pas lisible et je ne sais pas d'où viennent ces caractères sachant qu'à aucun moment donné dans ce code, il y a un affichage de ces caractères... :|
http://www.hostingpics.net/viewer.php?id=447264test.jpg


Je suis complètement perdue ... c'était quelque chose qui me paraissait simple mais au final je n'y comprends plus rien ........
Merci de votre aide ...
DOMO-WOMEN
Domo31
 
Messages: 19
Inscription: Lun 29 Déc 2014 19:29

Re: Problème connexions.

Message non lude Domo31 » Ven 27 Fév 2015 23:22

J'ai essayé avec ceci :
http://www.wikidebrouillard.org/index.p ... ur_de_température_et_d'humidité
Évidemment a chaque fois je n'oublie pas de changer mon pin de connexion ;)
Et j'obtient parfaitement le résultat donc ce code est bon :
Code: Tout sélectionner
#include <DHT.h> 
#define DHTPIN 2 // le pin auquel nous sommes connectés.

//Décommenter, quel que soit celui utilisé !
#define DHTTYPE DHT11 // DHT 11
//#définir DHTTYPE DHT22 // DHT 22 (AM2302)
//#définir DHTTYPE DHT21 // DHT 21

// Connecter le pin 1 (à gauche) du capteur à +5V
// Connecter le pin 2 du capteur au DHTPIN, quel que soit celui utilisé.
// Connecter le pin 4 (à droite) du capteur à la TERRE.
// Connecter une résistance 10K du pin 2 (donnée) au pin 1 (puissance) du capteur.

DHT dht(DHTPIN, DHTTYPE);

void setup()
{
    Serial.begin(9600);
    Serial.println("DHTxx test!");

    dht.begin();
}

void loop()
{
    // Lire la température ou l'humidité prend environ 250 millisecondes !
    // Les lectures du capteur peuvent également avoir jusqu'à 2 secondes de "retard"
//(ce capteur est très lent).
    float h = dht.readHumidity();
    float t = dht.readTemperature();

    // Vérifier si les retours sont valides, s'ils sont NaN ("pas un nombre")
//cela signifie que quelque chose d'anormal s'est produit !
    if (isnan(t) || isnan(h))
    {
        Serial.println("Failed to read from DHT");
    }
    else
    {
        Serial.print("Humidity: ");
        Serial.print(h);
        Serial.print(" %\t");
        Serial.print("Temperature: ");
        Serial.print(t);
        Serial.println(" *C");
    }
}


Donc voilà il ne reste "plus" qu'à résoudre le mystère de mes prises ..... :| :evil:
DOMO-WOMEN
Domo31
 
Messages: 19
Inscription: Lun 29 Déc 2014 19:29

Re: Problème connexions.

Message non lude Laetitia » Mer 8 Avr 2015 09:47

Bonjour,

Domo31 a écrit:Je continue mes recherches, je tombe là-dessus :
http://forum.idleman.fr/discussion/245/ ... easy-reuni
J'installe donc la librairie HRCSwitch qui est sensée résoudre tous mes problèmes, mais là encore, rien... Ca ne marche pas non plus ...

Le code que vous avez posté permet d'allumer/éteindre des prises. Avez-vous pu récupérer les codes correspondants à celles-ci avec le sketch d'exemple ReceiveDemo_Simple ?

Domo31 a écrit:J'ai ça à la place , soit quelque chose de pas lisible et je ne sais pas d'où viennent ces caractères sachant qu'à aucun moment donné dans ce code, il y a un affichage de ces caractères...

Vérifiez la vitesse de votre moniteur série. Dans votre sketch vous initialisez la liaison série à 115200 bauds et sur votre capture d'écran on voit que vous essayez de lire des données à 9600 bauds.
"If it's itchy, scratch it !" - "DIY or die"

RTFM (À lire avant de poster) - ANDb (Arduino Noob Database)
Avatar de l’utilisateur
Laetitia
 
Messages: 296
Inscription: Mar 7 Aoû 2012 15:07
Localisation: Toulouse

Précédente

Retourner vers Arduino

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron