IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Embarqué Discussion :

Moteur et PIC18F4620


Sujet :

Embarqué

  1. #1
    Membre à l'essai
    Homme Profil pro
    Etudiant
    Inscrit en
    Avril 2014
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 37
    Points : 24
    Points
    24
    Par défaut Moteur et PIC18F4620
    Salut, je dois programmer un 18F4620, mon objectif et de faire tourner un moteur grâce au Bit D0, D1 et D2 mais plus important je dois créer un programme qui arrêtera le moteur en cas de courant trop élevé. Je dois convertir en analogique la tension qui passera par le moteur puis la comparer au courant nominal. Si celle ci est trop élevé je dois couper l'alimentation du moteur.
    Cependant je n'arrive pas a trouver sur le net n'étant pas costaud en anglais le courant et la tension max et min au bit D0 D1 et D2 quelqu'un pourrez m'aider svp ?
    Merci.

  2. #2
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 617
    Points : 56 722
    Points
    56 722
    Billets dans le blog
    40
    Par défaut
    salut,

    c'est quoi comme type de moteur ? Moteur pas à pas ? Moteur CC ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Etudiant
    Inscrit en
    Avril 2014
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 37
    Points : 24
    Points
    24
    Par défaut
    Bonjour merci de ta réponse, c'est un moteur DC. Connecter à un circuit intégré le L6201. Je dois le faire tourner dans les 2 sens et arrêter le moteur en cas de sur-courant

  4. #4
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 617
    Points : 56 722
    Points
    56 722
    Billets dans le blog
    40
    Par défaut
    Bonjour,

    une résistance en série entre le moteur et la masse peut suffire. Si la résistance est faible elle ne perturbe pas le fonctionnement du moteur et la mesure de la tension aux bornes donne une image de l'intensité.

    Sinon tu as aussi la solution avec un capteur de courant continu (à effet Hall) qui fournit une tension analogique en fonction de l'intensité qui traverse le circuit.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Etudiant
    Inscrit en
    Avril 2014
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 37
    Points : 24
    Points
    24
    Par défaut
    Oui tu as raison mais je le savais déjà la résistance Sense est donné dans mon projet Par contre je trouve sa ambiguë si tension = courant alors pourquoi quand j'alimente mon moteur en 7v j'ai 0.33A surement une question béte mais sa me dérange. Puis je dois comparer le courant obtenu au courant nominal afin de couper le moteur en cas de surcourant il faut pour cela que j'utilise un analogique / numerique mais je m'embrouille un peux il faut que je convertisse le courant en numérique ? si oui, si le courant max et dison 1A par exemple donc 1A = 255(bit) sous flowcode il faudrait dire "si courant > 255" ; "moteur off" cependant on ne peux pas aller au dessus de 255 bits. Voila je me pose plein de question et je ne trouve aucune réponses si tu pouvez m'éclaisir sur le sujet s'il te plait se serai super !

  6. #6
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 617
    Points : 56 722
    Points
    56 722
    Billets dans le blog
    40
    Par défaut
    Citation Envoyé par Romaiiin Voir le message
    Par contre je trouve sa ambiguë si tension = courant alors pourquoi quand j'alimente mon moteur en 7v j'ai 0.33A surement une question béte mais sa me dérange.
    oula, ne mélange pas la tension d'alimentation du moteur avec la tension aux bornes de ta résistance. La tension aux bornes de ta résistance te donne une image de l'intensité qui traverse le moteur (Urésistance= R x Imoteur). C'est Urésistance qu'il faut mesurer et tu coupes ton moteur lorsque Urésistance>R x Imax.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Etudiant
    Inscrit en
    Avril 2014
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 37
    Points : 24
    Points
    24
    Par défaut
    Et donc pour trouver le courant dans RSense il faudrait mesurer la tension à ses borne grâce à un voltemétre par exemple ? ainsi on à Imax à ne pas dépasser.
    Et sur flowcode il faut que je représente Imax en valeur Numerique à l'aide de l'ADC, je peux lui donner n'importe quelle valeur ? 100, 130, 150 .. ?
    Merci pour ton aide !

  8. #8
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 617
    Points : 56 722
    Points
    56 722
    Billets dans le blog
    40
    Par défaut
    Si R=1 Ohm et Imax= 1 A (valeurs au pif pour simplifier les calculs), il faut couper le moteur lorsque Urésistance= 1 x 1 = 1Volt

    Avec les caractéristiques de l'ADC : Ureference=5V et résolution=10bits,

    quantum=5/210=5/1024

    N=1Volt / quantum = 205

    donc sous Flowcode si N>=205==>je coupe le moteur

    à voir avec tes valeurs, ici également si ça peut t'inspirer.

    Selon tes valeurs, il faudra peut-être d'abord filtrer&amplifier ta tension.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Etudiant
    Inscrit en
    Avril 2014
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 37
    Points : 24
    Points
    24
    Par défaut
    Et comment savoir quel est ma résolution ?

  10. #10
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 617
    Points : 56 722
    Points
    56 722
    Billets dans le blog
    40
    Par défaut
    Concernant la résolution de ton PIC, l'ami nous répond ceci :

    Analog Features
    10-bit ADC, 12 channels, 100K samples per second

  11. #11
    Membre à l'essai
    Homme Profil pro
    Etudiant
    Inscrit en
    Avril 2014
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 37
    Points : 24
    Points
    24
    Par défaut
    Ah oui merci

    Le quantum représente se que vaut 1V en nominal sur 10 Bit c'est bien sa ?
    Pour 7v de référence par exemple, 1V aurait une valeur nominal sur 10 bit plus faible qu'avec 5v c'est bien sa ?
    Et donc se Ureference est super important, il représente la tension d'alimentation du moteur c'est bien sa ?
    Mais si je change cette tension de référence, le quantum n'aura plus la même valeur, il faudrait donc faire un programme pour qu'importe la tension affecter la valeur nominal de Umax à ne pas dépasser soit respecté ?
    C'est comme sa que je vois la chose, est ce correct ?

    Merci pour ta patience !

  12. #12
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 617
    Points : 56 722
    Points
    56 722
    Billets dans le blog
    40
    Par défaut
    Citation Envoyé par Romaiiin Voir le message
    Et donc se Ureference est super important, il représente la tension d'alimentation du moteur c'est bien sa ?
    pas du tout, c'est une tension de référence disponible sur ta carte de prototypage je suppose (une e-blocks ?). Il y a de grandes chances que par défaut ce soit la tension d'alimentation du PIC (5 V ?). C'est à vérifier dans la doc de la carte et voir comment flowcode configure ça.

  13. #13
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 617
    Points : 56 722
    Points
    56 722
    Billets dans le blog
    40
    Par défaut
    Citation Envoyé par Romaiiin Voir le message
    Le quantum représente se que vaut 1V en nominal sur 10 Bit c'est bien sa ?
    Non plus

    Regarde le schéma du lien que je t'ai proposé:

    ici quantum=5V/23=0,625 V

    Si la tension analogique est entre 0 et 0,625V, l'ADC retourne N=0
    Si la tension analogique est entre 0,625 et 1,25V, l'ADC retourne N=1
    etc.

    avec 3 bits, pas terrible la résolution mais c'est pour expliquer...

  14. #14
    Membre à l'essai
    Homme Profil pro
    Etudiant
    Inscrit en
    Avril 2014
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 37
    Points : 24
    Points
    24
    Par défaut
    Aok
    La carte de prototypage t'entend par la une carte CPU ? j'ai vu des photos sur le net elle ressemble aux e-blocks oui. En cours le prof la alimenté la carte avec 2 tension une de environ 3v et une autre de 7.5v je crois, il me semble que sa doit être sa mon Ureférence 7.5v, qu'en penses tu ?

  15. #15
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 617
    Points : 56 722
    Points
    56 722
    Billets dans le blog
    40
    Par défaut
    C'est cette carte-là ?

  16. #16
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 617
    Points : 56 722
    Points
    56 722
    Billets dans le blog
    40
    Par défaut
    Dans Flowcode, dans la boîte de propriétés du composant ADC, tu as une option "Option_Vref" qui permet de définir la tension de référence. Lorsque tu choisis VDD, la tension de référence est celle d'alimentation du PIC, je dirais donc 5V.

  17. #17
    Membre à l'essai
    Homme Profil pro
    Etudiant
    Inscrit en
    Avril 2014
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 37
    Points : 24
    Points
    24
    Par défaut
    non je n'ai pas toute ses sorties vga. C'est la carte mére de la machine à café sur laquelle je travaille la voila en photos : Nom : numérisation0001.jpg
