Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---

Proposer un Tutoriel

Commentez, partagez et proposez des Tutos en langage C !
Avatar de l’utilisateur
FantasPic
Administrateur du site
Administrateur du site
Messages : 44
Enregistré en : juillet 2015
Contact :

Proposer un Tutoriel

Messagepar FantasPic » jeu. 17 sept. 2015 10:28

Bonjour à tous,

:!!: NE PAS RÉPONDRE A CE POST SI VOUS NE SOUHAITEZ PAS PROPOSER UN TUTORIEL. :!!:

Vous voulez proposer un Tutoriel afin de partager votre savoir, votre expérience ou même vos recherches !!
Vous avez créer une routine, une macro ou un soft aidant à la programmation, partagez-le !.

Alors n’hésitez pas et apportez votre pierre à l'édifice ! :D

Les Tutoriels présentés ici, devront répondre à certains critères et être approuvés par un administrateur avant publication. Ceci dans le seul but de vérifier leur contenu. L'objectif principal du tutoriel sera d’être pédagogique et instructif.
Ils devront porter sur une fonction/tâche très précise effectuée par le Micro-contrôleur, ou sur l'utilisation de modules spécifiques ( I²C - boucle - conversion - LCD - Wifi ....)

Quelques conseils :
  • Gardez en tête de toujours vous mettre à la place de la personne qui lira votre Tuto.
  • Votre code devra être extrêmement commenté, et chaque lignes expliquées aussi clairement que possible.
  • Les commentaires et explications seront en français.
  • N’oubliez pas de fournir les documents nécessaires en lien ( Data-Sheet , mode d'emploi etc ....)
  • La routine ou le tuto devront être testés en condition réelle .
  • Merci de mettre en en-tête, le titre que vous voulez pour votre Tuto.

Si votre tuto remplit ces critères, vous pouvez alors le proposer à la communauté en suivant ces consignes:
  1. Mettez votre Tutoriel à la suite de ce post en cliquant sur le Bouton "répondre".
  2. Écrivez votre texte, placez vos photos et/ou vos vidéos, faite la mise en forme avec soin ( Utilisez la fonction "Aperçu").
  3. Cette réponse sera ensuite validée avant d'être publiée pas un membre de l'équipe Fantas-Pic ( détachement de votre réponse pour créer un post à vous).

Conseils de mise en forme :
  • La mise en forme de votre Tuto est importante et doit être soignée pour être compréhensible et donner envie d'être lue.
  • Utilisez les outils mis à votre disposition pour cela (texte flottant, alignement , surlignage etc ..)
  • Faites régulièrement un aperçu de votre texte et sauvegardez le en brouillon de temps en temps.
  • Préférez les photos en format miniatures ou vignettes , cela prend moins de place à l'écran et reste "cliquable" pour zoomer.

PS : D'autre part, si vous avez des idées ou des suggestions concernant la forme de cette catégorie, n'hésitez pas à en discuter avec l’Équipe Fantas-Pic.

Avatar de l’utilisateur
venom
Passioné
Passioné
Messages : 420
Enregistré en : avril 2016
Localisation : . <------ ici
Contact :

Proposer un Tutoriel

Messagepar venom » dim. 4 nov. 2018 00:49

Titre : active led par bluetooth [HC-06]

Bonjour,

Voici un tutoriel qui vient de mon apprentissage personnel. Pour certain ce tutoriel peut paraitre simple, pour moi c’était une nouveauté dans la quel j'ai rencontrer des obstacles. Et j'avoue avoir pris du plaisir quand la led c'est allumé :-D

Je vous présente donc mon travail pour vous évitez les obstacles. :wink:

Il s'agit d'allumé ou éteindre une led par Bluetooth. 8-) Oui rien que ça :sifflotte: Grace a un module Bluetooth appeler HC-06 dans ce tuto.

Voici la liste des composants utilisé :
PIC 16f887
Module Bluetooth HC-06
une led rouge et sa résistance
un smartphone ou tablette
et c'est tout :-)


Dans ce tutoriel nous allons travailler principalement avec la fonction :
UART


Car l'avantage du HC-06 c'est qu'il communique avec le pic en UART. Donc si vous avez déjà utilisé cette fonction, ça simplifiera les choses.



Voici dans un premier temps le montage sur breadbord :
schema montage.png

On ne peut plus simple. :wink:

Voici maintenant le code :

Code : Tout sélectionner

