Partage
  • Partager sur Facebook
  • Partager sur Twitter

Programmer des Microcontrôleurs PIC

Quelle puce, quel language, quels logiciels...?

16 mars 2010 à 0:34:50

Salut à tous ! :)

Tout d'abord, si je n'ai pas posté dans la bonne catégorie, je m'en excuse et je remercie d'avance les modérateurs de déplacer mon sujet... :euh:

Alors voilà : Depuis peu je m'intéresse aux microcontrôleurs PIC et à la possibilité de les programmer soit-même, pour diverses applications que j'ai en tête. :p

J'ai découvert cette possibilité en tombant par hasard sur le blog d'un type qui a créé un détecteur de "toc toc secret" de porte, par ici, et j'ai trouvé ça super intéressant. :D

J'ai acheté un programmateur qui accepte à peu près tous les types de puces (désolé de mon champ lexical restreint sur le sujet), et je me suis donc mis en quête de cours pour apprendre à gérer tout ça... ^^

Image utilisateur

Je suis tombé sur ce site, un peu moche certes, mais qui a l'air très complet et très bien expliqué. Hélas le langage qu'il apprend ne ressemble en rien à ceux que je connais déjà (xHTML, CSS, PHP, SQL, Javascript, ActionScript, etc), alors que le code fournit par le type du "toc toc secret" me parle déjà beaucoup plus ! o_O (Je suis capable de comprendre le programme du "toc toc secret" du type juste en le lisant alors que je sais connais pas ce langage, mais ça ressemble vachement à du Javascript !)

Le site avec les cours que j'ai trouvé utilise des puces de type PIC16F84 qu'ils disent être les plus polyvalentes, pourquoi pas, et après quelques recherches j'ai vu qu'il est possible de coder en C et de compiler pour les puces avec un compilateur "Compilateur C18" (MPLAB C18 de son vrai nom si je me trompe pas.)

Image utilisateur

Il me serrait nettement plus facile d'apprendre le C que le langage des cours que j'ai trouvé, mais ce compilateur est-il efficace et fiable ? :o

J'ai pas trouve d'infos claires et complètes sur le SDZ ou ailleurs pour quelqu'un qui souhaite débuter en programmation PIC.

En bref, je cherche quelqu'un qui s'y connait déjà, et qui saurait me résumer clairement, à moi et tous ceux qui tomberont à l'avenir sur ce topic, quel langage apprendre pour programmer des microcontrôleurs et où trouver des cours, quelles puces choisir, quels logiciels utiliser, etc...?

Pour info, dans un premier temps, mon projet d'essai est de développer sur ma réplique d'airsoft un compteur de billes restantes dans le chargeur, c'est à dire qu'à l'enclenchement du chargeur (bouton poussoir enclenché), 2 écrans à 7 segments affichent "30", puis à chaque impulsion électrique, l'affichage est décrémenté de 1, jusqu'à "00", et le "00" clignote, puis quand le chargeur est enlevé (bouton poussoir sur relâché) les écrans affichent "--", et retour à la case départ quand le chargeur est réenclenché. Il me faut par exemple pas plus de 5 minutes pour coder tout ça en Javascript dans ma tête, cependant si je devais le faire dans le langage du cours que j'ai trouvé ça me prendrait des heures et c'est sans compter le temps fous à apprendre ce langage qui est une façon de penser que je ne connais pas ! (à par que ça se rapproche un peu de quand je codais sur la Casio Graph 60 !) :lol:

Par avance merci beaucoup pour votre aide précieuse !
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
16 mars 2010 à 8:20:07

Pour programmer sur des pics il y a MPlab qui est très bien, comme langage il y a l'assembleur ou le C

Après programmer un PIC c'est compliqué car il faut lire les données techniques complètes. C'est plutot réservé aux électroniciens.
Cherche sur google le datasheet du 16F84A et tu verras qu'il y a bien des choses techniques à apprendre !
  • Partager sur Facebook
  • Partager sur Twitter
16 mars 2010 à 12:45:18

Le datasheet est vachement bordélique c'est vrai, mais le code que le type fornit pour le "toc toc secret" est vachement simple lui, à part quelques fonctions et variables "spécifiques" à retenir, du genre "pinMode(numero_du_pin, mode)" où "mode" prend la valeur "INPUT" ou "OUTPUT" pour définir si le pin est une entrée ou une sortie. Pour le reste j'arrive à comprendre son code sans même connaitre le langage, car il fonctionne de la même façon qu'un tas d'autres langages !

