Signal PWM avec 16F84 et pont en H L293D
Répondre à la discussion
Affichage des résultats 1 à 29 sur 29

Signal PWM avec 16F84 et pont en H L293D



  1. #1
    bypbop

    Signal PWM avec 16F84 et pont en H L293D


    ------

    Bonjour je debute dans la programmation du 16F84 j'ai realiser un premier montage à l'aide des membres du forum pour faire clignoter un led ca fonctionne bien maintenant je voudrais faire tourner un moteur CC via un pont en H le L293D. Pour le schéma je pense que ca va, je vais utiliser pour mes test seulement 1 pont en H sur les 2 que comporte le l293D.


    La broche 1 indique le sens et doit etre relier au PIC
    la broche 3 et 4 sont à relier au moteur CC
    la 4, 5, 13 et 12 sont à relier à la masse
    la 8 et la 16 sont à relier au + 5V

    la broche 2 et 7 le signal pwm à relier au pic je pense à confirmer


    Voila ma question dans un premier temps comment envoyer un signal pwm de maniere simple avec le pic 16F84 dans le but de faire tourner dans un premier temps le moteur ?

    J'utilise mikroC pour la partie programmation.


    Cordialement,
    bypbop

    -----

  2. #2
    invite7a49d0d5

    Cool Re : Signal PWM avec 16F84 et pont en H L293D

    Salut Bypbop,

    pour génerer un signal pwm avec un 16F84, je fais comme ça...
    exemple, en "pseudo-code"...génére un signal sur PortB.1...

    MonPWM:
    PortB.1=1
    Delay_us(50)
    PortB.1=0
    Delay_us(50)
    goto MonPWM

    va génerer un signal à 10Khz, ayant un "Duty-Cycle" de 50/50...

    MonPWM:
    PortB.1=1
    Delay_us(10)
    PortB.1=0
    Delay_us(90)
    goto MonPWM

    va génerer un signal à 10Khz, ayant un "Duty-Cycle" de 10/90...

    MonPWM:
    PortB.1=1
    Delay_us(95)
    PortB.1=0
    Delay_us(5)
    goto MonPWM

    va génerer un signal à 10Khz, ayant un "Duty-Cycle" de 95/5...

    voili voilou ;O]
    bonn'aprém' à tous,
    vede
    ;O]

  3. #3
    bypbop

    Re : Signal PWM avec 16F84 et pont en H L293D

    Bonjour vede, je comprend mieux pour le principe c'est du basic ce bout de code ?

    le plus simple pour programmer c'est de le faire en basic ou en C ?
    moi j'ai utilisé mikroC jusqua present.

    ca donne ca en C ?

    void main()
    {
    PORTB.1 = 0 ;
    PORTB.2 = 255 ;

    while(1)
    {
    PORTB.1 = 255 ;
    Delay_us(50) ;
    PORTB.1 = 0 ;
    Delay_us(50) ;
    }
    }

    alors je m'explique le port B borne 2 est à 5V pour le enable du L293D et la borne 1 genere le pwm

    voila est ce que je suis bon la ?


    Cordialement,
    bypbop

  4. #4
    invite7a49d0d5

    Cool Re : Signal PWM avec 16F84 et pont en H L293D

    Hi,

    MikroC ou MikroBasic, c'est kif-kif ;O]
    enfin le code est trés facilement "transposable"...

    pour ton code, je mettrais:
    PORTB.2 = 1 ;
    et non
    PORTB.2 = 255 ;

    255, c'est quand tu commandes tout le port B,
    exemple : PortB = 255 (mets les 8 sorties à 1)...
    là on ne commande qu'une sortie du PortB (la 2)...

    sinon ça parait ok...

    avec 50/50, tu généres un signal de puissance moyenne...
    idéalement, on utilise style des variables pour les temporisations
    en micro secondes... afin de faire varier le "duty cycle" facilement...
    et donc la puissance en sortie du PIC/ entrée du moteur...

    enfin fait déjà des essais comme ça...
    puis aprés avec des autres valeurs de temporisation...
    style 10/90.... puis 95/5... etc... afin de te rendre compte
    de l'incidence sur la vitesse de rotation de ton moteur...

    vede
    ;O]

  5. A voir en vidéo sur Futura
  6. #5
    invite7a49d0d5

    Re : Signal PWM avec 16F84 et pont en H L293D

    ps : idem pour PortB.1=1 ... et non PortB.1=255...

  7. #6
    bypbop

    Re : Signal PWM avec 16F84 et pont en H L293D

    ok je vais faire plusieurs test pour voir ce que ca donne sinon pour le pont en H

    pour le signal pwm je dois le mettre sur la borne input 1 ou 2 du l293D et c'est la borne qui recoit le signal PWM qui
    determine le sens.

    sinon le reste du montage :

    la borne 1 à + 5V
    la borne 2 et 7 PWM venant du pic sens avant et sens arriere
    la borne 3 et 6 au moteur CC
    la borne 8 et 16 à +5V
    la borne 4, 5, 12, 13 à la masse

    ce qui veut dire qu'il faut 2 sortie sur le pic pour inverser le sens automatiquement je pense ?

    Voila est ce que le branchement est correct ?

    Cordialement,
    bypbop

  8. #7
    Qristoff
    Animateur Électronique

    Re : Signal PWM avec 16F84 et pont en H L293D

    Bonsoir,
    le 16F84 commence à se faire vieux, voir trés vieux même..!
    La plupart des pics plus récent (et moins chers) comportent un module CCP qui gére et génére le signal PWM. Il suffit d'un registre pour la valeur de fréquence et un autre registre pour le rapport cyclique, y a pas plus simple !
    et surtout cela ne prend pas de temps machine...
    Tout existe, il suffit de le trouver...!

  9. #8
    bypbop

    Re : Signal PWM avec 16F84 et pont en H L293D

    oui je prends d'ailleurs le projet final ne sera pas sur ce pic mais je prefere me faire la main sur ce pic avt de commencer sur le 16f887 avec 2 pwm incorporé .

    Cordialement,
    bypbop

  10. #9
    Qristoff
    Animateur Électronique

    Re : Signal PWM avec 16F84 et pont en H L293D

    à part que ce n'est pas la même technique de programmation, donc je ne vois pas le gain de s'avancer sur un F84... mais bon
    Tout existe, il suffit de le trouver...!

  11. #10
    invite7a49d0d5

    Cool Re : Signal PWM avec 16F84 et pont en H L293D

    Citation Envoyé par Qristoff Voir le message
    Bonsoir,
    le 16F84 commence à se faire vieux, voir trés vieux même..!
    La plupart des pics plus récent (et moins chers) comportent un module CCP qui gére et génére le signal PWM. Il suffit d'un registre pour la valeur de fréquence et un autre registre pour le rapport cyclique, y a pas plus simple !
    et surtout cela ne prend pas de temps machine...
    Bonsoir à tous

    > 2 registres pour le Duty Cycle, car sur 10bits sur les PICS...

    vede
    ;O]

    ps : mais c'est vrai qu'il serait avantageux de se faire la main
    sur les modules CCP-PWM des pics... par exemple sur un 16F88...
    qui intégre en plus un ADC... permettant facilement, via un potard,
    de faire varier ce "duty cycle"...

    encore que... générer soi même le PWM est trés instructif...
    pour qui n'a même aucune notion du phénoméne...

    re ps : Bypbop, je peux pas beaucoup t'aider sur le pont H,
    ne connaissant que trés vaguement le principe...

  12. #11
    bypbop

    Re : Signal PWM avec 16F84 et pont en H L293D

    Promis je vais passer bientot sur le 16f88
    Est ce que qq'u peut me confirmer pour le branchement du l293D

    Je voudrais savoir si je dois brancher 2 sorties du pic pour les deux entrees du l293D pour chaque sens et si le reste du montage est OK cf (un peu plus haut)

    Cordialement,
    bypbop

  13. #12
    bypbop

    Re : Signal PWM avec 16F84 et pont en H L293D

    Bonjour à tous

    Voila je mets ce bout de code car il fonctionne avec un 16F84 et un pont en H L293D.

    void main() {
    PORTB = 0 ;
    TRISB = 0 ;

    PORTB.B1 = 0 ;

    while(1)
    {
    PORTB.B1 = 1 ;
    Delay_us(50) ;
    PORTB.B1 = 0 ;
    Delay_us(50) ;
    }
    }

    voila maintenant on va essayer de faire une fonction pour changer de sens.

    Cordialement,
    bypbop

  14. #13
    bypbop

    Re : Signal PWM avec 16F84 et pont en H L293D

    Par contre la ca ne fonctionne plus ?


    void Avancer();
    {
    PORTB.B1 = 1 ;
    Delay_us(50) ;
    PORTB.B1 = 0 ;
    Delay_us(50) ;
    }
    void Reculer ();
    {
    PORTB.B2 = 1 ;
    Delay_us(50) ;
    PORTB.B2 = 0 ;
    Delay_us(50) ;
    }

    void main() {
    PORTB = 0 ;
    TRISB = 0 ;
    PORTB.B1 = 0 ;
    PORTB.B2 = 0 ;

    while(1)
    {
    Avancer();
    Delay_ms(3000);
    Reculer();
    }
    }
    Je n'arrive pas à contruire le .hex avec MiKroC pourquoi cela ?

    Cordialement,
    bypbop

  15. #14
    invite7a49d0d5

    Re : Signal PWM avec 16F84 et pont en H L293D

    Bonsoir Bypbop,

    peut-être le point virgule à enlever sur ces lignes,

    void Avancer();
    et
    void Reculer ();

    vede
    ;O]

  16. #15
    bypbop

    Re : Signal PWM avec 16F84 et pont en H L293D

    ouppsss j'ai pas fait attention ca compile mais je ne pourrais tester que demain
    sur le circuit sinon le reste du code te parait coherent ?
    Je me demande si il ne faut pas une boucle dans la fonction reculer et avancer pour generer le pwm en permanence dans la fonction.

    sinon j'ai un petit tour du coté du rs232 et du pic16f84 apparement il faut un max232 pour communiquer c'est bien cela ?

    Merci pour ton aide précieuse
    Cordialement,
    bypbop

  17. #16
    invite7a49d0d5

    Cool Re : Signal PWM avec 16F84 et pont en H L293D

    Hi,

    en effet, il faudrait boucler dans les fonctions...
    le temps que tu veux que ça recule ou avance...
    car là ça fonctionnera pas...

    ça va avancer pendant 50us...
    attendre 3s...
    reculer pendant 50us...
    et recommencer...

    faire style (exemple pour avancer)
    Code:
    var i as word;
    void avance() 
    {
    for i = 0 to 10000
      PORTB.B1 = 1 ;
      Delay_us(50) ;
      PORTB.B1 = 0 ;
      Delay_us(50) ;
    next i
    }
    10000 à ajuster selon le temps désiré...
    avec 10000, ça devrait avancer pendant
    environ 10000x100us = 1seconde...

    aprés pour la communication RS232, on utilise
    en effet souvent un Max232, ou même un 233
    (plus récent et plus simple à cabler)...
    pour info les Max23x sont dispos en samples
    (echantillons gratuits) sur le site du constructeur (Maxim)...

    un de mes exemples d'utilisation d'un 233 avec un PIC :
    http://vede.free.fr/electronique/ds18b20/16F88/ds232/

    vede
    ;O]

  18. #17
    invite7a49d0d5

    Re : Signal PWM avec 16F84 et pont en H L293D

    ps : un autre exemple d'utilisation d'un MAX233:
    http://vede.free.fr/electronique/16f88/can/

  19. #18
    bypbop

    Re : Signal PWM avec 16F84 et pont en H L293D

    Merci je vais m'en inspirer pour la partie rs232 pour la boucle je me disais bien mais peut on generer le signal jusqu au changement de fonction. ( ne pas indiquer une fin dans la boucle )

    Cordialement,
    bypbop

  20. #19
    invite7a49d0d5

    Cool Re : Signal PWM avec 16F84 et pont en H L293D

    Citation Envoyé par bypbop Voir le message
    Merci je vais m'en inspirer pour la partie rs232 pour la boucle je me disais bien mais peut on generer le signal jusqu au changement de fonction. ( ne pas indiquer une fin dans la boucle )

    Cordialement,
    bypbop
    Hi,

    oui c'est possible... notamment en commençant par
    créer une variable "sens"... et dans la "boucle infinie"...
    (while 1), un test du genre:
    Code:
    var i as word
    var sens as byte
    
    while 1
    if sens=1 then avancer() else reculer() end if
    i = i + 1
    if i > 10000 
     sens =  not sens ''(inverse le sens)
     delay(3000)
     i=0
    end if
    wend
    et pour avancer, et reculer le code
    Code:
    void Avancer()
    {
    PORTB.B1 = 1 ;
    Delay_us(50) ;
    PORTB.B1 = 0 ;
    Delay_us(50) ;
    }
    
    void Reculer ();
    {
    PORTB.B2 = 1 ;
    Delay_us(50) ;
    PORTB.B2 = 0 ;
    Delay_us(50) ;
    }
    voili, voilou,
    vede
    ;O]

  21. #20
    bypbop

    Re : Signal PWM avec 16F84 et pont en H L293D

    Bonjour vede je me suis mis sur le 16F88 ce jour,

    j'ai refais le test avec la led pour savoir si mon pcb101 (programmateur) fonctionne avec apparement oui ca passe sans probleme.

    Mais le seul probleme c quel ne clignote plus alors du coup j'ai fais ce test


    je testé un port et ensuite l'autre j'ai fait un prog pour b1 chargé ca s'allument sur B1 et ensuite un prog pour b2 et ca s'allume bien sur B2 mais ca ne clignote pas ...


    void main()
    {
    PORTB = 0 ;
    TRISB = 0 ;

    while(1)
    {
    PORTB.B2 = 1 ;
    Delay_ms(1000) ;
    PORTB.B2 = 0 ;
    Delay_ms(1000) ;
    }
    }
    Je ne comprends plus la à l'aide

    Cordialement,
    bypbop

  22. #21
    bypbop

    Re : Signal PWM avec 16F84 et pont en H L293D

    ps j'ai fais le mm montage que sur ton site ; http://vede.free.fr/electronique/16f88/ mise à part que j'ai mis une resistance 1ko sur la borne 4

    Cordialement,
    bypbop

  23. #22
    invite7a49d0d5

    Cool Re : Signal PWM avec 16F84 et pont en H L293D

    Bonsoir Bypbop,

    >je testé un port et ensuite l'autre j'ai fait un prog pour b1 chargé ca s'allument sur >B1 et ensuite un prog pour b2 et ca s'allume bien sur B2 imais ca ne clignote pas ...

    en effet, c'est trés bizarre...
    envoie le code complet du programme...
    parce que là... je ne peux t'aider...

    vede
    ;O]

  24. #23
    bypbop

    Re : Signal PWM avec 16F84 et pont en H L293D

    oui trés bizarre ce 16F88

    alors le prog sur mikroC

    void main()
    {
    PORTB = 0 ;
    TRISB = 0 ;

    while(1)
    {
    PORTB.B2 = 1 ;
    Delay_ms(1000) ;
    PORTB.B2 = 0 ;
    Delay_ms(1000) ;
    }
    }
    Le .hex
    :020000000328D3
    :10000600831603139B01831286018 31686018312CE
    :1000160006150B30FB002630FC005 D30FD00FD0BA5
    :100026001228FC0B1228FB0B12280 00000000611F8
    :100036000B30FB002630FC005D30F D00FD0B212857
    :10004600FC0B2128FB0B212800000 0000A282A2887
    :04400E006A3F030002
    :00000001FF

    Merci bcp,
    bypbop

  25. #24
    bypbop

    Re : Signal PWM avec 16F84 et pont en H L293D

    Ps Vede : je vais faire bientot ma commande sur farnell je ne trouve pas les connecteur cnx dont tu me parlais peux tu m'indiquer ou il se trouve ?
    Je cherche aussi une petite plaque d'essai à souder au pas de 2,54 simple face si possible de moins de 10cm x 10 cm

    Un grand Merci,
    bypbop

  26. #25
    invite7a49d0d5

    Cool Re : Signal PWM avec 16F84 et pont en H L293D

    Hi,

    d'abords pour le programme, comme il parait "impecc", je pense que
    c'est au niveau de la configuration des fusibles ou de l'initialisation qu'il
    reste un bug...

    pour les fusibles : désactiver tout (WatchDog, MCLR, POR, etc...)
    et qu'est ce que tu choisis comme mode d'oscillateur?
    HS? avec un quartz? ou INTRC_IO?

    pour l'initialisation correcte du PIC : il faut désactiver le convertisseur
    Analogique Numérique, en ajoutant la ligne "ANSEL = b00000000" ...
    au tout début du programme... quand on ne l'utilise pas... comme ici...
    et bien mettre tout le PortB en sortie, avec "PortB = b00000000"...

    essaye déjà ça...

    pour Farnell:

    -je pense que je parlais de cnx appelées "Barettes Femelles Sécables"...

    -pour la platine d'essai, tu auras du mal à trouver une plus petite que
    10x10cm... et aprés ça sera à toi d'en découper un morceau... à la taille
    désirée... (ça se découpe facilement avec une simple scie à métaux)...
    car c'est du "plastique"... et tu gardes le reste de la plaque pour un futur montage...


    vede
    ;O]

  27. #26
    bypbop

    Re : Signal PWM avec 16F84 et pont en H L293D

    re Vede,
    alors en oscillateur je suis en HS

    Je te tiens au courant ...

    Cordialement,
    bypbop

  28. #27
    invite3bccc5e9

    Re : Signal PWM avec 16F84 et pont en H L293D

    Bonjour , je suis nouveau sur ce forum et j'auraisd'un coup de main pour programmer un pic 16f84. Je réalise un panneau solaire orienté par un servomoteur. Comment peut-on faire pour commander ce serveau avec le 16f84? Quel module utiliser pour créer le signal pwm nécessaire au servomoteur?
    merci
    Cordialement.

  29. #28
    bypbop

    Re : Signal PWM avec 16F84 et pont en H L293D

    Bonjour,
    Le 16F84 ne genere pas de PWM en natif pour cela il utiliser un 16F88 qui possède un module ccp pour generer un signal pwm.

    aprés il faut juste connecter le fil orange ou marron de ton servo moteur à la broche ou est generer le signal et je pense que le tour est joué.

    Cordialement,
    bypbop

  30. #29
    invite7a49d0d5

    Cool Re : Signal PWM avec 16F84 et pont en H L293D

    Citation Envoyé par bypbop Voir le message
    Bonjour,
    Le 16F84 ne genere pas de PWM en natif pour cela il utiliser un 16F88 qui possède un module ccp pour generer un signal pwm.

    aprés il faut juste connecter le fil orange ou marron de ton servo moteur à la broche ou est generer le signal et je pense que le tour est joué.

    Cordialement,
    bypbop
    Bonsoir à tous,

    et aezamlkj, Bienvenue sur les Forums FUTURA ;O]

    si le servo "consomme" plus de 5V/20mA, il faut insérer
    un petit transistor entre la sortie PWM et le moteur...

    vede
    ;O]

Discussions similaires

  1. Generer signal PWM precis avec un PIC
    Par invite5d1bc976 dans le forum Électronique
    Réponses: 9
    Dernier message: 06/04/2012, 19h05
  2. L293D et signal PWM
    Par bypbop dans le forum Électronique
    Réponses: 15
    Dernier message: 07/09/2009, 08h51
  3. Réponses: 57
    Dernier message: 15/05/2009, 12h05
  4. Besoin d'aide pour controler un moteur DC avec un PWM et un pont en H
    Par invite05f35fb7 dans le forum Électronique
    Réponses: 0
    Dernier message: 09/03/2009, 15h11
  5. Générer un signal carré 500hz avec flowcode sur pic 16f84
    Par invitef27eb29a dans le forum Électronique
    Réponses: 2
    Dernier message: 09/02/2007, 20h25
Découvrez nos comparatifs produits sur l'informatique et les technologies.