Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

Programmation Mega32 AVR Atmel pour commande d'un Servo de modélisme



  1. #1
    urbann

    Programmation Mega32 AVR Atmel pour commande d'un Servo de modélisme


    ------

    Bonjour,
    J'ai réalisé un petit montage pour commander un servo de modélisme sur la base d'un Mega32 programmé en Bascom
    L'appui sur un bouton fait avancer le servo l'autre bouton le fait reculer. L'appui sur les 2 boutons remet le servo en position milieu.
    J'utilise également un afficheur 2x16 LCD pour afficher la valeur des positions

    Le prog fonctionne mais il doit y avoir une erreur car au bout d'un petit moment le servo s'affole et se met en butée. Souvent le programme plante aussi.
    Je débute avec le Bascom.

    Voici le listing

    ' Servo

    $regfile = "M32def.dat"
    $crystal = 8000000

    'les variables

    Dim Vservo As Integer 'valeur de position du servo
    Dim Vaff As Integer ' valeur portée à l'afficheur après correction
    Dim Ligne1 As String * 16

    '' Configuration des ports ---------------------
    Config Porta = Input
    Porta = &B11111111
    Config Portb = Output 'port utilisé pour commande LCD et Servo
    Config Portd = Output 'le port utilisé pour l'afficheur LCD


    '' configuration du LCD--------------------------
    Config Lcdmode = Port
    Config Lcd = 16 * 2
    Config Lcdbus = 4
    Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portb.7 , Rs = Portb.5

    '' configuration Servo---------------------------
    Dim D As Byte

    Config Servos = 1 , Servo1 = Portb.0 , Reload = 10

    ' ********************Main****** *****************

    Cls
    Locate 1 , 5
    Lcd "bonjour.."
    Cursor Off
    Waitms 500
    Cls


    Enable Interrupts

    '' Main----------------------------
    Vservo = 90
    Ligne1 = "Position milieu"

    Do

    Do
    ' Test appui sur un bouton----------------------------------------

    If Pina.0 = 0 Then ' si bouton UP appuyé
    Vservo = Vservo + 1 ' incrémente la variable Valeur de +1
    Waitms 10
    Exit Do
    End If

    If Pina.2 = 0 Then ' si bouton Down appuyé
    Vservo = Vservo - 1 ' décrémente la variable Valeur de -1
    Waitms 10
    Exit Do
    End If

    If Pina.1 = 0 Then ' si bouton réglage appuyé
    Vservo = 90
    Waitms 10
    Exit Do
    End If
    Loop


    Vaff = Vservo - 90 'correction pour afficheur
    If Vaff = 0 Then Ligne1 = "Position NEUTRE"

    If Vaff > 0 Then Ligne1 = "Position OUVERT"

    If Vaff < 0 Then Ligne1 = "Position FERME"

    If Vaff > 50 Then
    Ligne1 = "Position MAXI"
    Vservo = 140
    End If

    If Vaff < -50 Then
    Ligne1 = "Position MINI"
    Vservo = 40
    End If


    Cls
    Locate 1 , 2
    Lcd Ligne1
    Locate 2 , 8
    Lcd Vaff ' affiche Valeur

    'Positionnement Servo
    Servo(1) = Vservo

    Loop


    End


    Merci aux experts en Bascom de me donner votre avis et une piste car je patauge depuis longtemps sans avancer

    -----

  2. Publicité
  3. #2
    PIXEL

    Re : Programmation Mega32 AVR Atmel pour commande d'un Servo de modélisme

    si le programme fonctionne un moment , la cause peut être autre.

    NOTAMMENT un plantage du µ par une transitoire venant du moteur.

    vérifie tes alims , découplages , isolations , câblage, etc...

    j'ai souvent constaté que les "bons" en programmation traitent le hard avec mépris,
    lequel se charge de le leur rappeler parfois cruellement (le jour de la démo par exemple)
    Dernière modification par PIXEL ; 27/10/2012 à 10h10.

  4. #3
    ftorama

    Re : Programmation Mega32 AVR Atmel pour commande d'un Servo de modélisme

    +1 avec l'ami Pixel.

    J'ai vu des projets pro planter à cause de servomoteurs bas-de-gamme, des A2 Pro pour ne pas les citer. Une fois remplacés par des Futaba, plus de problèmes.

    En attendant, tu peux déjà ajouter des condos sur la ligne d'alim des servomoteurs. Si accessoirement, tu pouvais nous montrer ton schéma complet, on pourrait peut-être y lever quelques loups.
    Quand un homme a faim, mieux vaut lui aprendre à pecher que de lui donner un poisson.

  5. #4
    urbann

    Re : Programmation Mega32 AVR Atmel pour commande d'un Servo de modélisme

    Pas de problème je ne suis pas un "bon" en programmation.
    J'utilise une carte de développement pour le montage et une alim stabilisée de labo.

    Je pense plutot à un problème de programmation et plus précisément sur la gestion des interruptions que j'ai du mal à comprendre.

  6. A voir en vidéo sur Futura
  7. Comparatifs

    Gagnez du temps et de l'argent grâce à nos comparatifs de produits. Parmi nos sujets :
  8. #5
    PIXEL

    Re : Programmation Mega32 AVR Atmel pour commande d'un Servo de modélisme

    sépare donc alim de la carte et alim du moteur ,

    on verra après.

  9. #6
    JP93

    Re : Programmation Mega32 AVR Atmel pour commande d'un Servo de modélisme

    Bonjour,

    Un schéma?

  10. Publicité
  11. #7
    urbann

    Re : Programmation Mega32 AVR Atmel pour commande d'un Servo de modélisme

    Oui mais c'est du classique
    2012-10-27_12-52-07_504.jpg

  12. #8
    JP93

    Re : Programmation Mega32 AVR Atmel pour commande d'un Servo de modélisme

    Aucun condo ni sur l'alim, ni sur le circuit?!!!

  13. #9
    ftorama

    Re : Programmation Mega32 AVR Atmel pour commande d'un Servo de modélisme

    Les résistances en haut ne servent à rien, les AVR intègrent des pull-ups mais là n'est pas le problème. Il n'y a aucun condensateur sur ta carte, ne cherche pas plus loin.

    Il en faut au moins un de chaque côté du régulateur, voir la datasheet pour leur valeur. Il en faut ensuite un de 100nF sur le Vcc du micro et un sur le Vcc du LCD.

    Quant au servo, si c'est du low-cost comme je le disais au-dessus, il faut prévoir un chimique 10 à 100µF et un plastique 100nF, à affiner selon les résultats.
    Quand un homme a faim, mieux vaut lui aprendre à pecher que de lui donner un poisson.

  14. #10
    urbann

    Re : Programmation Mega32 AVR Atmel pour commande d'un Servo de modélisme

    Non mais je précise que je fais mes essais sur une carte de développement où tout est prévu (sans condos) et alimenté depuis une alim stabilisée.

  15. #11
    urbann

    Re : Programmation Mega32 AVR Atmel pour commande d'un Servo de modélisme

    Je vais suivre les conseils de FTORAMA. Je vous tiens au courant , merci

Discussions similaires

  1. Problème pour la programmation d'un microcontroleur atmel
    Par Geho dans le forum Électronique
    Réponses: 0
    Dernier message: 13/12/2011, 19h18
  2. commande d'un servo moteur
    Par pitchou03 dans le forum Électronique
    Réponses: 6
    Dernier message: 25/06/2011, 17h35
  3. Commande d'un servo
    Par rafdu0601 dans le forum Électronique
    Réponses: 9
    Dernier message: 09/08/2009, 19h51
  4. commande d'un servo
    Par invite14532198711 dans le forum Électronique
    Réponses: 11
    Dernier message: 24/09/2006, 17h13
  5. Commande d'un servo moteur
    Par CoD2 dans le forum Électronique
    Réponses: 8
    Dernier message: 18/03/2006, 18h06
Découvrez nos comparatifs produits sur l'informatique et les technologies.