Émetteur/recepteur ir 38kHz

Hello,
Apres des dizaines d’essaie a programer un moteur pas a pas a l’aide d’un capteur a ultrason:
Si distance a - de 10 cm active le moteur.

La manière de géré une tension de fil plastique avec la distance via un capteur ultrason .
C'était pas aussi précis que je le voulais bref .

J’ai changer de méthode,
j’ai acheter des émetteurs/récepteurs ir pour utiliser comme déclencheur .( 38mhz)

Je m’explique:

Le fil une fois tendu coupe le faiseau, le moteur s’active, le fil ce détend et rebelotte histoire que le fil soit jamais trop tendu.

Mais j’ai trouver aucun sujet a propos de cette émetteur récepteur ir , du moins pas le meme model, le miens a une lampe blanche style led pour l'émetteur ( elle s’allume pas en 5v ) je c’est pas si c’est normal d’ailleurs vu que c’est ir peut être que si .

Et un genre de led noir un peut particulière pour le reception ir. Voir photo .
Pouvez vous m’expliquer comment brancher ceci sur l’arduino et utiliser comme capteur de déclenchement.
Car Je ne comprend pas je vois 2 arduino pour geré ce petit capteur un en emeteur et l’autre en recepteur, est ce possible d’en faire un simple interupteur avec le em/re sur la meme carte arduino uno.
Merci

texte en italique

2 remarques qui ne répondent pas à la question:

  1. Il ne s'agit pas de 38mhz mais de 38 kHz. Le titre peut être corrigé dans le premier post.
  2. On ne voit effectivement pas la lumière IR, mais les téléphones portables en principe oui. Si on veut voir la lumière émise, on met un portable en position photo et on regarde l'image sur le portable
1 Like

Moi aussi deux remarques :

  1. un lien vers le produit aurait été préférable pour rechercher des informations supplémentaires.
  2. as tu vu la valeur de l’angle du cone d’emission du faisceau ?
    -> 20 degrés ( et souvent ce n’est que le demi angle)
    Quel est le diamètre du fil ?
    Est -ce compatible ?

Oui, parce qu'habituellement, cet ensemble est utilisé pour réaliser des télécommandes donc on a un boitier émetteur et un boitier récepteur.
Je ne pense pas que l'on puisse utiliser ces modules pour faire une barrière infrarouge. Le récepteur et optimisé pour détecter des suites d’impulsions telles qu'en génèrent les télécommandes de télévisions. Il y a généralement des contraintes sur les signaux qui, à mon sens, le rendent inutilisable pour ton besoin:

  • suppression d'un signal permanent,
  • des contraintes sur la durée des impulsions et sur la pause entre les impulsions.

Pour ton besoin, je pense que le plus simple serait de faire passer le fil entre 2 baffles verticaux avec dans le haut et dans le bas une fourche optique de ce genre.

C'est un exemple on en trouve un peu partout et on peut aussi remplacer la fourche par un émetteur infrarouge comme l'émetteur que tu as actuellement et un phototransistor comme récepteur.

Bonjour lefourbi

Le système à RADAR ne fonctionne pas?
En mettant une cible qui monte et descend en fonction de la tension du fil afin d'avoir une surface réfléchissante plus grande que simplement le fil plastique.

A+
Cordialement
jpbbricole

Bonjour et merci pour votre réponse ,voici le liens de l’article .

Je viens juste de trouver cet incroyable article sur AliExpress. Jetez-y un coup d'œil ! 0,64€ Réduction de 70% | Transmetteur infrarouge pour les nuits de construction électronique Ardu37, technologie IR numérique, récepteur 38kHz, capteur
https://a.aliexpress.com/_EGNM0Iv

Bonjour , merci pour votre réponse ,
Je ne suis pas sur de moi mais il me semble que le capteur a ultra son , fait démarré le moteur un peut comme un rebond au debut , j’ai voulus experimenter un autre type de capteur ,
J’avais l’id en tete mais je ne savais pas comment cela fonctionner ni le nom de cette chose ?

Apres quelque recherche .
L’id serais de copier les petits boite noir qui ce trouve dans les portails en general , photo cellule si je dit pas de bêtise .
J’ai remarquer que quand on coupe le faisceau entre les deux boitier le portail se réouvre tant qu’il n’est pas fermer pout éviter l’écrasement je pense.

Je c’est pas si cela existe pour arduino ,
J’ai vu des projet avec une barrier un feux rouge et 2 capteur pour detecter la voiture, mais le capteur n’est pas le meme que le miens il y a deux lumière une blanche et noir sur chaque module.

Je c’est pas quoi utiliser du coup :thinking:

Puisque tu as ce RADAR, je vais essayer, de mon côté.
Mais, comme ton fil est trop fin pour servir d'obstacle que ce soit pour la lumière ou les ultrasons, il faudra, qu'en fonction de s tension, il fasse bouger une petite surface faisant office de réflecteur.

