Aller au contenu


Photo
- - - - -

besoin d'aide programmation arduino


  • Veuillez vous connecter pour répondre
80 réponses à ce sujet

#41 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 8 899 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 24 août 2020 - 05:50

Continuons de remettre les choses un peu plus à plat ... 

Si j'ai bien compris ce que tu cherches à faire : 
 

Tu as le signal jaune montré à l'oscillo ci dessus plus haut qui provient d'un capteur inductif.  ( c'est bien ça ? ) si je me fie à l'échelle je vois que c'est du -5V 0 5V ... Hors tu parles -2V 0  2V ... 

Ensuite ce signal pilote une bobine TCI... Je ne suis pas sûr de savoir ce que c'est mais je suppose que cette bobine fonctionne en tout ou rien...
C'est quoi comme signal de commande à envoyer ? il faut lui envoyer un pulse ? Ou changer l'état de la commande? Quel voltage ? Il y a besoin de courant ?
Et quand est ce qu'il faut envoyer ce signal de commande ? Quand le signal du capteur inductif change de signe ?  

Peux tu faire des courbes avec " deux couleurs " l'une indiquant le signal du capteur et l'autre indiquant le signal de commande que tu veux ? 
Et faire ces différentes courbes dans les différents cas que tu veux régler ? 

Est ce que l'avance ou le retard doit être linéaire ou bien est ce que ça doit être des paliers ? 

Bref moi pour t'aider il faut que je sois sûr de bien comprendre ce que tu veux sinon on risque de te dire des bêtises et ça serait dommage! =)
 


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 

 

Les réalisations de Mike118  

 

 

 


#42 Rhum07

Rhum07

    Nouveau membre

  • Membres
  • 28 messages
  • Gender:Male
  • Location:Lyon France

Posté 24 août 2020 - 07:20

C'est quoi comme signal de commande à envoyer ? c'est le signal du capteur il faut lui envoyer un pulse ? Ou changer l'état de la commande? non, on le laisse telle quel  Quel voltage ? Il y a besoin de courant ? non, la bobine est déjà alimentée en 12v via une batterie.
Et quand est ce qu'il faut envoyer ce signal de commande ? je ne sais pas, car cela été programmé d'avance dans le TCI, j'ai simplement faire un relevé de l'éxistant et de ce que je veux. Donc j'ai pu en déduire une différence en temps et ° tout les 1000T /min.  Quand le signal du capteur inductif change de signe ? 

Est ce que l'avance ou le retard doit être linéaire ou bien est ce que ça doit être des paliers ? Linéaire

 

Merci



#43 Rhum07

Rhum07

    Nouveau membre

  • Membres
  • 28 messages
  • Gender:Male
  • Location:Lyon France

Posté 25 août 2020 - 10:09

J'ai testé le code de Mike mais cela ne fonctionne pas. Le TCI est un système qui gère l'avance de l'allumage en fonction de la vitesse de rotation. Donc il faut que je le leurre pour pouvoir arriver a mes fins. Je ne peux pas modifié la fréquence, par contre retarder ou avancer le signal doit être la bonne solution. Il me faudrait un code qui ne me modifie pas le signal d'entré (a priori pwm) mais qui me le retarde ou l'avance en fonction de la fréquence.   :thank_you:



#44 Rhum07

Rhum07

    Nouveau membre

  • Membres
  • 28 messages
  • Gender:Male
  • Location:Lyon France

Posté 25 août 2020 - 01:00

Voila ce que j'obtiens avec le code de Mike. Jaune signal Original sur PIN 3, Vert sortie sur PIN 5.

Lors de la connexion au Nano le signal Original perd son négatif et en sortie le signal est doublé. 

Image(s) jointe(s)

  • Capture d’écran (47).png


#45 Ludovic Dille

Ludovic Dille

    Membre occasionnel

  • Membres
  • Pip
  • 121 messages
  • Gender:Male
  • Location:Belgique
  • Interests:Robotique, électronique, embarqué, informatique, ...

Posté 25 août 2020 - 01:20

Un truc qui me chiffone c'est que dans le projet de turboseb, il traitait son signal d'entrée pour avoir un signal carré, ce qui n'est pas le cas chez toi. Ce qui à mon avis n'aide pas pour avoir quelque chose qui fonctionne. Et pour l'autre partie tu peux modifier le code existant pour ne pas faire des impulsions de durée fixe mais variable pour pouvoir répliquer ton signal



#46 Rhum07

Rhum07

    Nouveau membre

  • Membres
  • 28 messages
  • Gender:Male
  • Location:Lyon France

Posté 25 août 2020 - 01:31

Durée variable pour répliquer le signal original, ça serait déjà une bonne avancée. Connaîtrais tu la modif du code. Merci

#47 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 8 899 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 26 août 2020 - 05:54

En effet, comme l'a dit ludovic, tu ne peux pas utiliser directement le code que j'ai fourni a Turboseb, car ce code est fait pour avoir un " simple créneau " ( signal carré ) il n'y a pas de notion de négatif dans son cas. 

Sa question était : 
A chaque changement du signal , faire un pulse de longueur fixée. 

C'est pour ça que tu vois deux signaux pour un seul créneau sur ton oscilloscope ...

 

 

 

Un arduino n'a que deux états de sortie sur ses broches : High ou Low et pas de négatif.  Donc une simple modification du code ne suffit pas. Et c'est la même chose en entrée ... L'arduino ne peut pas lire un signal négatif non plus juste comme ça directement en branchant le signal sur ses broches ... 

Peux tu donner plus de détails sur le branchement que tu as fait sur ton arduino ? des photo et un schémas de câblage ? 

 

Je suppose que ta prise de mesure sur ta bobine se fait directement entre les deux broches de ta bobine et pas entre une masse et une des broches de ta bobine    ( Je suppose qu'aucune des broche de ta bobine n'est directement relié à la masse )  si c'est bien le cas, on peut réussir à faire ce que tu souhaites en utilisant un petit driver de moteur qui permettra " d'inverser le signal " ( = avoir du négatif ) au borne de ta bobine. 

 

Ainsi pour correspondre à ton besoin il faudra modifier le code pour qu'il pilote le driver de moteur comme souhaité, et que le signal de sortie ne soit plus un pulse de longueur " fixe " mais un créneau de "recopie " ...  De plus le code fournit à turboseb n'était pas " linéaire "  donc faudra aussi modifier cela si tu veux que ça soit linéaire ...

Bref en résumé, même si ça se rapproche c'est un code presque complètement différent...

 

Si ta bobine ne consomme quasi rien : ce petit driver de moteur devrait suffir : https://www.robot-ma...c-l9110-56.html

 

Attention je le rappel, je ne maîtrise pas bien la "partie système " de ce que tu cherches à piloter ... Donc ne prends pas directement pour argent comptant ce que j'écris... J'ai exprimé mes hypothèses, et mes remarques ne sont valable que sur la base de ces hypothèses ... 


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 

 

Les réalisations de Mike118  

 

 

 


#48 Rhum07

Rhum07

    Nouveau membre

  • Membres
  • 28 messages
  • Gender:Male
  • Location:Lyon France

Posté 26 août 2020 - 10:35

Tout d'abord, merci pour les recherches et le temps passé.

J'ai fais un petit croquis pour visualisé la "partie système". Le capteur (fils bleu,courbe verte) informe, du régime, l’électronique du TCI qui gère une courbe d'allumage en fonction de ce régime. Ce TCI commande la bobine qui délivre l'étincelle (courbe verte). 

Donc pour retarder ou avancer l'allumage, il "suffirait" de tromper (en temps) le TCI en agissant sur le signal du capteur (fils bleu).

Je pensais que le code pour Turboseb pourrais être une base mais vous pouvez voir que je suis aussi bon en dessin qu'en codage. :clapping:

En espérant que ces nouveaux éléments vous permettent de me venir en aide.

Image(s) jointe(s)

  • Capture d’écran (45).png
  • croquisallum.jpg


#49 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 8 899 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 26 août 2020 - 08:31

Bon je peux déjà dire que je me suis pas mal trompé sur le "système " ... Et le schémas aide bien à comprendre !  

Par contre ce capteur qui a que deux fils et qui sort un signal négatif ça m'étonne un peu quand même ... 
On est bien d'accord que les mesures que tu fais des signaux sont bien avec la masse de ta sonde reliée à la masse de ta batterie ? 


En tout cas faut que je réfléchisse encore pour proposer quelque chose ... 
 


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 

 

Les réalisations de Mike118  

 

 

 


#50 Rhum07

Rhum07

    Nouveau membre

  • Membres
  • 28 messages
  • Gender:Male
  • Location:Lyon France

Posté 26 août 2020 - 09:03

Oui, toujours la sonde à la masse. J'ai créer un générateur de pulse 0-5v et cela ne fonctionne pas.

#51 Rhum07

Rhum07

    Nouveau membre

  • Membres
  • 28 messages
  • Gender:Male
  • Location:Lyon France

Posté 31 août 2020 - 10:07

Après mes différents essais infructueux, je vais me contenter ,dans un premier temps, de retarder le signal de façon fixe. connaîtriez vous un composant ou un montage qui me permettrait de déphaser (retarder) ce signal carré alternatif en conservant le même écart de 30 à 250 Hz.



#52 Ludovic Dille

Ludovic Dille

    Membre occasionnel

  • Membres
  • Pip
  • 121 messages
  • Gender:Male
  • Location:Belgique
  • Interests:Robotique, électronique, embarqué, informatique, ...

Posté 31 août 2020 - 10:30

Je suppose que quand tu dis "même écart" tu parles d'un écart constant en degré et pas en seconde.
- Un montage qui t'impose un écart constant en second est assez simple (un monostable)
- Pour un montage avec un déphase constant c'est plus tricky vu que tu as un signal carré qui est composé d'une multitude de fonctions sinusoïdale et donc une multitude de fréquence

si tu as toujours ton arduino de dispo, tu peux toujours faire un petit programme qui
- mesure la durée de ton signal carré -> calcul de fréquence et donc du déphasage
- Sortie déphasée de la fréquence du cycle précédent.



#53 Rhum07

Rhum07

    Nouveau membre

  • Membres
  • 28 messages
  • Gender:Male
  • Location:Lyon France

Posté 31 août 2020 - 10:56

Je m'étais penché du coté des lignes à retard mais effectivement cela produit un délai un seconde fixe. Il me faut un retard en degré (de l'ordre de 2 à 3° sur la plage de fréquence.



#54 Ludovic Dille

Ludovic Dille

    Membre occasionnel

  • Membres
  • Pip
  • 121 messages
  • Gender:Male
  • Location:Belgique
  • Interests:Robotique, électronique, embarqué, informatique, ...

Posté 31 août 2020 - 04:39


const int output = 13;
const int input = 2;
const double dephasage = 2.0;

int sts = HIGH;
int done = 1;
unsigned long delta = 4;
unsigned long delta_new = 4;
unsigned long current_mu = 0;

void setup() {
  // set the pins
  pinMode(output,OUTPUT);
  pinMode(input, INPUT);
}

void loop() {
  // get the time and value of input pin
  unsigned long mu = micros();
  int val = digitalRead(input);

  // Get the rising edge
  if(val && sts == LOW){
    current_mu = mu;
    sts = HIGH; 
    done = 1;
  }
  
  // Get the falling edge
  if (!val && sts == HIGH){
    delta_new = (mu - current_mu)*dephasage/180.0;
    current_mu = mu;
    sts = LOW;
    done = 1;
  }

  // Check after the delta
  if(mu > current_mu + delta && done == 1){
    digitalWrite(output, sts);
    done = 0;
    if(sts == LOW){
      delta = delta_new;
    }
  }
}

J'ai vite fais écris un petit truc. J'ai relu mais pas testé vu que pas de matos dispo. Donc le but c'est de trouver les rising edges et fallings edge et donc connaitre ta période et pouvoir calculer ton déphasage et l'appiquer.



#55 Rhum07

Rhum07

    Nouveau membre

  • Membres
  • 28 messages
  • Gender:Male
  • Location:Lyon France

Posté 01 septembre 2020 - 01:08

J'ai déjà effectué tous mes relevés aux différentes fréquences. D'après mes recherches, l'arduino ne peut pas traiter les signaux alternatifs. Auriez vous une autre solution ?

#56 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 8 899 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 01 septembre 2020 - 01:57

Je pense qu'il faut découper ton problème en plusieurs ... 

là tout de suite je ne connais pas de moyens de faire directement ce que tu cherches à faire mais on peux surement trouver une alternative ... 

Il te faut 
a ) savoir mesurer la fréquence de ton signal d'entrée avec ton arduino
b ) savoir piloter ta bobine avec ton arduino 

