Capteur optique à fourche

Bonjour,

Débutant en Arduino, j'ai quelques difficultés concernant un capteur optique à fourche (datasheet : https://docs.rs-online.com/93b7/0900766b80028ba5.pdf)

Pour le câblage, fil rouge sur le 5V, le noir sur le GND et enfin l'émetteur et le récepteur reliés sur la même entrée numérique.

Ci-joint le code que j'utilise :

int Led=13; // Déclaration de la Led sur la broche 13
int capteur=3; // Déclaration du capteur sur la broche 3
int val=0; // Déclaration d'un variable numérique
void setup()
{
  Serial.begin(9600);
pinMode(Led,OUTPUT); //Déclaration de Led en tant que sortie
pinMode(capteur,INPUT); // Déclaration de capteur en tant qu'entrée
}
void loop()
{
val=digitalRead(3); // Lecture de l'état du capteur
if(val==HIGH)
{
digitalWrite(Led,HIGH); // Allume la led 13
}
else
{
digitalWrite(Led,LOW); // Eteint la led 13
}

Serial.println(val);

delay(300);
}

Cependant, lorsque je passe un objet entre les fourches, l'état du capteur ne change pas. Il change seulement lorsque je touche les câbles de l'émetteur/récepteur...

Serait-ce une erreur de câblage ? (mettre l'émetteur et récepteur sur la même entrée par exemple :roll_eyes: )
Faut-il utiliser une entrée analogique au lieu de numérique ?

Merci d'avance pour vos réponses,

Bonne journée !

hello
mettre
pinMode(capteur,INPUT_PULLUP);

et remplacer

if(val==HIGH)

par

if(val==LOW)

Merci de la réponse rapide, cependant avec la pull_up l'état du capteur reste à 1, logiquement la LED ne s'allume pas et lorsque je passe un objet entre les fourches l'état devrait tomber à 0, mais ce n'est pas le cas...

donnes ton cablage du capteur ( couleurs des fils et entrées de la carte arduino)

Câble rouge : 5V (power)
Câble noir : GND (power)
Câble vert : 3 (digital)
Câble blanc : 3 (digital)

mettre vert sur GND
et blanc sur D3

Malheureusement, le problème reste pareil...

dfgh:
mettre vert sur GND
et blanc sur D3

EDIT : Vu la datasheet, j’aurai fait le contraire.
(Je suis c*n, j’en utilise au boulot et on checke la tension du récepteur sur le blanc.)

Après il faut des résistances pour fixer les courants selon l’application .
Tu l’utilise sur un module (shield) ou seul ?
Ya des chances d’avoir cramé la LED sans rien , mets une résistance d’une 100aine d’Ohm, tu la voies s’allumer (avec ton appareil photo de ton tel) ?

@BrUnO14200, j'ai essayé mais aucune réponse du capteur.

Pour l'instant je l'utilise seul.
J'ai pas de résistance de 100 ohms, j'en ai que à partir de 220 Ohms

Sans aucune résistance ?
Tu joues avec le feu ...

hugoofs:
@BrUnO14200, j'ai essayé mais aucune réponse du capteur.

Pour l'instant je l'utilise seul.
J'ai pas de résistance de 100 ohms, j'en ai que à partir de 220 Ohms

220 Ohm ça ira aussi tu seras large niveau courant .

Reprends le schéma de Hbachetti, et vérifie que ta Led émet avec ton appareil photo .

Si j'applique ce schéma électrique, à mon capteur le K et le E sont mes fils noir et vert. Ensuite le fil rouge (A) je le mets au 5V via une résistance de 270 ohms.
Par contre pour ce qui du C, le fil blanc, on ne peut pas le relier directement au D3 de l'arduino ? On doit obligatoirement passer par une autre résistance ?
Si je déclare ça comme une PULL_UP plus besoin de résistance non ?

Merci.

La valeur interne de la pull_up sera trop forte donc ton récepteur ne sera pas assez sensible je pense mais tu peux tester ...

J'ai fait le montage ci-dessus avec une BreadBoard (je n'arrive pas a ajouter la photo du montage). Je n'ai pas utilisé la led de l'arduino, mais une autre.

La led reste allumée, car la valeur de la broche 3 est à 1, alors qu'aucun objet ne coupe le faisceau du capteur.

Je bloque sur ce capteur !!

Ton code est toujours le même que le 1er publié ? Tu copies l'état de ton entrée 3 pour la commande de la led dans celui là..

Tu as quelle tension au niveau de l'entrée (3) sans rien ?

Si dans les 5V , c'est que tu ne reçois rien , donc état haut / "HIGH" avec un digitalRead donc potentiellement Led allumée

Si dans les 0-500mV , c'est que tu reçois les IR donc état bas / "LOW" avec un digitalRead , led éteinte

Visiblement tu es à "1" d'après ce que tu nous dis , donc tu reçois rien ... tu as vérifié la Led avec un app photo ?

Comment est branchée ta Led ? alimentée par l'arduino avec un digitalWrite(HIGH), tu confirmes ?

Pin--R--Led----GND
ou
5V--R---Led----Pin

Le code est identique à mon premier post. (j'ai juste branché la led sur le port 7 et plus la 13).
LED alimentée par l'arduino, câblée de la façon suivante : 5V--R---Led----Pin.

Je n'ai pas de Voltmètre, mais si la LED est allumée, c'est que j'ai 5V comme tu l'as dit.

Ci-joint la photo du montage : https://ibb.co/JC6SmrP

Encore merci de ton aide, je débute dans l'univers de l'Arduino

C'est bizarre , vu ton montage de LED (qui est correct) , ta Led s'allume que si elle est commandée par digitalWrite(LOW). Comme tu copies l'état du récepteur de ton capteur à fourche, tu as donc un LOW à ce niveau là donc tu reçois bien de la lumière au niveau de la fourche ...

EDIT (j'avais pas vu c'est déja fait) fais un petit Serial.println(digitalRead(3)); (avec un Serial.begin(9600); dans le setup)
et donnes nous la valeur retournée fourche vide et fourche obstruée (avec qqch dans la fourche) .

Tu as bien ta valeur "val" qui change en fonction de qqch qui passe ou non dans la fourche ?
Normalement 0 fourche vide , 1 fourche "pleine" .

Lorsque je regarde le moniteur série, ma valeur Val reste a 1 avec un objet ou non dans la fourche. Mon capteur est neuf, déballé hier.

J'ai du mal à comprendre...

J’ai mal regardé ton schéma mais ton montage n’est pas 5V – R – Led —Pin.

Mais l’autre config Masse—R----Led----Arduino et là c’est normal que ta LED s’allume … (regarde ton schéma que j’ai annoté)

Donc ton récepteur de la fourche ne recoit pas de lumière donc Led IR à vérifier …Les essais sans résistances ont dû l’achever :wink:

Effectivement erreur de ma part.
J'ai testé l'infrarouge du capteur, je n'ai rien vu. Le capteur est mort. En tout cas merci à toi, je réessaierai avec un nouveau capteur.

Bonne soirée !