RaspBerry Pi et afficheur LCD Hitachi HD44780 1602 [PART 2]
Voici la suite du tutoriel sur l’intégration et l’utilisation d’un afficheur LCD HD44780 sur un RaspBerry Pi.
Pour ceux qui n’ont pas lu la première partie, je vous conseille de le faire.
Montage LCD sur RaspberryPi
Un schéma étant souvent plus évocateur que de longs discours, j’ai préparé tout le câblage sur grâce au logiciel fritzing.
Le montage suivant permet la connection d’un écran LCD HD44780 sur votre RaspBerry Pi. N’hésitez pas à cliquer sur l’image pour l’agrandir.
Le pin RW (Pin 5 du LCD) permet de spécifier à l’afficheur si on souhaite envoyer ou recevoir des données. Dans notre cas, on souhaite uniquement recevoir des données provenant du RaspBerry Pi, c’est pourquoi je l’ai relié directement à la masse.
De plus, il faut savoir que votre RaspBerry Pi ne supportera pas 5V en entrée sur les ports GPIO. Le fait de relier le pin RW à la masse m’assure donc que je n’enverrai pas du 5V à mon RaspBerry Pi, ce qui pourrait l’endommager.
Vous noterez également que le pin 3 de l’afficheur LCD est directement branché à la masse. Sa tension qui doit se situer entre 0V et 5V permet de définir le contraste de l’afficheur LCD. Comme expliqué dans la première partie du tutoriel, il est possible de connecter un potentiomètre afin de régler le contraste (le point suivant illustre cela).
Vous noterez également que le pin 15 de l’afficheur LCD HD44780 est relié à une résistance. Je l’ai mise car ce pin qui sert au backlight est alimenté en 5V et je n’ai voulu prendre aucun risque.
Vous voyez il est relativement simple de connecter un afficheur LCD HD44780 à votre RaspBerry Pi.
Montage LCD sur RaspberryPi avec Potentiomètre
L’utilisation d’un potentiomètre va vous permettre de régler le contraste en jouant sur le pin 3 de votre afficheur LCD. Le reste de la connectique est identique au schéma précédent.
Premier branchement du LCD sur votre RaspBerry Pi
Je vous conseille de souder déjà les cables avec votre afficheur LCD:
Vous remarquerez que j’ai utilisé exactement les mêmes coloris de câbles que dans mon schéma. C’est important pour éviter de se perdre dans les fils.
Vu que je suis sympa çà me gène pas si vous vous moquez de mes soudures (j’en avais pas refait depuis 12 ans :-)).
Ensuite effectuez toutes les connexions sur votre breadboard:
Vous pouvez ensuite effectuer les connexions vers votre RaspBerry Pi.
ATTENTION: Ne branchez que le pin d’alimentation 5V que si vous êtes sûr de votre montage.
Une fois votre afficheur LCD HD44780 correctement branché sur votre RaspBerry Pi, vous devriez avoir quelque chose comme çà:
Afficher du texte sur votre LCD HD44780
L’intérêt d’avoir un afficheur LCD connecté à votre RaspBerry Pi est d’y afficher du texte.
Pour pouvoir faire cela, nous allons utiliser le langage Python et la bibliothèque RPi-GPIO qui permet d’envoyer des commandes ou des données via les pins de votre RaspBerry Pi.
Installation de RPi-GPIO
Téléchargez RPi-GPIO:
wget http://pypi.python.org/packages/source/R/RPi.GPIO/RPi.GPIO-0.3.1a.tar.gz
Extraire l’archive puis naviguer dans le répertoire créé:
tar zxf RPi.GPIO-0.3.1a.tar.gz
cd RPi.GPIO-0.3.1a
Installez la bibliothèque RPi-GPIO puis supprimer les fichiers inutiles:
python setup.py install
cd ..
rm -rf RPi.GPIO-0.3.1a/
Afficher du texte sur le LCD en Python
Voici le code Python qui me sert à afficher des informations systèmes sur mon afficheur LCD connecté à mon RaspBerry Pi:
#!/usr/bin/python
############################
# Imports #
############################
import threading
import RPi.GPIO as GPIO
from time import sleep
import subprocess
############################
# Class de controle du LCD #
############################
class HD44780(threading.Thread):
######################
# Variable Shared #
######################
_PULSE = 0.00005
_DELAY = 0.00005
######################
# Constructeur #
######################
def __init__(self, pin_rs=7, pin_e=8, pins_db=[25, 24, 23, 18], lcd_width=16):
self.message = ""
self.currentmessage = "azertyuiop"
self.stop = False
self.lcd_width = lcd_width
self.pin_rs = pin_rs
self.pin_e = pin_e
self.pins_db = pins_db
GPIO.setmode(GPIO.BCM) # Use BCM GPIO numbers
GPIO.setup(self.pin_e, GPIO.OUT)
GPIO.setup(self.pin_rs, GPIO.OUT)
for pin in self.pins_db:
GPIO.setup(pin, GPIO.OUT)
self.Clear()
threading.Thread.__init__(self)
######################
# Demarrage du Thread#
######################
def run(self):
while self.stop == False:
if self.message != self.currentmessage:
self.currentmessage = self.message
self.LcdMessage()
sleep(1)
######################
# Arret du Thread #
######################
def Stop(self):
self.stop = True
######################
# Initialisation LCD #
######################
def Clear(self):
""" Blank / Reset LCD """
self.LcdByte(0x33, False) # $33 8-bit mode
self.LcdByte(0x32, False) # $32 8-bit mode
self.LcdByte(0x28, False) # $28 8-bit mode
self.LcdByte(0x0C, False) # $0C 8-bit mode
self.LcdByte(0x06, False) # $06 8-bit mode
self.LcdByte(0x01, False) # $01 8-bit mode
######################
#Execution sur le LCD#
######################
def LcdByte(self, bits, mode):
""" Send byte to data pins """
# bits = data
# mode = True for character
# False for command
GPIO.output(self.pin_rs, mode) # RS
# High bits
for pin in self.pins_db:
GPIO.output(pin, False)
if bits&0x10==0x10:
GPIO.output(self.pins_db[0], True)
if bits&0x20==0x20:
GPIO.output(self.pins_db[1], True)
if bits&0x40==0x40:
GPIO.output(self.pins_db[2], True)
if bits&0x80==0x80:
GPIO.output(self.pins_db[3], True)
# Toggle 'Enable' pin
sleep(HD44780._DELAY)
GPIO.output(self.pin_e, True)
sleep(HD44780._PULSE)
GPIO.output(self.pin_e, False)
sleep(HD44780._DELAY)
# Low bits
for pin in self.pins_db:
GPIO.output(pin, False)
if bits&0x01==0x01:
GPIO.output(self.pins_db[0], True)
if bits&0x02==0x02:
GPIO.output(self.pins_db[1], True)
if bits&0x04==0x04:
GPIO.output(self.pins_db[2], True)
if bits&0x08==0x08:
GPIO.output(self.pins_db[3], True)
# Toggle 'Enable' pin
sleep(HD44780._DELAY)
GPIO.output(self.pin_e, True)
sleep(HD44780._PULSE)
GPIO.output(self.pin_e, False)
sleep(HD44780._DELAY)
######################
#Affichage sur le LCD#
######################
def LcdMessage(self):
""" Send string to LCD. Newline wraps to second line"""
self.Clear()
text = self.currentmessage
self.LcdByte(0x80, False)
for c in text:
if c == '\n':
self.LcdByte(0xC0, False) # next line
else:
self.LcdByte(ord(c),True)
######################
#Definir le message #
######################
def LcdSetMessage(self, text):
self.message = text.ljust(self.lcd_width," ")
################################
# Class Informations Systeme #
################################
class SysInfo(threading.Thread):
######################
# Constructeur #
######################
def __init__(self):
self.count = 0
self.lcd = HD44780()
self.stop = False
threading.Thread.__init__(self)
######################
# Demarrage du Thread#
######################
def run(self):
self.lcd.start()
while self.stop == False:
if self.count == 0: #UPTIME
self.lcd.LcdSetMessage("Uptime:\n"+self.SysUptime())
elif self.count == 1: #LOAD
self.lcd.LcdSetMessage("Load:\n"+self.SysLoadAvg())
elif self.count == 2: #CPU
self.lcd.LcdSetMessage("Cpu:\n"+self.SysCpu())
elif self.count == 3: #MEMORY
self.lcd.LcdSetMessage("Memory:\n"+self.SysMemory())
elif self.count == 4: #DRIVE
self.lcd.LcdSetMessage("Disk Root:\n"+self.SysDisk())
else:
self.lcd.LcdSetMessage("ZeM.fr ZeM.fr\nRoxXxXxXxXxXxXxX")
self.count += 1
if self.count == 6:
self.count = 0
sleep(5)
######################
# Arret du Thread #
######################
def Stop(self):
self.lcd.Stop()
self.stop = True
######################
# Memory #
######################
def SysMemory(self):
try:
command="free -h"
process=subprocess.Popen(command, shell=True, stdout=subprocess.PIPE)
stdout_list=process.communicate()[0].split('\n')
for line in stdout_list:
data=line.split()
try:
if data[0]=="Mem:":
total=str(data[1])
used=str(data[2])
free=str(data[3])
except IndexError:
continue
except:
return "Error"
return str(used)+ " / "+str(total)
######################
# Disk #
######################
def SysDisk(self):
try:
command="df -H /"
process=subprocess.Popen(command, shell=True, stdout=subprocess.PIPE)
stdout_list=process.communicate()[0].split('\n')
for line in stdout_list:
data=line.split()
try:
if data[len(data)-1]=="/":
total=str(data[1])
used=str(data[2])
except IndexError:
continue
except Exception, e:
print e
return "Error"
return str(used)+ " / "+str(total)
######################
# CPU #
######################
def SysCpuGetTimeList(self):
statFile = file("/proc/stat", "r")
timeList = statFile.readline().split(" ")[2:6]
statFile.close()
for i in range(len(timeList)) :
timeList[i] = int(timeList[i])
return timeList
def SysCpu(self):
try:
x = self.SysCpuGetTimeList()
sleep(2)
y = self.SysCpuGetTimeList()
for i in range(len(x)):
y[i] -= x[i]
cpuPct = 100 - (y[len(y) - 1] * 100.00 / sum(y))
except:
return "Error"
return str('%.2f' %cpuPct)+"%"
######################
# Load Average #
######################
def SysLoadAvg(self):
try:
f = open( "/proc/loadavg" )
contents = f.read().split()
f.close()
except:
return "Error"
return contents[0]+" "+contents[1]+" "+contents[2];
######################
# Systeme Uptime #
######################
def SysUptime(self):
try:
f = open( "/proc/uptime" )
contents = f.read().split()
f.close()
total_seconds = float(contents[0])
MINUTE = 60
HOUR = MINUTE * 60
DAY = HOUR * 24
days = int( total_seconds / DAY )
hours = int( ( total_seconds % DAY ) / HOUR )
minutes = int( ( total_seconds % HOUR ) / MINUTE )
seconds = int( total_seconds % MINUTE )
string = ""
if days > 0:
string += str(days) + "d "
if len(string) > 0 or hours > 0:
string += str(hours) + "h "
if len(string) > 0 or minutes > 0:
string += str(minutes) + "m "
string += str(seconds) + "s "
except:
return "Error"
return string;
######################
# MAIN STARTER #
######################
if __name__ == '__main__':
si = SysInfo()
si.start()
q = str(raw_input('Press ENTER to quit program'))
si.Stop()
Ce script Python contient 2 classes:
- la classe HD44780 qui permet de contrôler l’afficheur LCD
- la classe SysInfo qui permet de récupérer certaines informations propres au système
Le script contient également un lanceur afin d’exécuter le main.
Voici une vidéo montrant le résultat produit par ce script:
Merci pour ce tuto très intéressant.
J’essai de reproduire votre montage cependant je suis intéressé par plus de précision. Il me manque les références de la résistance ainsi que du potentiomètre. Pouvez-vous me donner ça ? (J’ai pas envie de griller mon Pi tout neuf :p)
Sinon bravo pour votre site !!
N importe quel potentiometre peut fonctionner. Pour la resistance, une 330ohm suffira
C’est une bêtise de dire que n’importe quel potar peut fonctionner !
Il y a un monde entre les électroniciens et les bricoleurs de l’informatique !
Pour comprendre ce que je veux dire, il suffit juste de piger la 1ére des lois de l’électricité & électronique: la loi d’ohm.
Si vous jouez avec des piles ou des petites alims, merci la conso ou le “POUF” que ça risque de faire… Et en plus ca peut chauffer… grave…
Un potar correct pour un retro éclairage sera > 10Kohm…. 20Kohm étant souvent désigné par les fabricants.
C’est vrai qu’il y a un monde entre les électroniciens et les bricoleurs de l’informatique.
Maintenant on travaille avec du 3.3v, 5 au max donc je pense que n’importe quel potar à pas cher sera suffisant pour nos “bidouilles” 🙂
Pingback:Raspberry PI ~ 11 : Relier à un écran et afficher du texte | IdleBlog
Bonjour, merci pour votre tuto 🙂
J’ai cependant une question, j’ai du faire une erreur quelque part .. les messages s’affichent bien cependant tout est assez sombre (je n’ai pas de potentiomètre), une idée sur l’erreur que j’aurais pus faire ??
Merci
Essaye de mettre une petite resistance (330ohms par exemple) a la place du potentiometre et dis moi ce que ca fait
Justement le truc que je ne comprend pas c’est que j’ai mis une résistance de 330ohms :
http://cgi.ebay.fr/ws/eBayISAPI.dll?ViewItem&item=350394603083&ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649#ht_1455wt_1157
Et avec cette afficheur LCD :
http://cgi.ebay.fr/ws/eBayISAPI.dll?ViewItem&item=300664184556&ssPageName=STRK:MEWAX:IT&_trksid=p3984.m1423.l2649#ht_2242wt_1397
Je ne comprend pas mais j’avoue ne pas être calé en électronique :/
Mais si je comprend bien le schéma tous les câbles noirs sont relié entre eux, les rouges (partiellement) entre eux via la résistance et les jaunes & bleue sont connecté directement sans y touché ? (je n’ai pas de carte intermédiaire)
Voir photo ci-dessous :
http://img825.imageshack.us/img825/976/dsc0484mg.jpg
Essaye de faire la meme connectique que mon schéma avec le potentiomètre sauf que tu le remplaces par une résistance.
Si çà ne change rien, alors mets une résistance de 1Kohms pour tester
Finalement, autant pour moi javais juste mal connecté le backlight, ça marche nickel 🙂
http://img14.imageshack.us/img14/4382/dsc0489vu.jpg
Merci encore !
Bravo a toi 🙂
Pingback:Raspberry | DJERFY
Bonjour,
Je voulais savoir sic’est possible de mettre un interupteur pour eteindre l’ecran directement sur le 5V ?
Ou peut on l’eteindre via python ?
Et merci beaucoup pour tout tes tutos, ils sont terribles 😀
Je n ai pas essayer ms en intercalant un switch entre l ecran et le 5v ca doit marcher 😉
Je confirme, mettre un interrupteur entre le RPi et le LCD fonctionne
Cependant, si le script tourne en continu, il reste un petit courant residuel dans le LCD qui s’éclaire légèrement, a voir si ce n’est pas dommageable pour le LCD et/ou le RPi
Je aussi réalisé ce tuto et adapté a mes besoins, non sans mal pour certaines infos…
J’ai donc maintenant l’affichage en supplément: Date et Heure, Adresse IP locale, Adresse IP internet, temperature CPU ARM
Merci en tous cas pour ce tuto complet !
pas de quoi 🙂
Je galère pour afficher mon adresse IP, pourrais-tu me dire comment tu as fait ?
Merci !
Valentin
Quel est ton problème ?
Merci pour ce tuto que j’ai suivi à la lettre sans aucun problème. J’aimerai cependant savoir s’il est possible d’afficher des caractères grecs sur l’écran, genre alpha ou beta ? Merci
Il est possible d’afficher ce que l’on veut (même des caractères perso) maisje ne me souviens plus comment :/
Une recherche google devrait t’aider.
Merci pour ce tuto ! J’utilise actuellement le code pour un petit programme pour me faire un radio réveil basé sur mpc, et j’aimerai pouvoir éteindre l’écran. C’est faisable, mais je n’arrive pas à saisir comment envoyer l’instruction à l’afficheur LCD….
J’ai essayé en m’inspirant de ca https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code/blob/master/Adafruit_CharLCD/Adafruit_CharLCD.py et de ca https://www.sparkfun.com/datasheets/LCD/HD44780.pdf .
Une idée?
Merci d’avance
Je n’ai plus ma maquette pour regarder mais tu pourrais mettre un potentiometre pour reduire la luminosité, sinon l’exemple python que tu donne est bon as tu testé cet exemple ?
Je viens de tester l’exemple, le \n ne fonctionne pas comme dans ton script, par conséquent les lignes se chevauchent.. J’ai quand même testé la fonction dusplayoff, cela vide l’écran mais n’éteint pas la LED. Après quelques recherches, je crois que je vais devoir mettre un interrupteur physique entre le 5V et le LCD.
Merci quand même , ton script fait des merveilles !
Pingback:Faire de son Raspberry Pi une Web Radio | StefTech
Bonjour,
J’ai suivi votre tuto et tout fonctionne sauf que lorsque je lance le script j’ai quelques problèmes d’affichage.
L’uptime et les % CPU s’affichent mais pas le reste.
J’ai pensé à un pb de droits donc pour le memory et le disk j’ai ajouté un sudo dans les commandes mais ça ne fonctionne toujours pas.
J’ai donc essayé de taper les commandes dans le terminal qui m’affiche bien les différents pourcentages.
Même le Zem.fr RoxX… ne s’affiche pas 🙁
Une petite idée de ce qui pourrait bugger ?
Quelqu’un a également eu ce problème ?
Peut-être le script à adapter…
Merci
Bizarre.Si tu arrives a afficher du texte c’est que la partie connectique est fonctionnelle.
L’erreur viendrait donc du code. Tu as modifié le code ?
Bonjour,
Excellent, merci pour ce superbe montage !
Tout fonctionne, cependant seul la section “Disk Root” s’affiche avec ce script.
Je n’ai pas touché au code, j’ai repris le même. Le contraste est au plus bas, car je n’utilise pas de potentiomètre (mais aucun rapport, je pense..).
Une idée, peut-être ?
Bonjour,
Excellent tuto.
Après quelques tentatives, tout a fini par fonctionner.
Cependant, n’étant pas électronicien, je me posais une question : La Breadboard qui sert d’intermédiaire est-elle indispensable pour relier nos 2 équipements ??
Je voudrais en fait me faire un réveil, qui affiche la musique jouée sur cet écran,
cela parait compliqué de placer la BreadBoard dans le boitier du futur réveil..
Merci :).
Il existe des mini breadboards. Sinon vous pouvez utiliser des plaques à pastilles
Ok, merci.
Je me suis donc penché vers une plaque à pastilles, mais du coup mon montage ne marche plus..
Je ne sais pas si il y a quelque chose de particulier à faire par rapport à une Breadboard ??
Merci !
Photo du montage mais désolé, on voit pas grand-chose.. :
http://hpics.li/8aec515
Bon, je crois avoir compris pourquoi..
A priori, la différence avec une Breadboard, c’est qu’il faut absolument souder ^^
(source : http://www.sonelec-musique.com/electronique_bases_realisation_ci_veroboard.html )
Désolé d’avoir posé cette question, à priori inutile, et merci encore.
Bon, je rencontre un petit souci, j’ai pu faire mon montage sans problème, j’ai modifié seulement la 2nde partie de ton script (autrement dit, à partir de “def run(self)” ).
J’affiche séquentiellement le nom d’une musique, le nom d’un artiste, l’heure et la RAM. De temps à autre, le LCD affiche des chaines de caractères très étranges, du style : “%F z WfV ” Cela me remplace la séquence qui devait s’afficher, et cela aléatoirement.. As-tu rencontré cela par hasard ?? Cela viendrait de mon script ?
Merci, et désolé de tant de questions..
C’est probablement une erreur de script. Vérifie qu’il n’y a pas de caractères spéciaux par exemple
J’ai le meme probleme et dailleur quand je lance le truc dans python (oui je suis novice) il me met invalide synthaxe je ne c pas quoi faire sur les 2 ecran que j’ai recu je n’arive pas a en faire marcher un corectement
sniff
Je pense que tu devrais installer python 2.7
Bonjour,
Merci pour cet article.
J’ai un petit souci. Lorsque je lance le script par sudo python test.py, j’obtiens l’erreur suivante :
Traceback (most recent call last):
File “test.py”, line 290, in
si = SysInfo()
File “test.py”, line 147, in __init__
self.lcd = HD44780()
File “test.py”, line 32, in __init__
GPIO.setmode(GPIO.BCM) # Use BCM GPIO numbers
AttributeError: ‘module’ object has no attribute ‘setmode’
J’ai bien fait les mises à jours (sudo apt-get update et upgrade), j’ai téléchargé les mises à jours GPIO tel qu’indiqué dans le tuto.
Une petite idée de ce qui pourrait clocher ? Mes connaissances en python sont vraiment trés limitée.
Merci d’avance.
Quel est le header de ton fichier python ?
c’est lemême que dans le script proposé :
#!/usr/bin/python
############################
# Imports #
############################
import threading
import RPi.GPIO as GPIO
from time import sleep
import subprocess
mmm je vois pas :/
tu as bien installé tous les modules ?
Ouu, j’ai suivi le tuto à la lettre. Je vais réinstaller l’ensemble sur un OS tout frais pour voir.
Merci quand même.
A. P
Voila. J’ai tout réinstallé mais ily a un truc qui passe mal. Au moment de l’install de lalibrairie GPIO. Peut-être une mauvaise version de Python ??
[email protected] ~/RPi.GPIO-0.3.1a $ sudo python setup.py install
running install
Checking .pth file support in /usr/local/lib/python2.7/dist-packages/
/usr/bin/python -E -c pass
TEST PASSED: /usr/local/lib/python2.7/dist-packages/ appears to support .pth files
running bdist_egg
running egg_info
writing RPi.GPIO.egg-info/PKG-INFO
writing top-level names to RPi.GPIO.egg-info/top_level.txt
writing dependency_links to RPi.GPIO.egg-info/dependency_links.txt
reading manifest file ‘RPi.GPIO.egg-info/SOURCES.txt’
reading manifest template ‘MANIFEST.in’
writing manifest file ‘RPi.GPIO.egg-info/SOURCES.txt’
installing library code to build/bdist.linux-armv6l/egg
running install_lib
running build_py
creating build
creating build/lib.linux-armv6l-2.7
creating build/lib.linux-armv6l-2.7/RPi
copying RPi/__init__.py -> build/lib.linux-armv6l-2.7/RPi
running build_ext
building ‘RPi.GPIO’ extension
creating build/temp.linux-armv6l-2.7
creating build/temp.linux-armv6l-2.7/source
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c source/py_gpio.c -o build/temp.linux-armv6l-2.7/source/py_gpio.o
source/py_gpio.c:23:20: fatal error: Python.h: No such file or directory
compilation terminated.
error: command ‘gcc’ failed with exit status 1
Voila la version de Python installée :
[email protected] ~/RPi.GPIO-0.3.1a $ python
Python 2.7.3 (default, Jan 13 2013, 11:20:46)
[GCC 4.6.3] on linux2
j’utilisai un 2.7.1 mais je sais pas si ca peut jouer :/
Salut, je te remercie tout d’abord pour ce tuto très bien fait, et je me posais une question : peut-on relier toutes les masses ensemble? C’est à dire relier les fils entre eux et les souder ? (sur le schéma il y’a 3 fil noir qui vont à la masse sans le fil de la résistance variable)
C’est à dire souder les trois fils entre eux et souder le tout à un fil qui va à la masse.
J’essaye de me débrouiller pour tout souder au maximum et de me passer de la plaque pour une utilisation nomade.
Je te remercie d’avance
Oui tu peux relier toutes les masses entre elles, il faut juste qu’elles soient reliées à la masse de l’arduino
bonjour
est ce que le même schéma de câblage est utilisé pour le RGB backlight negative LCD 16×2 + extras
http://www.adafruit.com/products/399
je vous remercie en avance
Je ne dispose pas de ce module mais je pense qu’ils fonctionnent tous à peu prêt de la même manière
d’accord Merci
bonjour
merci pour le tuto
Je l’ai suivi a la lettre, cependant, l’écran est bien allumé, mais rien ne s’affiche dessus..
J’ai vérifier les branchements, il me semble bon, et le programme en python s’execute sans me donnez d’erreur.. 🙁
une idée ?
Supprime le potentiometre si tu en as mis un et cela devrait aller
bon.. pas de potentiometre..
est-ce que la valeur de la résistance relié au pin 15 de l’ecran peut jouer sur le fait que rien ne s’affiche ?
le programme s’excécute bien.. il me demande bien de presser enter si je veux sortir, et aucune erreur de ce coté..
je ne comprends pas….
(j’ai tester deux lcd différent.. donc forcément je commence a me dire que le problème vient de moi.. mais je ne vois pas ou..)
et a bien regarder, je n’ai jamais de carré afficher sur le lcd..
Bonjour,
(désolé je découvre )
j’ai une question, j’ai suivi ton tuto mais je n’arrive pas à lancer le code python.
à chaque fois ça me marque “command not found”
j’immagine que c’est un probleme de librairie ?
je pense avoir bien installer le RPi-GPIO tout à l’air de bien se passer.
j’ai donc créer le fichier test.py avec la commande
sudo nano test.py et j’ai collé ton code à l’intérieur.
l’emplacement du fichier test.py à une incidence ?
Finalement j’ai réussi, je lançais la commande n’importe comment ^^
Par contre je trouve le rétroéclairage un peu trop fort, peut on mettre un autre potentiometre sur le pin 15 du lcd pour faire varier la luminosité ?
Bonjour
j’ai tenté d’utiliser ton code mais j’ai un soucis dans les premières lignes
j’ai nomé le fichier python affiche_1602.py
voici les messages d’erreurs :
il doit y avoir un soucis de déclaration de variables path dans python ?
merci par avance
[email protected] ~/tests $ sudo ./affiche_1602.py
./affiche_1602.py: 9: ./affiche_1602.py: import: not found
./affiche_1602.py: 10: ./affiche_1602.py: import: not found
from: can’t read /var/mail/time
./affiche_1602.py: 12: ./affiche_1602.py: import: not found
./affiche_1602.py: 17: ./affiche_1602.py: Syntax error: “(” unexpected
Le shell utilisé ne doit pas etre le bon.
Et il faut utiliser quel shell alors ?
j’ai installé la dernière version de rabian sur mon raspberry
merci par avance
Il faut juste que python soit installé: http://www.rasadacrea.com/fr/cours-informatiques/comment-installer-python
Bonjour,
Merci pour tes tutos
J’ai câblé l’afficheur HD44780, j’ai uniquement la première ligne de l’afficheur ou on peut voir les carré noir.
Lorsque j’exécute le script aucune erreur n’apparaît mais l’afficheur affiche toujours une ligne de carré noir, c’est tout.
Mon câblage est strictement identique à celui présenter plus haut, d’ou vient le problème ?
Tout d’abord merci pour ce tuto.
Je l’avais suivi sans problème il y a quelques mois. Mais j’ai dû recommencé avec un autre écran LCD (similaire au précédent). Et là j’ai un problème de contraste.
Mon schema est celui sans potentio. Peut-être qu’avec ce nouvel écran LCD j’ai besoin d’en mettre un.
Mais dans ton schéma n°2 je ne vois pas clairement où il se place et où se relie la pin 3
Merci infiniment de ton aide. Je suis vraiment coincé et j’en ai vraiment besoin !
Merci pour ce tuto
Je l’avais suivi une 1ere fois, sans souci.
Mais je le refais avec un nouveau mais identique LCD et j’ai un problème de contraste.
Je vais essayer la version avec potentiomètre mais je ne vois pas bien où il se met (quel trou exactement-)
Bon c’est un peu ancien mais merci beaucoup pour ton aide !
Si je retrouve mon montage je t enverrai des photos.
Merci !
A vrai dire, je m’y perds et pardon de te solliciter.
Pour un travail artistique, j’ai besoin de relier mon RPI à un afficheur et d’y faire tourner un script python.
J’ai donc suivi ton tuto (merci beaucoup). Ça marche plus ou moins or j’ai besoin que cela marche à 100%
Je suis revenu à mon premier écran LCD donc a priori plus de souci de constraste. Je l’ai testé c’est ok.
Mais après avoir un peu touché la breadboard, je me décide à lancer une simulation “normale” (c’est pour une expo) et là :
l’affichage est complètement farfelu : caractères aléatoires, blocs blancs, fond noir… Rien ne marche plus correctement.
Questions :
1/ Est-ce qu’à force de manipuler la breadboard (pour cabler/décabler mes différents tests), j’ai pu généré des faux-contacts ?
2/ Dois-je pour stabiliser le montage remplacer cette breadboard par une plaque soudée (mais comme je n’y connais rien, existe-t-il des plaques à souder où je peux retrouver ton schéma ?)
BRef comment faire pour que ton super tuto marche à tous les coups chez moi et pas de façon boiteuse ???
1000 merci, vraiment, car je suis un peu en panique à l’idée de ne pas réussir à faire fonctionner correctement ce travail
Bonjour a tous, j’ai un petit problème non dans le câblage mais plutot dans le programme je ne vois pas du tout le placer, j’ai bien tout télécharger et installer, crée le fichier “test.py” mais rien ne sa passe :/ auriez vs une solution merci ^^.
il suffit de l’executer en faisant:
chmod +x test.py
./test.py
Merci ça marche parfaitement, c’est toi qui à fait le programme python ?
Bonjour,
Merci pour la tuto qui est niquel 🙂
J’ai cependant un problème :
J’ai suivi exactement le câblage mais après exécution du script , rien ne se passe mon écran reste dans l’état de ta 4ème photo avec une ligne noire.
J’ai essayé de jouer avec le contraste mais cela me fais juste changer le contraste.
Aurai-tu une idée pour mon cas ?
Merci
la connectique est elle correcte ?
Bonjour,
Je debute en manip 🙂 c’est trop top !! je m’eclate comme un fou 🙂
J’ai suivi le tuto ca marche nikel !! trop content de moi 😉 mais ca m’affiche n’iumporte quoi :/ je sais pas pourquoi 🙁
On voit bien que ca change mais les carateres sont n’importe quoi .. sniff je cherche ..
Merci
Cela ressemble a un probleme de cablage. Pourriez vous vérifier vos connexions
Oui c’etais bien ca .. 🙂
MErci