c ) mettre le déphasage souhaité

Je ne suis pas sûr que tu ais besoin de prendre en compte le caractère alternatif de ton signal pour mesurer la fréquence ... 

Reste à voir comment piloter ta bobine avec une arduino... Un transistor pour le signal de commande voir passer par un driver de moteur ...


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 

 

Les réalisations de Mike118  

 

 

 


#57 Rhum07

Rhum07

    Nouveau membre

  • Membres
  • 28 messages
  • Gender:Male
  • Location:Lyon France

Posté 01 septembre 2020 - 03:29

Je pense que ma bobine (thyristor) est commandé par la tension négative. Donc l'idée du driver moteur qui inverse les polarités est peut être la bonne. Mais peut il le faire à ces fréquences. Peut tu m'aider un peu plus pour "il te faut a), b ) et c). Merci d'avance

#58 Rhum07

Rhum07

    Nouveau membre

  • Membres
  • 28 messages
  • Gender:Male
  • Location:Lyon France

Posté 01 septembre 2020 - 03:38

Désolé, mais je n'ai pas bien saisie la mise en application du code de ludovic.

#59 Mike118

Mike118

    Staff Robot Maker

  • Administrateur
  • PipPipPipPipPip
  • 8 899 messages
  • Gender:Male
  • Location:Anglet
  • Interests:Robotique, Entrepreneuriat, Innovation, Programmation, Résolution de problème, Recherche de solutions, Mécanique, Electronique, Créer, Concevoir