////////////////////////////////////////
// name : active led par bluetooth    //
// create : venom                     //
// pic : 16f887 8MHz                  //
// module BT : HC-05                  //
// CONFIG1 : $2007 : 0x20D5           //
// CONFIG2 : $2008 : 0x0700           //
////////////////////////////////////////


// declarations
unsigned char *txt;                              // créer un pointeur txt
char uart_reception;                             // nom pour la récéption UART
sbit led at RA0_bit;                             // renomme la patte RA0 du microcontorleur par : "led"



// procedure pour enregistrer le texte en ram. Paulfjujo
void UART1_Write_CText(const char *txt){
   while (*txt)
     {
     UART1_Write(*txt++);
     }
}

// procedure pour faire une fin de ligne et un saut de ligne. Paulfjujo
void CRLF1(void){
UART1_Write(13);
UART1_Write(10);
}




///////////////////////////////////////////////////////////////////////////////////////////////////
// MAIN ///////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
void main() {
////// reglage de l'oscillateur interne
    OSCCON = 0b01110000;                         // configuration OSC interne 8mhz
                                                 // 0b01110000 oscillateur 8 Mhz
                                                 // 0b01101000 oscillateur 4 Mhz
                                                 // 0b01011000 oscillateur 2 Mhz
                                                 // 0b01001000 oscillateur 1 Mhz
                                                 // 0b00111000 oscillateur 500 Khz
                                                 // 0b00101000 oscillateur 250 Khz
                                                 // 0b00011000 oscillateur 125 Khz
                                                 // 0b00001000 oscillateur 31 kHz

    while(OSCCON.HTS==0);                        // boucle en attendant de voir le flag à 1


/////// configurations des entrees, sorties etc...
    ANSEL  = 0;                                  // Configure AN pins as digital I/O
    ANSELH = 0;
    C1ON_bit = 0;                                // Disable comparators
    C2ON_bit = 0;                                // Disable comparators

    TRISA = 0x0000000;                           // configure PORTA en sortie
    PORTA = 0x0000000;                           // port A en sortie. Entrée = 1, sortie = 0

    Delay_ms(100);                               // attend 100 milisecondes


// initialisation de la connexion UART
    UART1_Init(9600);                            // initialise l'UART a 9600 bauds
    Delay_ms(100);                               // Attendre 100 milisecondes que l'UART se stabilise





///////////////////////////////////////////////////////////////////////////////////////////////////
// boucle infini //////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////
    while (1) {
    
     if 
(UART1_Data_Ready() == 1)                // verifie si des données sont reçues en UART
     {
      uart_reception = UART1_Read();             // lit la donnée reçue et l'attribu a "uart_reception"

       if (uart_reception == 0x31)               // si uart_reception égale 1 soit 0x31 en hexadecimal
       {
        led = 1;                                 //on allume la led
       }

       if (uart_reception == 0x30)               // si uart_reception égale 0 soit 0x30 en hexadecimal
       {
        led = 0;                                 //on eteint la led
       }
     }
     Delay_ms(100);                              // attend 100 milisecondes
    }                                            // recommence en haut de la boucle

}


Je l'ai commenté au mieux ligne par ligne pour bien comprendre. j’espère

Je vais quand même vous résumez le code :

Dans la boucle infini, j’attends simplement qu'une information arrive sur l'UART du pic via le HC-06.
Si cette information arrive, je regarde de quel information il s'agit.
Si c'est un 1 ou un 0
Si c'est un 1 on allume la led
Si c'est un 0 on éteint la led

Ces paramètre de 1 et 0 sont configurer dans une application Android qui se nome : Bluetooth Electronics

Je ne vais pas expliqué le fonctionnement de cette application, c'est pas le but du tuto. Éventuellement si il y a de la demande je ferais un tutoriel sur l'application. Bien qu'elle est facile d'utilisation.

Sur mon smartphone j'affiche simplement un bouton ON/OFF qui envoie en UART 1 ou 0 selon la position du bouton.



Et pour clôturer ce tutoriel, voici une vidéo de mon montage. 8-)
https://youtu.be/vTbhLDmB5L0

Désolé pour la qualité de la vidéo et de la présentation (c'est ma première vidéo ou je parle) :oops: :-D

Voilà ma petite contribution pour le forum FantasPic. :wink:
A bientôt pour une nouvelle contribution.






@++
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
En fait tout est une question de BIT ? :-D


Retourner vers « Langage C »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité