Communication infrarouge émetteur-récepteur ?
Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

Communication infrarouge émetteur-récepteur ?



  1. #1
    invite245fd70e

    Communication infrarouge émetteur-récepteur ?


    ------

    Salut )

    Je suis entrain de réaliser une liaison infrarouge dans le but de transmettre un seul caractère( 0,1 ,2,3,4,5,6,7,8,9) a partir de mon interface labview .la première liaison entre pc et premier pic est a travers rs232 j'ai choisis d'utiliser comme émetteur ( pic 16f628a et une LED infrarouge) et comme récepteur ( pic 16f877 et un tsop ) la liaison entre les 2 pic se fait a travers un rayonnement infrarouge donc je veux que mon caractère envoyé a partir de mon interface graphique soit récupérer dans le deuxième pic d'ou j'ai penser a faire un codage coté émetteur par exemple 1 sera module 0001
    2 sera module 0010 ect.. et d'autre coté je dois seulement faire le décodage..

    Code:
    unsigned char location=0; 
    void main() 
    { 
    UART1_Init(9600); 
    Delay_ms(100); 
    trisb=0b00011111; //portb sortie pwm 
    portb=0; 
    
    PWM1_Init(38000); 
    Pwm1_Set_Duty(255); 
    PWM1_Start(); 
    while(1) 
    { 
    if (UART1_Data_Ready()==1 ) 
    
    { location = UART1_Read(); 
    uart1_write(location); } 
    if (portb.f2==1) 
    
    
    if (location ='1') 
    { 
    PWM1_Set_Duty(0) ; 
    delay_ms(1020); 
    PWM1_Set_Duty(0) ; 
    delay_ms(1020); 
    PWM1_Set_Duty(0) ; 
    delay_ms(1020); 
    PWM1_Set_Duty(127) ; 
    delay_ms(1020); 
    PWM1_Stop(); 
    
    } 
    else if (location ='2') 
    { 
    PWM1_Set_Duty(0) ; 
    delay_us(1020); 
    PWM1_Set_Duty(0) ; 
    delay_us(1020); 
    PWM1_Set_Duty(127) ; 
    delay_us(1020); 
    PWM1_Set_Duty(0) ; 
    delay_us(1020); 
    PWM1_Stop(); 
    } 
    else if (location ='3') 
    { 
    
    PWM1_Set_Duty(0) ; 
    delay_us(1020); 
    PWM1_Set_Duty(0) ; 
    delay_us(1020); 
    PWM1_Set_Duty(127); 
    delay_us(1020); 
    PWM1_Set_Duty(127) ; 
    delay_us(1020); 
    PWM1_Stop(); 
    } 
    else if (location ='4') 
    { 
    
    PWM1_Set_Duty(0) ; 
    delay_us(1020); 
    PWM1_Set_Duty(127) ; 
    delay_us(1020); 
    PWM1_Set_Duty(0) ; 
    delay_us(1020); 
    PWM1_Set_Duty(0) ; 
    delay_ms(1020); 
    PWM1_Stop(); 
    } 
    else if (location ='5') 
    { 
    
    PWM1_Set_Duty(0) ; 
    delay_us(1020); 
    PWM1_Set_Duty(127) ; 
    delay_us(1020); 
    PWM1_Set_Duty(0) ; 
    delay_us(1020); 
    PWM1_Set_Duty(127) ; 
    delay_us(1020); 
    PWM1_Stop(); 
    } 
    else if (location ='6') 
    { 
    
    PWM1_Set_Duty(0) ; 
    delay_us(1020); 
    PWM1_Set_Duty(127) ; 
    delay_us(1020); 
    PWM1_Set_Duty(127); 
    delay_us(1020); 
    PWM1_Set_Duty(0) ; 
    delay_ms(1020); 
    PWM1_Stop(); 
    } 
    
    else if (location ='7') 
    { 
    
    PWM1_Set_Duty(0) ; 
    delay_us(1020); 
    PWM1_Set_Duty(127) ; 
    delay_us(1020); 
    PWM1_Set_Duty(127) ; 
    delay_us(1020); 
    PWM1_Set_Duty(127); 
    delay_us(1020); 
    PWM1_Stop(); 
    } 
    else if (location ='8') 
    { 
    
    PWM1_Set_Duty(127) ; 
    delay_us(1020); 
    PWM1_Set_Duty(0); 
    delay_us(1020); 
    PWM1_Set_Duty(0); 
    delay_us(1020); 
    PWM1_Set_Duty(0); 
    delay_us(1020); 
    PWM1_Stop(); 
    } 
    
    else if (location ='9') 
    { 
    
    PWM1_Set_Duty(127); 
    delay_us(1020); 
    PWM1_Set_Duty(0) ; 
    delay_us(1020); 
    PWM1_Set_Duty(0); 
    delay_us(1020); 
    PWM1_Set_Duty(127) ; 
    delay_us(1020); 
    PWM1_Stop(); 
    } 
    else if (portb.f2==0); 
    { 
    pwm1_set_duty(0) ; 
    } 
    } 
    }
    la visualisation sur isis

    pour le récepteur mon code est le suivant Suppression de l'image hébergée pour la modération, Cram 64.
    il y'a un siganl mais meme je n'envoye pas un caractrere ce siganl est toujours a ??

    Code:
    unsigned char location; 
    int a,b,r,d; 
    void main() 
    { 
    trisb=0xff; 
    portb=0; 
    while (1) 
    { 
    
    if (portb.f7==0){ 
    delay_us(300); 
    a=portb.f0; 
    delay_us(600); 
    b=portb.f0 ; 
    delay_us(600); 
    r=portb.f0; 
    delay_us(600); 
    d=portb.f0; 
    delay_us(600); } 
    
    
    
    
    if (a==0 && b==0 && r==0&& d==1 ) 
    
    { location ='1'; 
    } 
    else if(a==0 && b==0 && r==1&& d==0) 
    { location='2'; 
    } 
    else if (a==0 && b==0 && r==1 && d==1) 
    { location='3'; 
    } 
    else if (a==0 && b==1 && r==0 && d==0) 
    { location='4'; 
    } 
    
    else if(a==0 && b==1 && r==0 && d ==1) 
    { location='5'; 
    } 
    
    else if(a==0 && b==1 && r==1 && d==0) 
    
    { location='6'; 
    } 
    
    else if(a==0 && b==1 && r==1 && d==1 ) 
    { location='7'; 
    } 
    
    else if(a==1 && b==0 && r==0 && d==0) 
    { location='8'; 
    } 
    else if(a==1 && b==0 && r==0 && d==1 ) 
    { location='9'; 
    } }}
    mais je ne visualise rien coté récepteur !!! j'ai relié ma sortie de tsop au port b .dois je relier a Rx ??


    d'ou vient le problème ??
    ici une copie sur la visualisation ###### supprimé : pas d'image sur un serveur extérieur

    Aurevoir

    peace

    -----
    Images attachées Images attachées  

  2. #2
    JPL
    Responsable des forums

    Re : communication infrarouge emeteur recepteur

    Sujet mal placé, déplacé vers Électronique.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  3. #3
    invitee05a3fcc

    Re : communication infrarouge emeteur recepteur

    Comment tu fais la partie émission? C'est ton µC qui génère la porteuse à 36 ou 38Khz (je n'ai pas regardé ton soft, je suis allergique !) ?
    C'est quoi comme TSOPxxxx ?

  4. #4
    invite245fd70e

    Re : communication infrarouge emeteur recepteur

    Bonsoir

    led infraouge comme emetteur et un tsop19.. comme recepteur en fesant des tests il est sensible a 38khz

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

    Re : communication infrarouge emeteur recepteur

    Citation Envoyé par peace20 Voir le message
    led infraouge comme emetteur
    et pilotée comment en soft et en hard ?
    et un tsop19.. comme recepteur en fesant des tests il est sensible a 38khz
    Ce n'est pas comme ça qu'on travaille !
    Si c'est un TSOP1936 .... il répond à 36Khz
    Si c'est un TSOP1938 .... il répond à 38Khz

  7. #6
    invite245fd70e

    Re : Communication infrarouge émetteur-récepteur ?

    Bonsoir

    le probleme c'est pas la fréquence , j'ai un problème au niveau de codage comment faire pour qui'il n'ya emission que lorsque j'envoye 0 ou bien 1 ou bien 2 par exemple sii j'envoye un autre caractére je veux pas qu'il y'a une emission.ce qui n'est pas le cas

    Aurevoir

  8. #7
    invitee05a3fcc

    Re : Communication infrarouge émetteur-récepteur ?

    Citation Envoyé par peace20 Voir le message
    par exemple sii j'envoye un autre caractére je veux pas qu'il y'a une emission.ce qui n'est pas le cas
    Ca a quoi comme rapport avec ta question de départ ....
    C'est assez fouillis ce que tu demandes !

  9. #8
    invite245fd70e

    Re : Communication infrarouge émetteur-récepteur ?

    Bonjour
    j'ai résolu la premiere probleme .d'ou il m'arrive d'autres

    Aurevoir

  10. #9
    invite3a1051d7

    Re : Communication infrarouge émetteur-récepteur ?

    bonjour,
    si ça peut t'aider
    j'ai realisé une telecommande infrarouge avec un pic (quartz à 4MHZ donc frequence utilisé 1MHZ
    j'envoie un un ou un zero par le programme ci dessous
    'il me parit important de realiser une partie du programme en assembleur pour avoir des temps precis
    en effet une instruction en c ,basic .. prend un certain temps ! )
    attention quand le tsop recoit une "salve de 36KHZ par exemple ) sa broche de reception à passe à zero
    ensuit le pic analyse la succesion de niveaux bas pour detecter ce qui à ete emis
    ce sous programme envoie des impulsion au format RC5
    le un est composé d'unniveau bas puis d'un niveau haut le zero d'un niveau haut puis niveau bas
    'ce programme comporte une partie en basic et en assembleur )
    un:
    Gosub salve0
    Gosub salve1
    Return
    zero:
    Gosub salve1
    Gosub salve0
    Return
    salve1:
    ASM: bsf 0x05,2
    For i = 1 To 32
    ASM: nop
    ASM: nop
    ASM: nop
    ASM: bcf 0x05,2
    ASM: nop
    ASM: nop
    ASM: nop
    ASM: nop
    ASM: nop
    ASM: nop
    ASM: nop
    ASM: nop
    ASM: nop
    ASM: nop
    ASM: nop
    ASM: nop
    ASM: nop
    ASM: nop
    ASM: nop
    ASM: bsf 0x05,2

    Next i
    ASM: bcf 0x05,2
    Return

    salve0:
    ASM: bcf 0x05,2
    For i = 1 To 32
    ASM: nop
    ASM: nop
    ASM: nop
    ASM: nop
    ASM: nop
    ASM: nop
    ASM: nop
    ASM: nop
    ASM: nop
    ASM: nop
    ASM: nop
    ASM: nop
    ASM: nop
    ASM: nop
    ASM: nop
    ASM: nop
    ASM: nop
    ASM: nop
    ASM: nop
    ASM: nop
    ASM: nop
    ASM: nop
    ASM: nop
    ASM: nop
    ASM: nop
    ASM: nop
    Next i
    Return

  11. #10
    invite245fd70e

    Re : Communication infrarouge émetteur-récepteur ?

    Salut

    merci pour le code mais le probleme que je ne sais pas programmer en assembleur

Discussions similaires

  1. Emetteur recepteur infrarouge
    Par invite5ea368ff dans le forum Électronique
    Réponses: 25
    Dernier message: 03/11/2012, 18h28
  2. Émetteur/Récepteur infrarouge
    Par invitefa15af9f dans le forum Électronique
    Réponses: 14
    Dernier message: 22/03/2012, 23h57
  3. émetteur et récepteur infrarouge
    Par inviteeab0141b dans le forum Électronique
    Réponses: 1
    Dernier message: 03/04/2008, 21h17
  4. Emetteur/récepteur infrarouge
    Par invite317c666d dans le forum Électronique
    Réponses: 2
    Dernier message: 21/02/2008, 11h42
  5. Application émetteur/récepteur infrarouge
    Par invitec7aa9528 dans le forum Électronique
    Réponses: 2
    Dernier message: 21/03/2006, 14h59
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...