Récemment j’ai eu besoin pour un projet d’afficher des données afin de déverminer le programme. Pour cela j’avais la solution d’envoyer, par la voie série du PIC utilisé dans le montage, les variables à visualiser pour les afficher sur un PC. Cependant ce n’était pas vraiment pratique, ni très autonome !
J’ai donc regarder du coté des afficheurs alphanumériques LCD à commande sériel. Vous en trouverez chez Lextronic par exemple. Cependant je trouvais le kit un peu cher et j’ai donc décidé de réaliser mon propre afficheur à commande série.
Il se présente de la manière suivante:
photo Afficheur
Le cahier des charges
Cet afficheur à commandes sériels doit répondre aux critères suivants :
- Alimentation du module soit de manière autonome (alimentation extérieure), soit par le connecteur de la voie série. Les lignes d’alimentations nécessaires sont du 5V régulé et la masse.
- Une ligne de réception de la voie série (RX) compatible avec des niveaux TTL (0V-5V). Une ligne TX peut être disponible pour renvoyer des informations (acquittement par exemple).
- La vitesse de transmission de la voie série peut être fixe (par ex. 1200bauds/s) ou détecté de manière automatique (jusqu’à 115200bauds/s).
- La carte doit pouvoir gérer plusieurs types d’afficheurs alphanumériques (16×2 à 20×4) avec ou sans rétroéclairage.
- Le jeu de commande doit être complet (effacement écran, positionnement X et Y, redéfinition des caractères personnalisables, BarGraphs verticaux et horizontaux, polices de caractères sur 2 ou 4 lignes, réglage du rétroéclairage,etc…) mais rester simple à comprendre et à utiliser.
Les solutions technologiques retenues
Pour répondre au cahier des charges précédent, j’ai adopté les solutions suivantes:
- utilisation d’un µC PIC18F2520 : voie série matériel, détection automatique de la vitesse de transmission, sortie MLI matériel pour piloter le rétroéclairage, entrée analogique pour capter la luminosité, suffisamment de mémoire de programme (mémoire flash) pour stocker des tables de caractères, suffisamment d’entrées/sorties pour piloter l’afficheur LCD, compatible avec les compilateurs C que j’utilise (Microchip C18 ou CCS C).
- utilisation d’une LDR pour capter la luminosité et ainsi piloter le rétroéclairage par MLI à l’aide d’un transistor MOSFET canal N.
- alimentation autonome réalisée autour d’un régulateur 7805 (prévoir un radiateur si le rétroéclairage est utilisé en permanence) ou alimentation par le biais du connecteur de la voie série. Ces alimentations sont sélectionnables par cavaliers.
- La connexion de l’afficheur LCD se fait sur des supports tulipes afin de changer facilement d’afficheur.
- Le connecteur voie série sera un HE10-10 mais la liaison peut se faire aussi en soudant des fils. Les configurations suivantes sont possibles:
– 2 fils : RX et masse si l’alimentation est réalisée par le régulateur de la carte
– 3 fils : RX, 5V et masse si l’alimentation vient par le connecteur de la voie série
– 3 fils : RX, TX et masse si l’alimentation est réalisée par le régulateur de la carte et que vous souhaitez recevoir les acquittements ou messages de la carte
– 4 fils : RX, TX, 5V et masse si l’alimentation vient par le connecteur de la voie série et que vous souhaitez recevoir les acquittements ou messages de la carte - Toutes les commandes comprises par cette carte commencerons par le caractère @. Le jeu de commande est décrit ci-dessous.
Schéma électrique et routage
Le schéma électrique correspondant aux solutions précédentes est le suivant :
Image schéma
Le routage associé au schéma précédent est présenté ci-dessous. La carte a au départ été prévu pour un afficheur LCD alphanumérique rétroéclairé 2 lignes de 16 caractères (16×2) :
Image routage
Les fichiers Proteus Isis et Ares (version 7.4) de cette carte ainsi que des fichiers au format PDF sont disponibles en fin d’article.
Cet article est en cours de rédaction, je le termine très bientôt…merci !
Bonsoir Monsieur Dartois !
Je constate avec plaisir que vous poursuivez vos expérimentations ^^
Mais où allez-vous donc vous arrêter ?
Personnellement j’ai attrapé la même maladie que vous ^^
Je suis en train de mettre sur pied un projet personnel : piloter, à partir d’un PIC16F877 des guirlandes de noël et les synchroniser sur une musique. Pour cela, je vais utiliser un étage commande (connexion au PC en RS232, puis le PIC et envoi de signaux à des opto-triacs) et un étage « action » (en 230V AC) (de l’opto-triac vers des triacs puissants (8A / 600V), suivi des connectiques pour les guirlandes).
Le tout sera commandé via le PC par une procédure faite manuellement sous Delphi (permet d’envoyer des données sur le port série).
Et oui, moi aussi je m’y met ^^
Enfin c’est loin d’être terminé : j’ai commencé les schémas sous Kicad; J’ai terminé les parties « Alimentation partie commande », « PIC », « connexion RS232 ».
A venir : « Connexions PIC – Opto-triacs », puis « Opto-triacs – Triacs »
Je vous remercie pour avoir partagé les documents que vous avez partagé, ils m’ont pas pal servi (partie oscillation et reset du PIC entre autre) et me serviront à l’avenir pour la programmation du PIC…
Je vous souhaite une bonne soirée.
Au plaisir.
Et bonne continuation avec vos projets, tous aussi intéressants les uns que les autres !
Au plaisir !
Patrick LEBEAU
Ancien lycéen du lycée Turgot à Limoges
Section STI Electronique
Années 2006 à 2008
Bonjour,
et bravo pour votre site… riche en informations.
Est-il possible d’avoir le détail de ce projet LCD série?
Merci…Patrick
Bonjour,
Je vous ai répondu en mail privé.
Cordialement
Bonsoir , je développe depuis quelques temps sur 8051 et je viens de passer sur Microchip et j’ai décide de m’attaquer directement au 18F2550 (peut être aurai je du faire un passage sur le 16F84!!!).Je suis en train de construire des modules de programme par fonction et je me casse la tête sur un module lcd 4X20 cara .Serait il possible d’avoir quelques info sur votre projet de LCD à commande serielle.Merci par avance de votre reponse.
Franck
Bonjour,
Je vous ai répondu en mail privé.
N’hésitez pas à me recontacter si le besoin s’en fait sentir 🙂
Cordialement
Bonjour,
je souhaite établir une communication entre mon pic18f14k50 et un lcd série.
Je pensais utilisé la bibliothèque sw_uart.h de C18 mais la je n’arrive pas à écrire sur mon LCD…
Avez vous, par hasard, un bout de code pour ça?
Bien cordialement.
@manue
Bonjour,
Je vous ai répondu sur votre mail privé…
Cordialement
Bonjour Monsieur Dartois.
j’ai un grand problème de piloter un afficheur lcd avec micropic 16f628a .je utiliser un port USB/ RS232.mais le problème comment configure cette port et est-que il peur être utiliser un interface ou non. MERCI POUR VOTRE REPENDE C’EST MON PFE .