Bonjour tous le monde
Je souhaite réaliser une télécommande infrarouge. Pour cela j'utilise sur un carte un pic18f24k22 avec une diode infrarouge et 3 boutons poussoirs, et sur une autre carte un autre pic18f24k22 avec un TSOP1138.
Je sais que la diode et le TSOP communique à une fréquence de 38kHz, mais mon objectif est que lorsque j'appuie sur un bouton poussoir, je donne un certain ordre au pic de la carte réceptrice.
Mais je ne comprend pas bien comment code le message à travers la diode infrarouge.
Est-ce que je peux écrire des codes pour l'émission tout simple comme celui-ci :
Et pour la réception :Code:/* * File: Emission.c * Author: PC 205 * * Created on 21 avril 2013, 20:30 */ #include <stdio.h> #include <stdlib.h> #include <p18f24k22.h> #include "fonction.h" #include "delays.h" #define emission PORTCbits.RC7 /* * */ void emissionMoteurPorteEntree (void) { DelayMs(120); emission = 0; } void emissionMoteurPorteDuGarage (void) { DelayMs(120); emission = 0; DelayMs(120); emission = 1; } void emissionMoteurVolet (void) { DelayMs(120); emission = 0; DelayMs(120); emission = 1; DelayMs(120); emission = 0; }
Code:/* * File: Reception.c * Author: PC 205 * * Created on 21 avril 2013, 20:30 */ #include <stdio.h> #include <stdlib.h> #include <p18f24k22.h> #include "fonction.h" #include "delays.h" #include "Variables.h" #define reception PORTCbits.RC7 /* * */ void reception (void) { DelayMs(130); if(reception == 0) { DelayMs(120); if(reception == 0) { PORTBbits.RB4 = 1; } else if(reception == 1) { DelayMs(120); if(reception == 0) { DelayMs(120); if(reception == 0) { PORTBbits.RB5 = 1; } else if (reception == 1) { PORTBbits.RB6 = 1; } } } } }
Ou est-ce bien plus complexe?
Merci d'avance
-----