PIC 16F877 et acquisition des données sur PC
Répondre à la discussion
Affichage des résultats 1 à 12 sur 12

PIC 16F877 et acquisition des données sur PC



  1. #1
    microchess

    PIC 16F877 et acquisition des données sur PC


    ------

    Bonjour à tous!
    voilà! je suis entrain d'utiliser le CAN du PIC 16F877! Mon prof voudrait que je conçois 3 entrées analogiques et 3 sorties analogiques et que j'affiche les résultats sur mon PC.
    Alors moi personnellement, j'ai choisi le language delphi! et j'ai déja réussi à effectur la conversion mais à travers le port A0 ou A1 ou A2!
    Ma première question est que: comment convertir les données du port A successivement pour les afficher à la sorties à travers des Leds. CE que jne comprend pas c'est que je l'ai lit successivement ou bien? Et comment faire car mon code ci-dessous ne fonctionne pas comme je le veut!
    Code:
    unsigned int temp_res;
    
    void main() {
      ADCON1 = 0x80;  // Configure analog inputs and Vref
      TRISA  = 0xFF;  // PORTA is input
      TRISB  = 0x3F;  // Pins RB7, RB6 are outputs
      TRISD  = 0;     // PORTD is output
    
    
    
        temp_res = Adc_Read(0); // Get results of AD conversion lecture des données du port A0
        PORTD = temp_res;       // Send lower 8 bits to PORTD
        PORTB = temp_res >> 2;  // Send 2 most significant bits to RB7, RB6
    
    
        temp_res = Adc_Read(1); // Get results of AD conversion lecture des données du port A0
        PORTD = temp_res;       // Send lower 8 bits to PORTD
        PORTB = temp_res >> 2;  // Send 2 most significant bits to RB7, RB6
    
        temp_res = Adc_Read(2);// Get results of AD conversion lecture des données du port A0
        PORTD = temp_res;       // Send lower 8 bits to PORTD
        PORTB = temp_res >> 2;  // Send 2 most significant bits to RB7, RB6
    
    
    }
    Ensuite, comme j'utilise le PIC 16F877, j'imagine que je dois utiliser un RS232 or la communication doit se faire avec le port USB de mon ordinateur en utilisant un adapteur USB-RS232. Ce que jne comprend pas c'est comme faire?
    Je me suis documenté sur le sujet et là je n'ai vu que la communication USB-USB ou RS232-RS232! comment donc j'établi la communication? Des idées seront les bienvenues! Merci d'avance!

    -----

  2. #2
    futhier9178

    Re : PIC 16F877 et acquisition des données sur PC

    Bonjour,

    Pour la communication, je te donne une piste, tu dois faire un circuit d'adaptation.
    Les PICs ont des entrées sorties Tx/Rx donc utilise le MAX232 et un connecteur DB9.

  3. #3
    paulfjujo

    Re : PIC 16F877 et acquisition des données sur PC

    bonjour,



    Sans une bonne tempo entre chaque acquisition ADC,
    tu ne verras rien de bon sur les leds ...

    Un moyen simple pour transferer PIC <-> PC
    un petit modle bluetooth HC05 ou HC06 en mode SSP
    qui se connecte direct sur l'UART du PIC
    = liasion serielle transparente à 9600,8,N,1 par defaut ou plus
    par config du module BT (19200,38400..)

    et en face sur le PC une cle BlueTooth
    Interface PC via BlueSoleil et port serie virtuel
    ou autre logiciel pouvant gerer port virtuel
    pour pouvoir s'interfacer avec DELPHI Com

  4. #4
    microchess

    Re : PIC 16F877 et acquisition des données sur PC

    Merci beaucoup pour la réponse mais si je comprend bien ce que tu as dit! il vas me falloir un HC-05! donc la liaison USB-RS232 n'est pas interessant car vu que c'est un projet avec cahier de charge, je vais d'abord demandé à mon encadreur!
    Donc je pourrais facilement envoyer des données et recevoir des données venant du PIC sur mon ordi? c'est bien ça? et c'est aussi applicable avec mon 16F877?
    Et l'interface c'est moi qui le fait n'est ce pas? avec delphi Merci d'avance!

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

    Re : PIC 16F877 et acquisition des données sur PC

    et concernant le tempo! je croyais qu'il nécessitait que 20 micro seconde pour faire la conversion? alors qu'en faisant un tempo de 1 secondes, j'obtiens rien de bon! donc ça n'a rien à voir avec les interruptions? pour être sur!

  7. #6
    paulfjujo

    Re : PIC 16F877 et acquisition des données sur PC

    La tempo c'est entre les differentes acquisition, pas celle necessaire à la conversion de l'ADC

    Code:
        temp_res = Adc_Read(0); // Get results of AD conversion lecture des données du port A0
        PORTD = temp_res;       // Send lower 8 bits to PORTD
        PORTB = temp_res >> 2;  // Send 2 most significant bits to RB7, RB6
    
       Delay_ms(500);  // le temps de VOIR le resultat sur les leds
    
        temp_res = Adc_Read(1); // Get results of AD conversion lecture des données du port A0
        PORTD = temp_res;       // Send lower 8 bits to PORTD
        PORTB = temp_res >> 2;  // Send 2 most significant bits to RB7, RB6
    
       Delay_ms(500);  
    
        temp_res = Adc_Read(2);// Get results of AD conversion lecture des données du port A0
        PORTD = temp_res;       // Send lower 8 bits to PORTD
        PORTB = temp_res >> 2;  // Send 2 most significant bits to RB7, RB6
    
       Delay_ms(500);
    il vas me falloir un HC-05!
    ou similaire en fonctionalité...
    donc la liaison USB-RS232 n'est pas interessant
    je n'ai pas dis celà, c'est une autre alternative
    mais necessietra quand meme un convertisseur TTL/232 comme le MAX232
    ou interface 2Transistors ! facile et moins cher.

    et c'est aussi applicable avec mon 16F877?
    oui, il a bien un module UART.

    Et l'interface c'est moi qui le fait n'est ce pas? avec delphi
    ben oui, c'est pas moi...
    remarque : je l'ai deja fais mais en VB6
    cela revient à gerer un port COM (virtuel)

  8. #7
    RISC

    Re : PIC 16F877 et acquisition des données sur PC

    Salut Microchess,

    Le plus simple pour la communication PC c'est de suivre ton idée initiale.
    Tu utilises l'UART de ton PIC que tu connectes à circuit MCP2200 à coté qui fais la conversion serie <==> USB. Il faut donc un connecteur USB device type B ou mini B sur ta carte.
    L'autre possibilité si on te fourni un cable de conversion série <==> USB c'est d'utiliser un MAX232 connecté à ton UART et de mettre un connecteur série sur ta carte pour le cable de conversion externe

    a+

  9. #8
    microchess

    Re : PIC 16F877 et acquisition des données sur PC

    re Paulfjujo!
    j'ai essayé de compiler le code et je n'ai obtenu aucune erreur mais en testant avec mon! d'abord il ne m'affiche qu'un résultat, à savoir la première conversion et plus rien! les leds ne changent plus d'état! et lire c'est même en arrêtant ma simulation, ça continue de s'allumer jusqu'à ce que je change de composant! je ne comprend pas pourquoi?

  10. #9
    microchess

    Re : PIC 16F877 et acquisition des données sur PC

    Paulfjujo!
    Ton code fonctionne parfaitement, comme tu l'as dit , il faut choisir le bon tempo! c'est mon montage qui n'était pas correcte! Merci beaucoup de ton aide!

  11. #10
    microchess

    Re : PIC 16F877 et acquisition des données sur PC

    Slt Risc!
    Tu disais que! de mon but était possible et plus simple!
    j'ai lu quelques tutoriels sur internet mais je ne comprend pas bien comment adopté la liaison!
    Normalement, pour un port USB sur delphi, je dois comparer les VENDOR_ID et les Product_ID, n'est ce pas? alors que si j'utilise un RS232 côté carte, je ne pourrais pas effectué cela!
    Tu disais que je dois utiliser un USB de type B sur ma carte? Mais est ce que le PIC 16F877 que j'utilise offre cette possibilité?
    Toutes documentation ou site seront mes bienvenus! Merci d'avance!

  12. #11
    RISC

    Re : PIC 16F877 et acquisition des données sur PC

    Salut,
    Le PIC16F877 n'a pas l'USB donc tu peux seulement faire une conversion UART <==> USB avec une puce (MCP2200) ou un cable convertisseur externe.
    Cherches sur internet tu verras plein de schemas
    a+

  13. #12
    microchess

    Re : PIC 16F877 et acquisition des données sur PC

    Merci bcp pour tes conseils! je vais de ce pas me documenter là-dessus!
    Encore une petite questions! j'aimerai avoir des propositions pour la gestion de mes entrées et de mes sorties qui sont tous les deux au nombre s de quatre!
    D'abord pour la conversion des entrées, j'utilise des delay entre elles! mais pour les sorties alors? comment puis-créer 4 sorties différents tout en sachant que les données que j'obtiens sont des données numériques qu'il faut encore reconstituer pour obtenir leurs valeurs analogiques! Merci d'avance!

Discussions similaires

  1. Acquisition de données
    Par invite10202bbc dans le forum Électronique
    Réponses: 7
    Dernier message: 21/02/2011, 21h48
  2. acquisition de données
    Par invite29a90297 dans le forum Électronique
    Réponses: 4
    Dernier message: 16/04/2009, 08h32
  3. Acquisition des données sur PC via USB
    Par kskhaled dans le forum Électronique
    Réponses: 3
    Dernier message: 23/11/2008, 22h49
  4. Acquisition de données
    Par F1AFJ dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 24/01/2005, 08h25
  5. acquisition de données
    Par pybelsoeur dans le forum Électronique
    Réponses: 5
    Dernier message: 01/04/2004, 14h36
Découvrez nos comparatifs produits sur l'informatique et les technologies.