Si j'ai bien pigé ce langage est du C (facile à apprendre) légèrement adapté, ce qui me manquerait alors, c'est un cours sur ces spécifications aux PIC.

Autre chose : Le type du "toc toc secret" utilise une puce à 28 pins, en effet si j'ai bien compris sur une puce certains pins sont déjà réservés (2 pour le +5V et la masse, 2 pour l'entrée et la sortie de l'oscillateur, 1 pour le reset, etc), et les autres sont programmables en INPUT ou OUTPUT, si je lis biens le datasheet il y en a 13 sur une puce de 18 pins. Or sur un un écran d'affichage à 7 segments pour afficher un chiffre il y a logiquement 7 pins utilisés voir 8 si je veux utiliser la virgule :
Image utilisateur
Si je veux afficher 2 chiffres il me faut donc pins de libre, ce qui est déjà plus que le nombre de pins dispo sur un PIC16F84A, sans compter que j'ai mon bouton poussoir en plus ! Pour quelle puce opter alors ? Le C fonctionne-t-il toujours ? Avec quel compilateur ?

Si je comprends bien quand on choisit une puce, il suffit en fait de repérer le ou les pins VSS (masse), le ou les pins VDD (+5V), le pin MCLR (reset), les pins OSC1/CLKI et OSC2/CLKO (entrée et sortie de l'oscillateur), et sauf indication contraire tous les autres sont programmables comme entrée ou sortie ! Non ? C'est du travail mais c'est pas si compliqué que ça !

Tout ce qu'il manque en fait c'est un bon tuto pour apprendre tout ça...
  • Partager sur Facebook
  • Partager sur Twitter
4 avril 2010 à 18:09:23

Salut, concernant l'afficheur 7 segments tu n'auras besoin que de 4 sortie du pic, aprés tu doit placer un decodeur (par exp : le 7447) qui se charge de generer des combinaisons sur 7 bits avec quoi tu pourra piloter ton afficheur.
  • Partager sur Facebook
  • Partager sur Twitter
4 avril 2010 à 18:25:56

ou alors faire ce que l'on appel du multiplexage mais si tu debute essai deja de gerer ne serait ce qu'une led
  • Partager sur Facebook
  • Partager sur Twitter
http://jacen92.free.fr
26 février 2014 à 23:56:33

j'ai besoin d'un programme en c qui génère des mires noirs et blancs,horloge et date au dessus,a base de pic 16f84A c'est dur de le trouver pourriez vous m'aidez SVP
  • Partager sur Facebook
  • Partager sur Twitter
26 février 2014 à 23:58:26

j'ai besoin d'un programme en c qui génère des mires noirs et blancs,horloge et date au dessus,a base de pic 16f84A c'est dur de le trouver pourriez vous m'aidez SVP

afwabouchiba@yahoo.fr

-
Edité par afwa 27 février 2014 à 0:02:53

  • Partager sur Facebook
  • Partager sur Twitter
12 mai 2015 à 21:12:51

Je ai un projet qui est de faire l'acquisition et le traitement de données basée sur un microcontrôleur PIC16F627 et un récepteur de 433MHz. Ainsi, après la programmation de la microcontreller, je ne sais pas comment lire une valeur numérique sur pinA0 parce qu'il ne dispose pas d'un convertisseur ADC.
Pouvez-vous m'aider?
  • Partager sur Facebook
  • Partager sur Twitter
"All I know is that I know nothing."
15 août 2015 à 9:11:41 - Message modéré pour le motif suivant : Toute forme de publicité est interdite


25 février 2019 à 17:24:44

Bonjour, j'ai besoin d'aide concernant le microcontroleur PIC16F877A, je n'arrive pas à comprendre coment le programmer en langage C, si vous avez des lien ou un livre qui peut m'aider à comprendre, j'ai un mini projet sur la réalisation d'un horloge numérique en utilisant un afficheur 7 segment  le microcONTROLEUR PIC16F877A, à l'aide du logiciel proteus et MicroP
  • Partager sur Facebook
  • Partager sur Twitter