Un autre problème de transmission 433mhz


voilà, j'ai encore un soucis avec mes arduinos reliés en 433mhz, voici mes codes (explications à la fin du post) :
celui de l'émetteur :
quote
/***************************************************
  example sketch our optical fingerprint sensor

  designed work adafruit bmp085 breakout
  ----> http://www.adafruit.com/products/751

  these displays use ttl serial communicate, 2 pins required
  interface
  adafruit invests time , resources providing open source code,
  please support adafruit , open-source hardware purchasing
  products adafruit!

  written limor fried/ladyada adafruit industries. 
  bsd license, text above must included in redistribution
 ****************************************************/

#include <adafruit_fingerprint.h>
#include <softwareserial.h>
#include <rcswitch.h>

rcswitch myswitch = rcswitch();
int getfingerprintidez();
const int led = 7;
unsigned long ouverture  = 111111;
unsigned long fermeture   = 222222;

// pin #2 in sensor (green wire)
// pin #3 out arduino  (white wire)
softwareserial myserial(2, 3);
adafruit_fingerprint finger = adafruit_fingerprint(&myserial);

// on leonardo/micro or others hardware serial, use those! #0 green wire, #1 white
//adafruit_fingerprint finger = adafruit_fingerprint(&serial1);

void setup() 
{
  pinmode(led, output);
  serial.begin(9600);
  myswitch.enabletransmit(10);
  serial.println("init ");
  serial.begin(9600);
 
  while (!serial);  // yun/leo/micro/zero/...
 
  serial.begin(9600);
  serial.println("adafruit finger detect test");

  // set data rate sensor serial port
  finger.begin(57600);
 
  if (finger.verifypassword()) {
    serial.println("found fingerprint sensor!");
  } else {
    serial.println("did not find fingerprint sensor :(");
    while (1);
  }
  serial.println("waiting valid finger...");
}

void loop()                     // run on , on again
{
  getfingerprintidez();
  delay(50);            //don't ned run @ full speed.
}
uint8_t getfingerprintid() {
  uint8_t p = finger.getimage();
  switch (p) {
    case fingerprint_ok:
      serial.println("image taken");
      break;
    case fingerprint_nofinger:
      serial.println("no finger detected");
      return p;
    case fingerprint_packetrecieveerr:
      serial.println("communication error");
      return p;
    case fingerprint_imagefail:
      serial.println("imaging error");
      return p;
    default:
      serial.println("unknown error");
      return p;
  }

  // ok success!

  p = finger.image2tz();
  switch (p) {
    case fingerprint_ok:
      serial.println("image converted");
      break;
    case fingerprint_imagemess:
      serial.println("image messy");
      return p;
    case fingerprint_packetrecieveerr:
      serial.println("communication error");
      return p;
    case fingerprint_featurefail:
      serial.println("could not find fingerprint features");
      return p;
    case fingerprint_invalidimage:
      serial.println("could not find fingerprint features");
      return p;
    default:
      serial.println("unknown error");
      return p;
  }
 
  // ok converted!
  p = finger.fingerfastsearch();
  if (p == fingerprint_ok) {
    serial.println("found print match!");
  } else if (p == fingerprint_packetrecieveerr) {
    serial.println("communication error");
    return p;
  } else if (p == fingerprint_notfound) {
    serial.println("did not find match");
    return p;
  } else {
    serial.println("unknown error");
    return p;
  }   
 
  // found match!
  serial.print("found id #"); serial.print(finger.fingerid);
  serial.print(" confidence of "); serial.println(finger.confidence);
}
// returns -1 if failed, otherwise returns id #
int getfingerprintidez() {
  uint8_t p = finger.getimage();
  if (p != fingerprint_ok)  return -1;

  p = finger.image2tz();
  if (p != fingerprint_ok)  return -1;

  p = finger.fingerfastsearch();
  if (p != fingerprint_ok)  return -1;
 
  // found match!
  if (finger.fingerid == 10) {
    digitalwrite(led, high);
    myswitch.send(ouverture, 24); 
    myswitch.send(ouverture, 24); 
    myswitch.send(ouverture, 24); 
    myswitch.send(ouverture, 24); 
    myswitch.send(ouverture, 24); 
    delay(1000);
    myswitch.send(fermeture, 24);
    digitalwrite(led, low);
  }
}
l'émetteur utilise un lecteur d'empreinte digital.



et celui du récepteur :
quote
// sweep
// barragan <http://barraganstudio.com>
// example code in public domain.
 
#include <servo.h>
#include <rcswitch.h>

const int led = 3;
servo myservo;  // create servo object control servo
                // maximum of 8 servo objects can created
int nbr = 0;
int pos = 0;    // variable store servo position
rcswitch myswitch = rcswitch();

void setup()
{
  pinmode(led, output);
  serial.begin(9600);
  myswitch.enablereceive(0);
  serial.print("allumé");
  myservo.attach(12);  // attaches servo on pin 9 servo object
}
 
void loop()
{
  if (myswitch.available()) {
   
    int value = myswitch.getreceivedvalue();
   
   
    if (myswitch.getreceivedvalue()==111111){
        digitalwrite(led, high);
        for(pos = 110; pos>=1; pos-=1)     // goes 180 degrees 0 degrees
        {                               
        myservo.write(pos);              // tell servo go position in variable 'pos'
        delay(15);                       // waits 15ms servo reach position
        }

        delay(2000);
       
        for(pos = 0; pos < 110; pos += 1)  // goes 0 degrees 180 degrees
        {                                  // in steps of 1 degree
        myservo.write(pos);              // tell servo go position in variable 'pos'
        delay(15);                       // waits 15ms servo reach position
           }
        digitalwrite(led, low);
        int value = myswitch.getreceivedvalue();
        serial.print("stopped");
        }
        myswitch.resetavailable();
     }
       
       
       
 }
celui là ouvre et ferme un loquet lorsqu'il recoit un signal,
mon problème étant qu'il ne fonctionne qu'une fois, après si je veux le réouvrir/fermé, il faut le débrancher/rebrancher ...
merci d'avance, wolsterking

il y une smiley à lunettes dans votre code - utilisez les tags


Arduino Forum > International > Français (Moderators: jfs, Snootlab) > Un autre problème de transmission 433mhz


arduino

Comments

Popular posts from this blog

DHT11 Time out error using v0.4.1library

Sketch upload fails with Java error (___REMOVE___/bin/avrdude)!

Arduino Uno + KTY81/210 temperature sensor