Posté 01 septembre 2020 - 03:56

Commençons par l'étape A ..

 

 

Voila ce que j'obtiens avec le code de Mike. Jaune signal Original sur PIN 3, Vert sortie sur PIN 5.

Lors de la connexion au Nano le signal Original perd son négatif et en sortie le signal est doublé. 

 

D'après ce message que tu as posté plus tôt tu peux brancher le capteur sur l'arduino. 
Donc à partir de là tu peux mesurer la fréquence de ton signal. 

tu peux lire cet ouvrage : https://www.robot-ma...avec-le-timer1/  ( revenir éventuellement quelque page en arrière pour bien comprendre la base ... ) 

 


Si mon commentaire vous a plus laissez nous un avis  !  :thank_you:

Nouveau sur Robot Maker ? 

Jetez un oeil aux blogs, aux tutoriels, aux ouvrages, au robotscope  aux articles,  à la boutique  et aux différents services disponible !
En attendant qu'une bibliothèque de fichiers 3D soit mise en place n'hésitez pas à demander si vous avez besoin du fichier 3D d'un des produits de la boutique... On l'a peut être ! 

 

Les réalisations de Mike118  

 

 

 


#60 Rhum07

Rhum07

    Nouveau membre

  • Membres
  • 28 messages
  • Gender:Male
  • Location:Lyon France

Posté 01 septembre 2020 - 06:33

 A, je louche avec toute cette lecteur mais OK pour A.






0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users