Affichages : 585
Taille : 914,1 Ko Nom : numérisation0002.jpg
Affichages : 448
Taille : 433,9 Ko

  18. #18
    Membre à l'essai
    Homme Profil pro
    Etudiant
    Inscrit en
    Avril 2014
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 37
    Points : 24
    Points
    24
    Par défaut
    Oui c'est bon j'ai compris le quantum en faite c'est :

    5v répartis sur 1024 bit donc on a environ 0.005v par bits ! On cherche donc le nombre de bit a associer pour 1 V il faut faire 1/0.005 et on trouve a peut pret 205 bits !!

    Voilà j'ai compris le principe du quantum je suis content

    Mais maintenant j'ai une autre question sur flowcode j'ai l'impression que l'ont est bloquer a 8 bits max le adc ne va pas au dessus des 255 bits, une idée pour réglé se probleme ?
    Mon flowcode fais 'importe quoi il m'affiche du 900 au milieu de la roulette et a la fin on a toujours du 255 alors que je veux du 1024, une idée ?!

  19. #19
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 617
    Points : 56 722
    Points
    56 722
    Billets dans le blog
    40
    Par défaut
    ok sur le principe, mais pour le "0.005v par bits", tu feras plaisir à ton prof en parlant du quantum à 0,005V

    Chouette, c'était donc une cafetière, what else...

    De mémoire, dans flowcode il faut utiliser la macro LireEntier() (et non LireOctet()) pour retourner un nombre en 16 bits (avec les 10 premiers bits significatifs donc).

  20. #20
    Membre à l'essai
    Homme Profil pro
    Etudiant
    Inscrit en
    Avril 2014
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 37
    Points : 24
    Points
    24
    Par défaut
    Alors j'ai fais "Lire comme Entier" je lui est associer une variable "a5" que j'ai par la suite représenter sur un afficher lcd. Je suis toujours bloquer à 255 et il me met des chiffres qui n'ont aucun sens du style "30" alors que je suis pret du "255" .. Je ne comprend pas sa me choque..
    Et impossible de faire le teste avec les led je suis limiter à 8 LED par ports, une idée ?

Discussions similaires

  1. Réponses: 27
    Dernier message: 25/08/2004, 22h30
  2. Moteur physique : comment l'implémenter ?
    Par haypo dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 17/12/2003, 12h56
  3. Moteur de recherche par date
    Par Prue dans le forum ASP
    Réponses: 17
    Dernier message: 27/08/2003, 16h07
  4. moteur de particules :Dessiner un point
    Par houssa dans le forum OpenGL
    Réponses: 2
    Dernier message: 25/06/2003, 22h13
  5. [Technique] Index, comment font les moteurs de recherche ?
    Par bat dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 25/10/2002, 15h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo