Télécommande Bluetooth pour smartphone Androïd
Chapitre 1. Principe de la télécommande
Chapitre 2. L'électronique du récepteur Bluetooth
Chapitre 3. La programmation du récepteur Bluetooth
Chapitre 4. L'application smartphone Androïd
Chapitre 5. Conclusion
Page d'accueilTable des matièresNiveau supérieurPage précédenteBas de la pagePage suivante

Chapitre 3. La programmation du récepteur Bluetooth

 

La programmation C se fait sous MPLAB avec l'outil PICkit2.

La documentation concernant le module Bluetooth Sparkfun est sur le site du constructeur.
https://www.sparkfun.com/products/12576

Par défaut, à la mise sous tension, la vitesse de transmission du module Sparkfun est de 115200b/s.
Il est donc nécessaire de programmer le microcontroleur PIC avec cette même vitesse.

Il est à noter que l'on peut, si on le souhaite, modifier cette vitesse de transmission en envoyant
des commandes spécifiques au module Sparkfun.

Sparkfun.pdf

$$$ ---> permet de passer en mode commande

U,9600,N ---> Vitesse de transmission 9600b/s sans parité

Dans notre application la vitesse de transmission n'a pas été changée.

Le programme C du microcontrôleur attend le debut de trame 0xFF
puis stocke cette trame dans un tableau trame[i]


--------------------oOo---------------------

				do
				{
					while (!DataRdyUSART());	// réception
					car = ReadUSART();
				}
				while (car != 0xff);			// attend le début de trame FFh
				trame[0] = car;
				for (i=1;i<4;i++)
				{
					while (!DataRdyUSART());	// réception trame
					trame[i] = ReadUSART();
				}
			

--------------------oOo---------------------

Exemple de trame héxadécimale : ----> FF 2A 39 30

FF octet de début de trame

2A 39 représente le code secret (4257 en décimal)

30 est l'octet hexadécimal de commande du relais 1.

--------------------oOo---------------------

				if((trame[1]==42)&&(trame[2]==57))	// vérification du code de sécurité 4257 décimal
				{
					switch (trame[3])
					{
						case 0x30: {rel1=1;led1=0;break;}
						case 0x31: {rel1=0;led1=1;break;}
						case 0x32: {rel2=1;led2=0;break;}
						case 0x33: {rel2=0;led2=1;break;}
						case 0x38: {rel1=0;rel2=0;led1=1;led2=1;break;}
					}
				}
			

--------------------oOo---------------------

Il est à noter que si les relais se commandent par un "1" logique, les leds se pilotent par un "0" logique.

Le programme renvoie sous forme ASCII vers le module bluetooth
la tension batterie convertie par le convertisseur A/N.

 

 

Page d'accueilTable des matièresNiveau supérieurPage précédenteHaut de la pagePage suivante