A+
Cordialement
jpbbricole

Bonjour lefourbi

J'ai repris ce programme et contrôlé avec un RADAR HC-SR04 et ça fonctionne très bien, tu contrôle le nombre de pas avec le potentiomètre.
Le principe est que le fil déplace verticalement, suivant la tension du fil, une "cible" sur la quelle le RADAR va rebondir (fil détendu), distance courte.
Quand le fil se tend, la "cible" monte, le faisceau du RADAR passe "par dessous" donc la distance augmente:
if (distance > minDistance && motorPas > 0)
donc, i faut faire tourner le moteur pour détendre le fil.
Toutes les secondes, dans le moniteur (9600), s'affiche la distance ainsi que le nombre de pas:

Distance : 4	pas : 84
Distance : 6	pas : 84
Distance : 0	pas : 84
Distance : 17	pas : 84
Distance : 18	pas : 84
Distance : 17	pas : 84

Le programme:

// 1 Bibliotheque de controle utilisé (ultra son et driver A4988)

#include <NewPing.h>
#include <AccelStepper.h>

// 2 Déclaration des broches conecter a l'arduino

// Paramètres @lefourbi
#define POTENTIOMETER_PIN A0  // Broche du potentiomètre
#define DIR_PIN 8             // Broche direction du moteur pas à pas
#define STEP_PIN 9            // Broche du nombres de pas du moteur pas à pas
#define TRIGGER_PIN 10        // Broche qui envoie l'onde capteur ultrasonique
#define ECHO_PIN 11           // Broche de réception de l'onde du capteur ultrasonique
#define ENABLE_PIN 6          // Broche d'activation/désactivation de la carte driver 4988

//// Paramètres @jpbbricole
//#define POTENTIOMETER_PIN A0  // Broche du potentiomètre
//#define DIR_PIN 5             // Broche direction du moteur pas à pas
//#define STEP_PIN 6            // Broche du nombres de pas du moteur pas à pas
//#define TRIGGER_PIN 9         // Broche qui envoie l'onde capteur ultrasonique
//#define ECHO_PIN 8            // Broche de réception de l'onde du capteur ultrasonique
//#define ENABLE_PIN 7          // Broche d'activation/désactivation de la carte driver 4988

// 3 Initialisation du capteur et actioneur (moteur et capteur ultrason)

AccelStepper stepperMotor(AccelStepper::DRIVER, STEP_PIN, DIR_PIN); // Initialise le moteur

NewPing sonar(TRIGGER_PIN, ECHO_PIN);  // Initialise le capteur ultrason

// 4 Déclaration des variables (integration vitesse et distance minimale)

int motorPas = 0;  // Variable pour la vitesse du moteur
int minDistance = 10;  // Distance minimale pour déclencher le moteur (en cm)
const unsigned long displayTempo = 1000;     // Tempo d'affichage
unsigned long displayMillis = millis();     // Tempo d'affichage, chrono

// 5 Fonction de contrôle du moteur :

void controlMotor() 
{
	int distance = sonar.ping_cm(); // analyse de la longueur de l'onde
	int potValue = analogRead(POTENTIOMETER_PIN);// Lecture de la valeur du potentiomètre pour ajuster manuellement la vitesse

	motorPas = map(potValue, 0, 1023, 0, 200); // remplacer (2OO) pour augmenter les nompre de pas (200 = tour complet)

	if (millis() - displayMillis >= displayTempo)     // Si le temps de l'affichage
	{
		Serial.print("Distance : " + String(distance));
		Serial.println("\tpas : " + String(motorPas));

	
		displayMillis = millis();     // Redémarrage du chrono
	}

	/* 
		Activation/Désactivation du moteur en fonction de la distance
		si la distance est supérieur à minDistance ça signifie que le fil est tendu
	*/
	if (distance > minDistance && motorPas > 0) 
	{
		stepperMotor.enableOutputs(); //activation cable enable
		stepperMotor.move(motorPas);
		stepperMotor.runToPosition();
	} 
	else   // sinon
	{
		stepperMotor.disableOutputs();// pas du moteur eteint en sortie
	}
}


// 6 le setup le code qui ce lit qu'une fois

void setup() 
{
	Serial.begin(9600); // il escrit des choses dans l'ecran de controle ide(je c'est pas trop ce quil ecrit pour le moment)

	stepperMotor.disableOutputs(); // Désactive le moteur au demarrage
	stepperMotor.setMaxSpeed(200);     // Vitesse maximum du moteur
	stepperMotor.setAcceleration(200);     // Accélération du moteur
}

// 7 loop le programme qui tourne en rond (comme le chat)

void loop() 
{
	controlMotor(); // Appelle la fonction de contrôle du moteur
}

Essaies ça!

A+
Cordialement
jpbbricole

