Pages: 1 ... 3 4 [5] 6   Go Down
Author Topic: Avertisseur visuel de présence de personne  (Read 7020 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 42
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

effectivement,

c'est mieux avec le point virgule.

Et pourtant dans les manuelles ils précisent bien de faire attention de pas l'oublier. Je ferais plus attention la prochaine fois. merci .   smiley-red

sinon pour le message d'erreur :

capteur_actionnant_un_relais.cpp:6: erreur: expected unqualified-id before ‘int’

pourquoi il y a le chiffre 6  devant erreur ? c'est juste le numéro du type d'erreur ?
Logged

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

le chiffre après les 2 points indique le numéro de la ligne où l'erreur a été détectée.
Ce n'est pas toujours là où est l'erreur, mais là où elle se manifeste.

Par exemple
Dans toto.h tu déclare une classe sans mettre de ;
Code:
class toto
{
  toto();
  ~toto();
  int a;
}

Et puis dans toto.cpp tu inclus le .h avant d'implémenter ta classe :
Code:
#include "toto.h"

toto::toto()
{
  a = 0;
}

L'erreur sera indiquée sur la 3eme ligne de toto.cpp au moment où commence le code du constructeur.
Quote
toto.cpp:3 : xxxxxxxxxxx

Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Offline Offline
Newbie
*
Karma: 0
Posts: 42
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

D'accord,

Je pense que je vais vais faire une liste des élément à vérifier dans l'ordre.... ça peut servir pour le début.

  • toute ligne de code se termine par un point-virgule « ; »
  • le contenu d'une fonction est délimité par des accolades « { » et « } »
  • les paramètres d'une fonction sont contenus pas des parenthèses « ( » et « ) ».



Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 42
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sinon,

Je voulais savoir si au niveau de mon code ça semblait bon.... Je suis pas sûr de moi..... car j'ai fait un mélange des éléments que j'ai trouvé sur le net.

Quote
int brocheCapteur=3; //emplacement où est branché le capteur de mouvement
int brocheRelais=9; //emplacement où est branché le relais.
int valeurCapteur=0; // valeur initialle du capteur de mouvement.

void setup()
{
  pinMode(brocheCapteur, INPUT); //défini la broche 3 en entrée
  pinMode(brocheRelais, OUTPUT); //défini la broche 9 en sortie
}

void loop()
{
  valeurCapteur=digitalRead(brocheCapteur);

  if(valeurCapteur=1)
  {
    digitalWrite (brocheRelais, HIGH);
  }
  else
  {
    digitalWrite (brocheRelais, LOW);
  }

}



 smiley-kitty
Logged

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

Sinon,

Je voulais savoir si au niveau de mon code ça semblait bon.... Je suis pas sûr de moi..... car j'ai fait un mélange des éléments que j'ai trouvé sur le net.


bonjour
non ce n'est pas bon
pour info lorsque tu poste du code mets le entre balise code et pas quote , la balise code c'est le bouton #
Tu commet une erreur de debutant (rassure toi c'est arrivé à tous , et surtout à ceux qui on pratiqué d'autres langages  smiley-mr-green )

il faut un double signe == pour l'égalité du IF, le signe = c'est une attribution
voir section "attention"
http://arduino.cc/fr/Main/If
si tu a une carte uno , j'ai modifié la sortie "relais" pour utiliser la led embarquée en pin13

Code:
int brocheCapteur=3; //emplacement où est branché le capteur de mouvement
int brocheRelais=13; //emplacement où est branché le relais pin 13 pour simulation avec la led embarquée.
int valeurCapteur=0; // valeur initialle du capteur de mouvement.

void setup()
{
  pinMode(brocheCapteur, INPUT); //défini la broche 3 en entrée
  pinMode(brocheRelais, OUTPUT); //défini la broche 13 en sortie
}

void loop()
{
  valeurCapteur=digitalRead(brocheCapteur);

  if(valeurCapteur==1) // ON
  {
    digitalWrite (brocheRelais, HIGH);
  }
  else
  {
    digitalWrite (brocheRelais, LOW);
  }

}
« Last Edit: April 17, 2012, 06:04:41 am by Artouste » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 42
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Alors, j'ai essayé le code et ça marche.

Sauf que de temps en temps le capteur détecteur un mouvement alors qu'il n'y a rien.... mais je pense que c'est parce que le capteur n'était pas sur une surface stable....

sinon pour actionner les relais, on utilise aussi ce code ?

Code:
{
  valeurCapteur=digitalRead(brocheCapteur);

  if(valeurCapteur==1) // ON
  {
    digitalWrite (brocheRelais, HIGH);
  }
  else
  {
    digitalWrite (brocheRelais, LOW);
  }

}

Logged

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

Alors, j'ai essayé le code et ça marche.

Sauf que de temps en temps le capteur détecteur un mouvement alors qu'il n'y a rien.... mais je pense que c'est parce que le capteur n'était pas sur une surface stable....

sinon pour actionner les relais, on utilise aussi ce code ?

Code:
{
  valeurCapteur=digitalRead(brocheCapteur);

  if(valeurCapteur==1) // ON
  {
    digitalWrite (brocheRelais, HIGH);
  }
  else
  {
    digitalWrite (brocheRelais, LOW);
  }

}



oui , mais attention un relais sauf rares exceptions, ne se commande pas directement par une sortie de l'arduino, il faut un petit interfaçage.
et compte tenu de l'application, une petite tempo de quelques secondes de maintien ON du relais après détection ne serait peut etre pas inutile.
Logged

France
Offline Offline
Faraday Member
**
Karma: 23
Posts: 3010
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

le chiffre après les 2 points indique le numéro de la ligne où l'erreur a été détectée.
Ce n'est pas toujours là où est l'erreur, mais là où elle se manifeste.

Par exemple
Dans toto.h tu déclare une classe sans mettre de ;
Code:
class toto
{
  toto();
  ~toto();
  int a;
}

Et puis dans toto.cpp tu inclus le .h avant d'implémenter ta classe :
Code:
#include "toto.h"

toto::toto()
{
  a = 0;
}

L'erreur sera indiquée sur la 3eme ligne de toto.cpp au moment où commence le code du constructeur.
Quote
toto.cpp:3 : xxxxxxxxxxx

Il y a aussi un autre problème avec le numéro de la ligne, il ne correspond pas au code source que tu as saisi mais à celui remis en forme par l'IDE avant compilation. Donc des fois c'est difficile de s'y retrouver.
Tu peux vérifier en allant regarder dans le répertoire temporaire créé au moment de la compilation, tu y trouveras le code source modifié.
Dans certains cas par exemple, il y a des lignes insérées en tête pour ajouter les define. Il y a aussi l'insertion du main()
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 42
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Alors effectivement je dois mettre ce type de transistor


néanmoins je voudrais être sûr pour le montage que je ferais demain.
La collector donc négatif doit se brancher sur le négatif du GND et à la fois sur le négatif de l'alimentation 12 v de la carte arduino lui même ? 

 smiley-eek-blue

Logged

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

Alors effectivement je dois mettre ce type de transistor


néanmoins je voudrais être sûr pour le montage que je ferais demain.
La collector donc négatif doit se brancher sur le négatif du GND et à la fois sur le négatif de l'alimentation 12 v de la carte arduino lui même ?  

Oui il faut relier les GND (masse)
et cabler comme ça , attention à ne pas oublier la diode roue libre si elle n'est pas intégrée dans le relais
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 42
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Oui il faut relier les GND (masse)
et cabler comme ça , attention à ne pas oublier la diode roue libre si elle n'est pas intégrée dans le relais


A quoi sert cette diode roue libre.
Car le relais que j'utilise c'est ça :
Logged

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


A quoi sert cette diode roue libre.
Car le relais que j'utilise c'est ça :

Une diode de roue libre c'est pour "absorber" le courant inverse produit par la bobine
sans le transistor ne va pas durer longtemps
vu le schema simplifié du relais sur la photo , il n'y a a pas de diode.

Voir en fonction de sa référence exacte et du datasheet si il y en a une.
sinon en mettre une
Logged

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ca coûte pas cher (quelques centimes), alors mets une 1N4004/1N4007 sans te poser de question smiley-wink - Dans le bon sens, cathode vers le 12V et Anode vers le transistor. Si si c'est le bon sens pour une diode de roue libre. Quand le transistor va couper le courant dans la bobine, emporté par son élan le courant va continuer a sortir de la bobine. La diode de roue libre va lui permettre de remonter et de tourner dans la bobine le temps de s'atténuer. Sinon il va se dissiper où il peut et risque de cramer le transistor.

Sinon as tu plus d'infos sur le courant de bobine de ton relai ?
vérifie sur maquette avec un 12V et un ampèremètre.
le BC547 est un transistor petit signaux limité de mémoire à 800mW.
100mA c'est le grand maxi qu'il puisse supporter.
Un petit TIP120, c'est un peu plus gros mais plus efficace. Voir un MOS FET (IRF kek chose, je peux chercher un référence si besoin)
Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Offline Offline
Newbie
*
Karma: 0
Posts: 42
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Une diode de roue libre c'est pour "absorber" le courant inverse produit par la bobine
sans le transistor ne va pas durer longtemps
vu le schema simplifié du relais sur la photo , il n'y a a pas de diode.

Voir en fonction de sa référence exacte et du datasheet si il y en a une.
sinon en mettre une

Ha oui, c'est vrai. J'ai du lire un truc sur ce sujet.

Sinon as tu plus d'infos sur le courant de bobine de ton relai ?

3 mA sous 5 V / 750 VA

vérifie sur maquette avec un 12V et un ampèremètre.
Ok

le BC547 est un transistor petit signaux limité de mémoire à 800mW.
100mA c'est le grand maxi qu'il puisse supporter.
Un petit TIP120, c'est un peu plus gros mais plus efficace. Voir un MOS FET (IRF kek chose, je peux chercher un référence si besoin)

ça me parait aussi un peu limite car je me suis amusé à faire une petite expérience.

J'ai branché une lampe 230 v sur un relais.
Pour enclencher le relais j'ai utilisé :
4 piles 1.5 v 800 mA -> sans résultat

un accus nimH 7.2 v 4200 mA -> sans résultat


un accus lippo 7.4 v 4000 mA -> qui a enclenché le relais


Alors je sais pas trop quoi pensé....
Logged

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Tu confond les caractéristiques coté contacts et coté bobine

Le 3mA/5V est la caractéristiques minimales du circuit commuté, le maxi 750VA (~750W) sous 250VAC

La bobine c'est du 12VDC (référence entourée)
Conso de la bonie en mode continue 0.9W soit 75mA
De toute façon le 0.9W c'est trop pour les 800mW du BC547.
Prend un TIP120 ou mieux un MOSFET.
Ou alors pour faire simple un ULN2003.

RTFD
Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Pages: 1 ... 3 4 [5] 6   Go Up
Jump to: