(Résolu)Code picaxe 20X2 vs 20M2

chimere322

Senior Member
Bonjour à tous (toutes),

j'ai retrouvé une ancienne revue Electronique Pratique N°363 sur l'initiation picaxe intitulé Picaxe à tout faire en format PDF.
Il est question d'une commande moteur en PWM à partir d'un picaxe 20X2 dont j'ai pu faire une capture d'écran du schéma ainsi que le
code que je vous joints. j'ai écrit le code sous PE6 et je vous le transmet afin de vérifier si il n'y a pas d'erreur dans la syntaxe.



Je ne connais pas les X2 car je n'ai que les M2. j'ai comparais les brochages mais je m'y perd un peu voir beaucoup.

En bref est t'il possible de télécharger ce code sur un M2?

Merci de m'avoir lu cordialement JC
 

Attachments

chimere322

Senior Member
Voici le code sous PE6 a partir d'une capture d'écran un peu flou. IL y a peut être des erreurs de syntaxe.
Rich (BB code):
  ***** DIRECTIVES
   #picaxe 20X2
   #no_data
   #terminal off
   
  ***** CONSTANTES
    symbol ARRET_D = 480
    symbol ARRET_G = 540
    symbol E_ANA = 4
    symbol S_PWM = C.5
    symbol LED = B.7
    
  ***** VARIABLES
    symbol VAL_ANA = w0
    symbol VITESSE = w1
    
  ***** BOUCLE PRINCIPALE
    setfreq m8
    output C.3
    output C.4
    do
      readadc10 E_ANA. VAL_ANA
      select VAL_ANA
      case ARRET_D to ARRET_G
            high LED
            low C.3
            low C.4
            VITESSE = 0
case 0 to ARRET_D
      low LED
      low C.3
      high C.4
      VITESSE = ARRET_D - VAL_ANA * 21 / 10 MAX 1023
case ARRET_G to 1023
      low LED
      high C.3
      low C.4
      VITESSE = VAL_ANA - ARRET_G * 21 / 10 MAX 1023
endselect
pwmout pwmdiv4, S_PWM, 255, VITESSE
loop
       
      
 

MGU

Senior Member
Bonjour,
Je ne vois aucune raison d'utiliser un 20X2 ici,un 08M2 suffirait. Mais si tu as des 20M2, voici un code corrigé de quelques fautes de frappes.
Il n'y a pas d’intérêt à placer le pwmout dans la boucle, il est, je pense, préférable de le placer avant, avec un pwmduty dans la boucle.
Code:
;***** DIRECTIVES
   #picaxe 20M2
   #no_data
   #terminal off
 
  ;***** CONSTANTES
    symbol ARRET_D = 480
    symbol ARRET_G = 540
    symbol E_ANA = 4
    symbol S_PWM = C.5
    symbol LED = B.7
  
  ;***** VARIABLES
    symbol VAL_ANA = w0
    symbol VITESSE = w1 
  ;***** BOUCLE PRINCIPALE 
    setfreq m8
    pwmout pwmdiv4, S_PWM, 255, VITESSE
    output C.3
    output C.4
    do
      readadc10 E_ANA, VAL_ANA
      select VAL_ANA
      case ARRET_D to ARRET_G
            high LED
            low C.3
            low C.4
            VITESSE = 0
case 0 to ARRET_D
      low LED
      low C.3
      high C.4
      VITESSE = ARRET_D - VAL_ANA * 21 / 10 MAX 1023
case ARRET_G to 1023
      low LED
      high C.3
      low C.4
      VITESSE = VAL_ANA - ARRET_G * 21 / 10 MAX 1023
endselect
PWMduty S_PWM,vitesse
loop
MM
 
Last edited:

MGU

Senior Member
Ok, copier-coller "pour le forum"
Rich (BB code):
   ;***** CONSTANTES
   symbol ARRET_D = 480
   symbol ARRET_G = 540
   symbol E_ANA = B.2
   symbol S_PWM = C.5
   symbol LED = B.7

;***** VARIABLES
   symbol VAL_ANA = w0
   symbol VITESSE = w1 
;***** BOUCLE PRINCIPALE 
   setfreq m8
   pwmout pwmdiv4, S_PWM, 255, VITESSE    
   do
      readadc10 E_ANA, VAL_ANA
      select VAL_ANA
      case ARRET_D to ARRET_G
            high LED
            low C.3
            low C.4
            VITESSE = 0
      case 0 to ARRET_D
            low LED
            low C.3
            high C.4
            VITESSE = ARRET_D - VAL_ANA * 21 / 10 MAX 1023
      case ARRET_G to 1023
            low LED
            high C.3
            low C.4
            VITESSE = VAL_ANA - ARRET_G * 21 / 10 MAX 1023
      endselect
      PWMduty S_PWM,vitesse
   loop
MM
 

chimere322

Senior Member
Bonjour à tous, et un grand merci à toi Michel ainsi qu'a PieM qui a découvert un loup dans le code au sujet du canal 4.
Effectivement il y avait des fautes de frappe et des oublies dans ce code.
Tu as raison pour le pwmout et tu as encore raison pour un petit 08M2.
Dès que j'ai un peu de temps devant moi, je vais faire un montage sur table et tester.
Si ok alors je passerai a la version 08M2 car c'est dommage de gaspiller un 20M2.
Je vous tiens au courant.
JC
 

chimere322

Senior Member
Bonjour à tous,
montage sous 20 M2, le code fonctionne a la perfection avec un moteur a balai sous 12V.
Sous 08M2 il manque une information capital car il manque une pin de sortie qui indique l'état de la led en position arrêt.
J'ai donc fait un essai avec 14M2 et pas de souci.
 
Top