1 Like

Je vous remercie , je vais essaiyer de traduire le code pour essayer de comprendre et ensuite je procède au test ,
Et effectivement mon capteur vise une palette qui est poser sur le fil qui du coup monte et descend


avec le capteur en haut voit photo , je pourrais amélioré le par la suite .

C'est excellent comme ça :+1:

Sauf que la distance diminue quand le fil se tend, il faudra changer

	if (distance > minDistance && motorPas > 0) 

en

	if (distance < minDistance && motorPas > 0) 
1 Like

Oui effectivement , merci encore pour le temps passer pour m’aider .
Sans le forum j’aurais peut etre jeter l’éponge .

Des que mon imprimante sera opérationnel, je vais me refaire le kit de démarrage car je me suis arrêter au milieu .

Je pensais pouvoir utiliser directement n’importe quel capteur et actionneur, mais non je vais reprendre les bases .

J’ai mis la charrue avant les boeuf :man_shrugging: et voila le resultat

La palette change tout !
Pourquoi ne pas avoir publié la photo plus tôt ?

Il y a plus précis que le capteur à ultra son.

Le capteur HC-SR04 à un cône d'émission de 60 °, il est lent.
Son principe est

  • une salve à 40 kHz est envoyé
  • en présence d'obstacle, elle est renvoyée vers le capteur
  • le microcontrôleur interne mesure le temps entre envoi et retour à la vitesse du son, soit 330m par seconde

Il y a mieux : les capteurs qui utilisent une onde lumineuse infrarouge.
Exemple VL53L0 jusqu'à 1,2 m ou VL53L1 jusqu'à 2 m de chez STMicroelectronic.

Ils sont précis au millimètre près, des bibliothèques existent, ils sont simples d'emploi et pas cher. Autre avantage, le cône d'émission est moins large.
Exemple pris au hasard sur aliexpress :

Si tu veux continuer avec un capteur à ultrason, pas de souci, il n'y a pas de raison que cela ne fonctionne pas vu le diamètre de la palette et la faible distance. Attention que la distance ne soit pas trop faible, le principe des ultrasons n'aime pas trop.

1 Like

D’accord super merci de l’info !

Je pense rester sur l’ultra son car sa me semble assez simple a coder ou du moins a mettre en oeuvre pour une utilisation classique.

Je pensais que tout les capteur ce programer avec les meme ligne de code et que l’ide gère tout cela derriere, chaque capteur a son propre fonctionnement bien distinct ainsi que sa bibliothèque.

Du coup je termine mon projet , et je pense quand j’en aurais les capacités m’amuser a le perfectionner et utiliser d’autre capteur ce sera un bon projet a amelioré par la suite .
Je suis tres novice je suis a 3/4 exercices du blink :man_shrugging:.( je me croyait programmeur en herbe :joy::joy: j’ai eté naif et stupid.

Par contre étant curieux de nature est ce qu’un capteur photo cellule et réalisable avec une carte arduino ?
Je pose la question car j’aime bien le concept pour ouverture de la chatière ou allumer une lampe si quelqu’un rentre dans le garage . Pour ce genre d’utilisation .

Le faite de contacter en coupant un faisceau invisible me plais bcp de par sa discretion et sa peut amener des expériences plutôt sympas :joy:
Allumer quelque chose en mettant le doigt dans un trous .

Just par curiosité car j’ai envie de me pencher dessus . Et faire des expériences.

Difficile de dire cela sans avoir essayé autre chose que l'ultrason :smiley:

Impossible de répondre à cette question telle qu'elle est exposée.

C'est quoi un Arduino ?
Arduino, c'est une marque déposée pour une carte, parmi beaucoup d'autres, dont le circuit principal est un microcontrôleur.

Ce qui compte, c'est le microcontrôleur, avr, esp32, STM32, RP2040 sont les plus fréquents ici.

Donc oui, un microcontrôleur peut faire ce que tu souhaites.

Attention dans ta question ce n'est pas le microcontrôleur qui est le plus important.
Les "posemètres photo" existaient que les microcontrôleurs n'existaient pas.
Le plus important, c'est le capteur.

As-tu des idées sur un capteur qui te conviendrait ou cherches-tu des références ?
Une fois le capteur choisi, il sera temps de trouver le microcontrôleur qui va bien et sur quelle carte on le trouve.

Bonsoir lefourbi

Oui, certainement, l'Arduino fait l'affaire, mais il y a beaucoup plus simple, au vu de ta palette, un capteur à effet de hall
image

et un petit aimant peut faire largement l'affaire.
Le capteur fixé sur la potence, l'aimant sur le mobile.

Cordialement
jpbbricole

Capteur de effet hall .
Ok je vais voir ce que sa fait :grinning: .
Mais j’ai deja tout reglé.
Je suis en train de refaire l’apprentissage du bouquin en entier .

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.