PIC 18F + recuperer et afficher graphiquement valeur d'une entree analogique du

ericgollin Messages postés 6 Date d'inscription dimanche 9 novembre 2008 Statut Membre Dernière intervention 12 janvier 2009 - 28 déc. 2008 à 17:26
ericgollin Messages postés 6 Date d'inscription dimanche 9 novembre 2008 Statut Membre Dernière intervention 12 janvier 2009 - 28 déc. 2008 à 20:28
Bonjour,

je souhaiterais adapter un programme en Delphi qu j'ai trouvé sur ce site concernant le pic18F4550. j'aimerai pour ma part afficher la valeur présente à une entrée du PIC (cette entrée varie grace à un poteiomètre)  et l'afficher comme une barre de progression ou un VUmetre.
le programme dont je m'inspire propose d'allumer ou d'eteindre une LED representant l'etat des entrées. mais je ne sais pas comment faire l'adaptation.
une autre question concerne l'ajout d'un composant qui soit un potentiomètre.

merci pour votre aide
A voir également:

2 réponses

MOUSSAOUIAAZIZ Messages postés 48 Date d'inscription samedi 5 août 2006 Statut Membre Dernière intervention 9 novembre 2009
28 déc. 2008 à 18:59
Salut ;


Pour faire l’adaptation tu doit changer deux chose :


1 .Programme delphi (il existe une version en VB6 sur ce site)


2. Programme du Pic il est programme en PicBasic.


Et voici le programme du Pic que tu doit le changer :



DEFINE OSC 20 <?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>





USBBufferSizeMax    con 3 





USBBuffer           Var Byte[USBBufferSizeMax]





USBBufferCount      Var Byte





i                   Var Byte





tmp                 Var Byte






   
ADCON1= %00001111       ' forcer entrées digitales 



  






    TRISA = %11111111                    ' PORTA en entré



    TRISE = %11111111                    ' PORTE en entré



    TRISB = %00000000                    ' PORTB en sortie



    PORTB = 0



    TRISD = %00000000                    ' PORTD en sortie



    PORTD = 0      



' ************************************************************





usbinit ' initialisation USB...





ProgramStart:





    gosub DoUSBIn        ' Attendre une commande valide du PC



    ' ************************************************************



    ' * ECRITURE PORTB et PORTD                  $11             *



    ' * LECTURE PORTA et PORTE                   $22             *       



   
' ************************************************************   






    select case USBBuffer[0]






        case $11






            PORTD = USBBuffer[1]           






            PORTB = USBBuffer[2]






 







        case $22






           
tmp = PORTA



            tmp.6 = PORTE.0



            tmp.7 = PORTE.1



           






            USBBuffer[1] = tmp



            USBBuffer[2] = 0




            USBBuffer[3] = 0






            gosub DoUSBOut              '






    end select






 







    goto ProgramStart  





' ************************************************************




' * Reception de données venant du port USB                  *


DoUSBIn:



   USBBufferCount = USBBufferSizeMax             ' Taille du buffer



   USBService                                    ' Ouvrir/Maintenir le dialogue USB



   USBIn 1, USBBuffer, USBBufferCount, DoUSBIn   ' Recevoir les données



   Return


Votre question n’est pas claire,


Si tu m’expliques mieux ta question, je peux t’aider.  
0
ericgollin Messages postés 6 Date d'inscription dimanche 9 novembre 2008 Statut Membre Dernière intervention 12 janvier 2009
28 déc. 2008 à 20:28
Merci pour la réponse rapide,

ce que je veux faire, c'est utiliser  3 entrées du PIC en entrée analogique, les 5 autres en entrées digitales.
pour les entrées analogiques, je compte brancher des potentiomètres : c'est cette valeur que je veux récupérer et afficher sur le logiciel développé en DELPHI.

donc il faut changer des paramètres ici?
    ADCON1= %00001111       ' forcer entrées digitales 

     TRISA = %11111111                    ' PORTA en entré

    TRISE = %11111111                    ' PORTE en entré

    TRISB = %00000000                    ' PORTB en sortie

    PORTB = 0

    TRISD = %00000000                    ' PORTD en sortie

    PORTD = 0     

 mais comment avoir la valeur du potentiomètre qui change avec la valeur du potentiomètre?
Microchip propose un exemple.

j'ai fait une adaptation aussi pour que les 16 Leds de sortie soient vu comme des SpeddButton. ce que je voudrais faire, c'est que lorsque j'appuie sur le bouton, la valeur 0 ou 1 s'affiche selon que je sois en OFF ou ON.

merci d'avance
0
Rejoignez-nous