utilisation du lcd serie

alainav1

Senior Member
Bonjour,
peut on utilisé le lcd serie à partir d'une liaison serie autre que picaxe le port serie d'un pc par exemple ou d'un autre µP pic 16FXX arduino oo autre ...gerant le port serie (en configurant la liason en vitesse , parité ...)?
cordialement
Alain
 

MGU

Senior Member
Bonjour,
Je n'ai essayé cet adaptateur que sur des montages picaxe, mais le protocole est assez scabreux (pas de retour). l'arduino utilise plutôt l'I2C, il me semble.
Mais il faudrait essayer, on est jamais à l'abri d'une bonne surprise.

Ces typons sur le site sont tout frais, je ne les ai pas encore essayés non plus.

MM
 

westaust55

Moderator
Pour utiliser un PICAXE (rev Ed) LCD série avec un PC nécessiterait une interface pour se protéger contre une tension plus élevée fournie par le port série du PC beaucoup.

Pour un PC et de nombreux autre microcontrôleur comme un natif PIC16Fxxx ou autre font, il faut garder à l'esprit que les pièces Rev Ed sont généralement définies pour un signal inversé.
Pour une puce de PC un MAX 232 et d'autres dispositifs de 5V une porte simple onduleur hex suffirait.

Rev Ed/PICAXE LCD sont généralement 8 bits, sans parité et 1 bit d'arrêt qui est facile à réaliser.
 

PapyJP

Senior Member
Bonjour
Vous trouverez dans vos messages privés le code Assembleur d' une liaison série bidirectionnelle entre un PIC16F84 et un Minitel.
N' hésitez pas à demander d' éventuels éclaircissements
Cordialement PapyJP
 

jojojo

Senior Member
Perso, avec un 40X2, je fais comme ça :

LCD:

Setfreq M16

Serout A.1,T19200_16,(160)
Serout A.1,T19200_16,(163,1)
Serout A.1,T19200_16,(161,0,0)
Serout A.1,T19200_16,(162,"No telcommande:",b3)
Serout A.1,T19200_16,(161,0,0)
Serout A.1,T19200_16,(161,0,1)
Serout A.1,T19200_16,(162,"Code transmis:",b4,b5)
Return


Bon, le LCD est un comfile, deux lignes de 16 caractères.
Les codes de commandes sont dispos, sur le site de Lextronix.

Mais, je pense que ça doit être relativement "standart".

Comme, simultanément, j'envoi le même texte, au PC, via un Max, là, le code devient :

Serout A.2,N19200_16,(b3,10,13) 'le "N" pour le max232
Serout A.2,N19200_16,(b4,b5,10,13)
Return


Bonne nuitée.
 

alainav1

Senior Member
merci des info
je debute avec le lcd
je viens de recevoir mon afficheur lcd serie
le programme ci dessous ne fonctionne pas
j'ai seulement l'affichage de bienvenue de l'affichage (donc il est bien cablé ?=
#picaxe 08M2

'****** Nominations variables ********
symbol baud= N4800

'******* Nominations ports ***********

symbol LCD = C.5


'******* Programme 0 en Temps partagé *******
start0:

pause 200
sertxd ("test")
pause 3000
wait 5
goto start0
end
je ne comprends pas?
 

MGU

Senior Member
Bonjour,

sertxt c'est pour envoyer des messages sur le PC avec le codon de programmation.

Pour un LCD série, c'est plutôt serout

et pour la clé ans la serrure, voir l'exemple 2 de cette page, avec la petite vidéo

http://electromag1.wifeo.com/touches-sensitives-capacitives-et-picaxes.php

pause 3000 ,on attend 3000ms
wait 5, on attend 5000ms

pause 8000, on attend 8000ms et on économise une ligne

start0; est réservé pour le temps partagé, et on est plus maitre de la fréquence d'horloge. Mais si il n'y a qu'un programme, je ne sais pas ce que fait le picaxe.



MM
 

PieM

Senior Member
j'ai seulement l'affichage de bienvenue de l'affichage (donc il est bien cablé ?=
#picaxe 08M2

'****** Nominations variables ********
symbol baud= N4800

'******* Nominations ports ***********

symbol LCD = C.5
Bonjour,
C.5 correspond à une entrée éventuelle mais surtout à l'entrée programmation ! Utilisez C.1, C.2, ou C.4
le message d’accueil ne signifie pas qu'il est bien cablé. la preuve !
 

alainav1

Senior Member
bonjour,
merci de vos remarques (je progresse )voici ci dessous un programme qui marche
cependant le texte " lcd pixace ... " s'affiche au demarrage pendant 10 secondes environ
peux t on annuler cet affichage , en effet il n'est donc pas possible d'afficher une valeur une seconde apres la connection
on peux surement reprogrammer le picaxe 18M' presence d'une prise jack femelle sue la platine) mais peut on avoir une copie du programme en place au cas ou le nouveau programme ne marcherait pas ?

j'ai lu avec interet le programme proposé
je pense qu'avec une recalibration toutes les 5 minutes par exempleon pourrait s'affranchir d'une derive de capa
le pot pourrait genere une valeur qui s'ajouterait à la valeur mesurée pour creer le seuil de declenchement .
mais ce n'est que ma façon de voir les choses sachant que chaque probleme possede plusieurs solutiosns
cordialement
Alain
debut:
serout 4,N2400,("bonjour") 'ne marche pas avec N4800
wait 1
goto debut
end
 

alainav1

Senior Member
nos post ce sont croisée donc
pour repondre a l'observation
"C.5 correspond à une entrée éventuelle mais surtout à l'entrée programmation ! Utilisez C.1, C.2, ou C.4
le message d’accueil ne signifie pas qu'il est bien cablé. la preuve ! "
quand je dis qu'il est bien cable je parle du kit axe133
ensuite vient la liaison avec le picaxe qui envoie le texte à afficher
sur le ci de l' axe133 il y à 3 gravures identifiée ov + in j'ai donc dirigé la sortie du 08m sur le in du axe133
cordialement
Alain
 

MGU

Senior Member
Bonjour,

Je n'ai pas retrouvé le soft de l'afficheur, mais je l'avais copié et le voici:

Je pense que l’accueil disparait si on supprime la ligne rouge.
J'ai aussi inversé le ; devant les define use_OLED et define use_LCD. Maintenant, c'est pour un LCD
Mais je n'ai jamais utilisé de LCD picaxe.


Code:
; AXE133 Serial LCD/OLED using PICAXE-18M2
; Emulates basic serial operation of the popular AXE033 module
; CPS, May 2011
; v2 18/01/2012

#picaxe 18M2

; ********************************************
; Note you must uncomment just one of these two options
; depending on whether you have an LCD or OLED module
;#define use_OLED
#define use_LCD
; ********************************************


; Supported Commands
; 0-7, 8-15	CGRAM characters
; 16-252	normal ASCII characters, according to selected character map table
; 253, X	display 16 character pre-saved message from EEPROM memory, X can be 0-15
; 254, X	LCD command, X can be 0 to 255 
; 255, X	control outputs C.2, C.1, C.0 (via lower 3 bits of X)
;		So, if using a backlit LCD with the active low transistor driver
;		on output C.2, then 255,%000 switches backlight on and 255,%100 switches off


[COLOR="#FF0000"]#define use_welcome	; display the welcome message upon power up[/COLOR]
if pinC.6=0 then
	b6 = 16
	else
	b6=20
endif	

symbol line_length = b6	; change to 20 for displays with 20 character lines


symbol baud = N2400_16	; Serial baud rate 2400,N,8,1. Note main program runs at 16MHz

symbol spare0 	= C.0 ; spare output 0
symbol spare1 	= C.1 ; spare output 1
symbol spare2 	= C.2 ; spare output 2 (or optional backlight)
symbol backlight 	= C.2 ; optional backlight control for backlit LCDs, active low
symbol RX		= C.5	; serial receive pin
symbol enable 	= C.6	; LCD enable
symbol rs 		= C.7	; LCD RS 


; LCD data pins are on B.0 to B.7

; Store the 16 character user defined messages in EEPROM data memory
; First two messages are optionally used as welcome message

; If using a display with 20 characters you will need to edit 
; the start addresses to be multiples of 20 (currently at 16) 
; and add 4 characters to each message.
; Please remember 4 line displays always use the strange 1-3-2-4 layout.

#ifdef use_OLED		
EEPROM $00, ("  Serial OLED   ") 	; store msg in the EEPROM memory
#else
EEPROM $00, ("   Serial LCD   ") 	; store msg in the EEPROM memory
#endif


EEPROM $10, (" www.picaxe.com ") 	; store msg in the EEPROM memory

EEPROM $20, ("This is msg 2   ") 	; store msg in the EEPROM memory
EEPROM $30, ("This is msg 3   ") 	; store msg in the EEPROM memory
EEPROM $40, ("This is msg 4   ") 	; store msg in the EEPROM memory
EEPROM $50, ("This is msg 5   ") 	; store msg in the EEPROM memory
EEPROM $60, ("This is msg 6   ") 	; store msg in the EEPROM memory
EEPROM $70, ("This is msg 7   ") 	; store msg in the EEPROM memory
EEPROM $80, ("This is msg 8   ") 	; store msg in the EEPROM memory
EEPROM $90, ("This is msg 9   ") 	; store msg in the EEPROM memory
EEPROM $A0, ("This is msg 10  ") 	; store msg in the EEPROM memory
EEPROM $B0, ("This is msg 11  ") 	; store msg in the EEPROM memory
EEPROM $C0, ("This is msg 12  ") 	; store msg in the EEPROM memory
EEPROM $D0, ("This is msg 13  ") 	; store msg in the EEPROM memory
EEPROM $E0, ("This is msg 14  ") 	; store msg in the EEPROM memory
EEPROM $F0, ("This is msg 15  ") 	; store msg in the EEPROM memory

;initialise LCD
init:
	gosub LCD_init 		; initialise LCD

; display welcome message if desired
#ifdef use_welcome	
	let b1 = 0			; message 0 on top line
	gosub msg			; do it

	low rs			; command mode
	let pinsB = 192		; move to line 2, instruction 192
	pulsout enable,1  	; pulse the enable pin to send data.
	high rs			; character mode again
	
	let b1 = 1			; message 1 on bottom line
	gosub msg			; do it
#endif		
		
; main program loop, runs at 16MHz

main:

	serin RX,baud,b1			; wait for the next byte

	; NB keep character mode test as first item in this list to optimise speed
	if b1 < 253 then
		let pinsB = b1 		; output the data
		pulsout enable,1  	; pulse the enable pin to send data.
		goto main			; quickly loop back to top
	else if b1 = 254 then
		low rs 	     		; change to command mode for next character
		serin RX,baud,b1		; wait for the command byte
		let pinsB = b1 		; output the data
		pulsout enable,1  	; pulse the enable pin to send data.
		high rs			; back to character mode
		goto main			; quickly loop back to top
	else if b1 = 253 then
		serin RX,baud,b1		; wait for the next byte
		gosub msg			; do the 16 character message
		goto main			; back to top
	else ; must be 255
		serin RX,baud,b1		; wait for the next byte
		let pinsC = b1 & %00000111 | %10000000
						; output the data on C.0 to C.1, keep RS high
		goto main			; back to top
	end if


; power on LCD initialisation sub routine
LCD_init:
	let dirsC = %11000111	; PortC 0,1,2,6,7 all outputs
	let dirsB = %11111111	; PortB all outputs
	

	
#ifdef use_OLED
	; Winstar OLED Module Initialisation
	; according to WS0010 datasheet (8 bit mode)

	pause 500 			; Power stabilistation = 500ms

	; Function set - select only one of these 4 character table modes
	;let pinsB = %00111000 	; 8 bit, 2 line, 5x8 , English_Japanese table
	let pinsB = %00111001 	; 8 bit, 2 line, 5x8 , Western_European table1
	;let pinsB = %00111010 	; 8 bit, 2 line, 5x8 , English_Russian  table
	;let pinsB = %00111011 	; 8 bit, 2 line, 5x8 , Western_European table2
	
	pulsout enable,1  	; 
		
	let pinsB = %00001100	; Display on, no cursor, no blink
	pulsout enable,1 	

	let pinsB = %00000001 	; Display Clear
	pulsout enable,1
	pause 7			; Allow 6.2ms to clear display

	setfreq m16			; now change to 16Mhz

	let pinsB = %00000010 	; Return Home
	pulsout enable,1

	let pinsB = %00000110 	; Entry Mode, ID=1, SH=0
	pulsout enable, 1


#else	
	; Standard LCD Module Initialisation
	pause 15 			; Wait 15ms for LCD to reset.

	let pinsB = %00110000 	; 8 bit, 2 line
	pulsout enable,1  	; Send data by pulsing enable
	pause 5 			; Wait 5 ms
	pulsout enable,1 	 	; Send data 48 again
	pulsout enable,1  	; Send data 48 again
	
	setfreq m16			; now change to 16Mhz

	let pinsB = %00111000 	; LCD  - 8 bit, 2 line, 5x8  
	pulsout enable,1
			
	let pinsB = %00000001	; Clear Display
	pulsout enable,1 	
	pause 8			; 8 = 2ms at 16MHz
	
	let pinsB = %00000010 	; return home
	pulsout enable,1

	let pinsB = %00000110	; Entry mode
	pulsout enable,1 	
	pause 1			

	let pinsB = %00001100	; Display on, no cursor, no blink
	pulsout enable,1 	
#endif
	
	high rs			; Leave in character mode
	return


; display message from EEPROM sub routine
; message number 0-15 must be in b1 when called
; uses (alters) b1, b2, b3, b4
msg:
	let b2 = b1 & %00001111 * line_length
						; EEPROM start address is 0 to 15 multiplied by 16
	let b3 = b2 + line_length - 1 ; end address is start address + (line_length - 1)
	for b4 = b2 to b3			; for 16 times
		read b4,b1			; read next character from EEPROM data memory into b1
		let pinsB = b1 		; output the data
		pulsout enable,1  	; pulse the enable pin to send data.
	next b4				; next loop
	return
	
; Check end user has defined just one type of display
#ifndef use_OLED
#ifndef use_LCD
#error "Oops - no OLED / LCD type defined at top of program!"
#endif
#endif

#ifdef use_OLED
#ifdef use_LCD
#error "Oops - both OLED / LCD types defined at top of program!"
#endif
#endif


Pour le programme de la serrure, on peut bien sûr rafraichir le seuil quand on veut et pas seulement à la mise sous tension.
Une fois le pot réglé, la marge ajoutée reste le même

MM
 

PieM

Senior Member
ensuite vient la liaison avec le picaxe qui envoie le texte à afficher
sur le ci de l' axe133 il y à 3 gravures identifiée ov + in j'ai donc dirigé la sortie du 08m sur le in du axe133
Oui mais quand dans votre programme vous écrivez "symbol LCD = C.5" il est difficile de comprendre que vous utilisez en fait la sortie C.4 ! :rolleyes:
 

alainav1

Senior Member
pour PieM
excusez mon manque de précision
ayant modifié les commandes du programme plusieurs fois j'ai du faire un mauvais copié colle
sur le dernier programme j'envoie la commande du 08m via C.5 et la reception sur le picaxe de l'afficheur se fait sur le c.4 du 18m et maintenant tout fonctionne !

j'ai realisé un petit programme (tres simple) fortement inspire du programme de MGU
#picaxe 08M2

debut:
touch16 c.1,w13 '
serout 4,N2400,( 254,192,#w13)
wait 1
serout 4,N2400,( " ")'effacement

goto debut
end

si je mets prends 2 fils de 20 cm l'un relié à la masse l'autre à la pin de mesure de capa (c.1)l'afficheur affiche environ
5500 si je touche le fil reilé a la pin de mesure la mesure n'evolue pas par contre si je connecte ces 2 fils(masse et c.1) aux bornes d'une capa de 10nF la mesure passe à 8000 et si je touche l'un des 2 fils alors la valeur passe à 25000
donc le touche controlepeux etre amelioré avec la connection d'un capa c'est ce que j'ai observé mais si j'ai pas compris pourquoi ?
si cette info peux vous etre utile et si vous pouvez la confirmer
cordialement
Alain
 
Last edited:

MGU

Senior Member
Je pense que l'on touche à des phénomènes d'électricité statique pas toujours reproductbles.
Attention à cet électricité statique, tous les fabriquants mettent en garde contre ses dangers pour les circuits intégrés.
Les sondes capacitives sont simplement reliées à la patte du circuit et le constructeur recommande de ne toucher la sonde qu'à travers un isolant et pas directement.
Chacun peut faire son expérience et la communiquer aux autres, ça évite de perdre du temps.

MM
 

PieM

Senior Member
Je confirme ce que dis MGU: évitez de toucher la broche du Touch directement ou par l'intermédiaire d'un fil ! relisez attentivement le manuel concernant cette fonction.
Vouloir utiliser le picaxe comme capacimètre avec cette méthode est à mon avis voué à l'échec .
 

alainav1

Senior Member
bonjour,
pour moi un condensateur c'es 2 isolant separé par un isolant donc dans le montage
un fil isolé est relié à la pin detectrice
un fil isolant est relié à la masse
ces 2 fils constituent une capacité fonction de la surface de ces 2 fils et de la nature du dielectrique entre ces 2 fils (plastique + air + distance entre les 2 fils )
je soude à l'extermité de ces 2 fils un condensteur de 10nF j'augmente donc la capacite du condensateur composé des 2 fils de 10nF
mon constat est que si je touche le fil isolé la variation est beaucoup plus importante avec le condo que sans
mais bien sur je ne connais pas la fiabilité des resultats car il doit y avoir un tas de phenomene parasite non maitrises
mon info c'est simplement pour vous faire part de mes observations
ce que je ne sais pas c'est que represente la valeur mesuré par la fonction touch ?
par ces manip j'essai simplement de comprendre (c'est juste de la curiosité intellectuelle !)
j'ai bien conscience que le ne peux pas en faire un capacimetre
cordialement
Alain
 

PapyJP

Senior Member
mon constat est que si je touche le fil isolé la variation est beaucoup plus importante avec le condo que sans
Alain
La capacité présentée par deux fils de section ronde, parallèles, est principalement fonction du diamètre d des fils, de la distance D entre les fils et de la longeur L en regard. Puis du milieu entre les fils.
Vous trouverez le calcul exact ( pas si simple ) sur Google par exemple.
Pour fixer les idées, un mètre de "scindex ", utilisé tous les jours dans la vie courante pour la plupart de nos connexions domestiques de faible puissance, présente une capacité de l' ordre de 100 picoFarad ( 100pF/m ).
De même un mètre de coaxial 50 Ohm ( RG 58 ) ---> 100 pF/m
Donc la capacité rapportée par un mètre de fil est complétement négligeable vis à vis des 10 nF sur lequel vous les bouclez en parallèle, largement dans la fourchette de tolérance de votre 10 nF.
Si vous constatez des dérives de mesure en mettant le doigt sur un des fils de connexion ( isolé ou non ), c' est probablement que vous induisez ainsi des tensions alternatives ( votre corps faisant l' office d' antenne ), principalement du 50 Hz, qui sont amplifiées par le circuit aux bornes de la 10 nF qui doit présenter, je pense, une assez grande impédance d' entrée.
Pour preuve, placez votre doigt sur l' entrée d' une chaine HiFi---> ronflements... !
Et pourtant Zin environ 20 kOhm, c' est faible !
D' où vos résultats ... aléatoires !
Je ne connais pas le principe de fonctionnement de l' instruction " touch ".
Peut être le solution consiste-t-elle à placer un filtre passe-haut vers 200 Hz ( ou plus ) ?
Et surtout d' utiliser un câble blindé ( Un fil 'chaud', tresse à la masse OU deux fils ---> Un fil ' chaud ' l' autre à la masse avec la tresse ).
 
Last edited:

PieM

Senior Member
c'est très bien d'expérimenter, mais si vous voulez vous écarter de l'utilisation normale de cette fonction TOUCH, je vous conseille de lire les posts déjà parus sur le sujet et en particulier les notes d'application de Microchip comme déjà dit. (voir AN 1101 à AN 1104)
Conseiller un câble blindé n'est peut être pas opportun...

j'ai bien conscience que le ne peux pas en faire un capacimetre
c'est donc pour une utilisation classique de la fonction?
 

PieM

Senior Member
Pouvez-vous argumenter ?
Merci Papy JP
Non je n'ai pas à argumenter ce que d'autres on pu expérimenter ni les notes d'application de Microchip.
La lecture est disponible pour chacun qui veut s'en donner la peine.
D'autant plus que je ne sais pas le but poursuivi par alainav1. Au début il s'agissait de faire un capacimètre, mais plus maintenant...
Désolé.
 

MGU

Senior Member
Bonjour,

Pour ma part, pour la petite demo des touches sensitives, j'ai expérimenté le câble blindé , 60cm de blindé sono, puis 20cm de blindé TV.
Dans les deux cas, plus rien ne fonctionnait, la bonne solution est sans doute une liaison la plus courte possible ou un blindage très peu capacitive.
Pour comprendre se qui se passe, la visualisation de la valeur retournée est essentielle.
 

alainav1

Senior Member
c'est ce que j'ai fait en connectant un lcd et c'est la que j'ai constaté (dans mes conditions d'essai )que la détection ( en presence du doigt )etait plus important avec une capa de 10nF


cordialement
Alain
 

PapyJP

Senior Member
Non je n'ai pas à argumenter
Puisque PieM m' a renvoyé dans mes buts, je me suis cru obligé de lire les notes d' application de uChip qu' il signale sur le sujet ( #18 ).
Quelques dizaines de pages en anglais dans lesquelles on n' apprends pas grand chose et surtout pas comment ça fonctionne .
Puisque je me suis tapé cette lecture, et bien que je n' ai nullement l' intention d' essayer, voici pour ceux que ça intéresse l' essentiel de ce que j' ai retenu:

1/ Les touches sensitives.
Elles sont sérigraphiées sur le PCB qui supporte le uC, sans plan de masse en dessous ou à proximité, au plus prés possible du circuit.
Ce sont des surfaces cuivrées de forme quelconque mais de surface >= 150 mm² ( un carré de 12,5 x 12,5 mm par exemple ). S' il y en a plusieurs, les séparer d' au moins 1 cm.
La partie du PCB qui contient les touches doit être recouverte d' un isolant. Soit du Plexiglass ( épaisseur max 5 mm ) soit un film acrylique ( épaisseur max 2 mm ) soit du verre ( épaisseur max 2 mm ).
L' auteur ajoute sans rire que l' on peut placer une feuille de papier sous l' isolant transparent et y imprimer des symboles en noir ou en couleur " pour faire joli " ( n° de touches par exemple ).
... as a general rule, the layout of a capacitive sensing system should use minimal ground possible
and route wires as short, clean and far away from other potential interference sources as possible.


2/ Fonctionnement
Complétement zappé dans les notes de uChip, c' est dans l' article " touch16 " des fonctions Picaxe que l' on trouve.
In simple terms a touch sensor works by detecting the change in capacitance when a finger is placed near the touch sensor pad. This capacitance affects the frequency of an internal oscillating signal.... This value will change when the finger is placed nearby - the finger increases the total capacitance which then decreases the oscillation speed...
Donc, en gros, le fait de mettre un doigt sur une touche modifie la capacité d' un réseau RC qui pilote un oscillateur interne dont on mesure la fréquence d' oscillation: kolossale astuce ! ( voir ma note personnelle ci-dessous )
Il faut donc lire une valeur touche " en l' air " ( ce qui donne un seuil. Mais attention, ce seuil est différent pour chaque touche ! et pour chaque PCB ! ) puis comparer avec une valeur " touche appuyée "

Note personnelle:
La façon de traiter ce Pb par uChip n' est pas digne de lui. C' est du bricolage.
Aurait-il loupé les tendances actuelles d' écrans tactiles, de touch-pad, ... ?
 
Last edited:

PieM

Senior Member
On sait depuis longtemps que Microchip est constitués d'amateurs bricoleurs. :rolleyes:

quand ils écrivent :
... as a general rule, the layout of a capacitive sensing system should use minimal ground possible
and route wires as short, clean and far away from other potential interference sources as possible
.

cela permet d'éviter de faire des essais pour rien ...
sinon, pour ceux que cela intéresse, il suffit de lire ce qui est dans le datasheet du Pic correspondant au picaxe concerné (comme déjà dit dans un post) pour avoir des détails sur le fonctionnement .

Les notes d'application, elles, donnent entre autres, des précisions sur la conception de systèmes multitouches, avec soit un espace de 4.7 mm entre touche de 12.7 x 12.7, soit intégrer une piste étroite de GND entre les touches; mais il y a 10 pages rien que sur ce sujet ! des bricoleurs quoi !
 

PapyJP

Senior Member
1/ cela permet d'éviter de faire des essais pour rien ...
2/ comme déjà dit dans un post
3/ Les notes d'application, elles, donnent entre autres, des précisions sur la conception de systèmes multitouches ... mais il y a 10 pages rien que sur ce sujet !
1/ Que ne l' avez vous dit à Alainav1 et à MGU !
2/ Les archives du Forum contiennent 609 posts. Envoyez au moins la date du ( des ) posts, merci.
3/ C' est vrai, 10 pages sur ce sujet ! Les quatre notes ne traitent que de ce sujet ! Est-ce l' essentiel ?

A part ma remarque personnelle (que j' assume et qui n' engage que moi) avez-vous des remarques à faire sur #23 ?

Good night
 
Last edited:

PieM

Senior Member
1/ Que ne l' avez vous dit à Alainav1 et à MGU !
2/ Les archives du Forum contiennent 609 posts. Envoyez au moins la date du ( des ) posts, merci.
3/ C' est vrai, 10 pages sur ce sujet ! Les quatre notes ne traitent que de ce sujet ! Est-ce l' essentiel ?
1/ Cet aspect du TOUCH a été évoqué en #13 ; il y a eu la remarque de MGU en #14, et la mienne en #15, et mon conseil de se reporter aux notes d'application en #18.
MGU a fait l'expérience du câble blindé et est venu confirmer que ce n'était pas opportun.

2/ C'est un peu la tendance de demander aux autres de faire des recherches, mais je suis désolé de ne pas en avoir le loisir. :)

3/ Les 4 notes ne traitent que de ce sujet ? ben oui, il me semble que c'est effectivement le sujet ! Comment faire un clavier a 9 touches sensitives avec 4 entrées est assez intéressant, entre autres ...
J'ignore ce que vous jugez essentiel dans cette affaire, d'autant moins que vous ne semblez pas être utilisateur de cette fonction.

• AN1101 – “Introduction to Capacitive Sensing” (DS01101)
• AN1102 – “Layout and Physical Design Guidelines for Capacitive Sensing” (DS01102)
• AN1103 – “Software Handling for Capacitive Sensing” (DS01103)
• AN1104 – “Capacitive Multi-Button Configurations” (DS01104)

ma remarque "sinon, pour ceux que cela intéresse, il suffit de lire ce qui est dans le datasheet du Pic correspondant au picaxe concerné (comme déjà dit dans un post) pour avoir des détails sur le fonctionnement ." était pour votre observation sur le fait que le fonctionnement était zappé dans les notes d'appli.

Ne sachant toujours pas si l'utilisation de cette fonction par Alain est conforme aux préconisation de Microchip, je ne vois pas d'intérêt, pour ce qui me concerne , de continuer sur le sujet.
 

alainav1

Senior Member
Bonjour,
on peut donc clore le sujet mais je continue à faire des manip et j'en rendrai compte sur ce forum pour ceux que ça interesse
l'utilistion du picaxe etait de detecter la presence d'une cle dans une serrure , j'imaginais que le raccordement de la serrure au picaxe permetait de resoudre ce probleme
ceci dit j'ai reglé mon probleme car en introduisant la cle dans la serrure il faut tenir la poignée de la porte .ces 2 elements sont fixés sur une porte en bois donc j'ai relié ces 2 elements à un transitor darligthon je peux ainsi declencher le transitor quaud la base et le collecteur sont reliés par l'utilisateur de la serrure . le resistance du corps humain entre la base et le collecteur est suffisamment faibler pour dechencher le montage (transistor monté en emeteur commun ) pour commander un optocoupleur qui commande une sonnette sans fils
pour ceux que ça interesse
serrure.jpg

ceci dit je continue des manip avec la fonction TOUCH pour mieux connaitre cette fonction .
cordialement
Alain
 

MGU

Senior Member
1/ Que ne l' avez vous dit à Alainav1 et à MGU !
2/ Les archives du Forum contiennent 609 posts. Envoyez au moins la date du ( des ) posts, merci.
3/ C' est vrai, 10 pages sur ce sujet ! Les quatre notes ne traitent que de ce sujet ! Est-ce l' essentiel ?

A part ma remarque personnelle (que j' assume et qui n' engage que moi) avez-vous des remarques à faire sur #23 ?

Good night
Vraiment désolé, j'ai encore fait un essai en utilisant TOUCH16 comme sonde de niveau capacitive, voici le lien:

http://electromag1.wifeo.com/lecture-de-niveau-par-sonde-capacitive-picaxe.php

J'attends les commentaires de PapyJP sur ce petit bricolage inutile

MM
 

BESQUEUT

Senior Member
Très intéressant,
Il se trouve que j'ai une pompe de relevage censée démarrer et s'arrêter automatiquement en fonction du niveau d'eau.
J'ai commencé avec un montage basé sur un ampli op (donc résistif...)
Puis à l'occasion du remplacement de la pompe, j'ai opté pour une solution intégrée à la pompe (donc coûteuse) en me disant que les ingénieurs de chez Gardenn@ avaient du réfléchir sérieusement au problème... Il s'agit aussi probablement d'un système résistif.
Dans les deux cas, ça démarre à peu près bien, mais pas de façon très précise
et ça s'arrête de façon très aléatoire, voire pas du tout, au risque de griller la pompe...
En gros, une fois que les deux capteurs (niveau haut et bas) ont été submergés, il faudrait quasiment un sèche cheveux pour que l'électronique considère qu'ils ne sont plus dans l'eau !
A priori, votre solution devrait être insensible à la présence résiduelle d'humidité sur le capteur ou dans l'air ambiant.
Il me tarde d'expérimenter.
 

jojojo

Senior Member
Hum ...

D'expérience, je pense que le type de senseurs, capacitif, ou résistif, pose problème, dès lors que l'on multiplie les sondes.

La meilleure solution, à mon sens, est d'explorer les sondes séquentiellement.

Et, là, on peut même en explorer bien plus que deux.

Je vais tenter (marche pas toujours, mais c'est peut-être moi, hein !) de joindre une petite application.

Bonne nuitée.
 

Attachments

PapyJP

Senior Member
Nous sommes bien loin du sujet posé en #1 par alainav1 mais qu' importe.
Vraiment désolé, j'ai encore fait un essai en utilisant TOUCH16 comme sonde de niveau capacitive
Et alors, quels sont les résultats ?

Puisque :
J'attends les commentaires de PapyJP sur ce petit bricolage inutile
Ok, les voici :
Je ne juge pas ce " petit bricolage ".
Inutile ? Ca c' est à vous de voir.
Je remarque simplement qu' il est hors norme pour au moins deux raisons:
1/ Il ne respecte pas les recommandations de uChip ( 4 pages sur le sujet, voir #23 en réponse à mon renvoi dans mes buts ) qui recommande précisément que les senseurs soient au plus prés du circuit, sans masse ni dessous ni autour et isolés du contexte par Plexi, film, verre.
2/ Or il y a deux fils en regard, l' un 'chaud' isolé, l' autre dénudé à la masse.
Ca marche ? Tant mieux. Miracle !
A transmettre à uChip pour qu' il fasse une cinquième note d' application sur le sujet.

@BESQUEUT
Je peux vous assurer qu' une sonde constituée de deux fils d' inox séparés de 8 à 10 mm ( comme celle que l' on voit dans ... forage.pdf ) détecte très bien la présence d' eau ( commune, " sale ", même l'eau de pluie (mais pas l'eau distillée) ) dans un montage résistif avec ampli OP et n' est pas sensible ni à la vapeur ni au ' reste de mouillage '.
( Je dis bien en montage résistif avec ampli OP car je doute que les sondes S1 à S5 du schéma du document ci-dessus plaçées en série entre des portes 7404 puissent les faire basculer.
Comme St Thomas, je demande à voir ).
Aucune crainte d' avoir une goutte qui reste 'collée' si l' espace qui les sépare est suffisant. Réponse quasi instantanée.
J' ai utilisé ce type de sonde pour des produits industrialisés et ils n' ont jamais (?) fait défaut. Ce sont en fait deux pistes sur circuit imprimé séparées par un fraisage 'ad hoc' du support.
 
Last edited:

PieM

Senior Member
Bonjour,

A titre personnel, je ne prendrais pas le risque de mettre en jeu la vie d'une pompe avec cette utilisation du TOUCH.
Trop de perturbations (pas toutes connues) sont à craindre.
un exemple ici ou même la proximité d'un éclairage fluorescent, le fait de connecter le câble de programmation, ou de toucher le contenant vient modifier la réponse.
 

PapyJP

Senior Member
Compléments à #31
1/ J' ai écrit :Aucune crainte d' avoir une goutte qui reste 'collée' si l' espace qui les sépare est suffisant..
Je confirme mais il y a un petit bémol, c'est que ce genre de sonde présente un phénomène d' hystérésis.
En effet, à la montée de l' eau le contact ' se ferme ' au moment où la sonde est immergée mais à la descente la tension superficielle du liquide fait que le contact ne ' s' ouvre ' que lorsque le niveau d' eau est sensiblement descendu ( fonction de la forme et de la distance des électrodes ).
A prendre en compte donc.
2/ Il s' agit d' un ampli OP monté en comparateur de tension
 
Last edited:

BESQUEUT

Senior Member
Merci à PieM et PapyJP pour leurs remarques avisées.
Le premier capteur est constitué par 3 tiges verticales en acier inox d'environ 2 mm de diamètre et de différentes longueurs, uniquement maintenues en partie supérieure.
L'espace entre chaque tige est de environ 1 cm.
Si vous disposez d'un schéma, je suis preneur.
(Et vous pouvez aussi l'envoyer aux ingénieurs de chez Gaardenn@...)
 

PieM

Senior Member
Le premier capteur est constitué par 3 tiges verticales en acier inox d'environ 2 mm de diamètre et de différentes longueurs, uniquement maintenues en partie supérieure.
L'espace entre chaque tige est de environ 1 cm.
Je tenterais simplement un montage diviseur résistif sur une entrée ana, bien que l'impédance d'entrée normalement souhaitée soit plus faible.
 

MGU

Senior Member
Bonjour,

Je suis tout à fait d'accord avec toutes ces remarques. Cette petite expérience est avant tout ludique et il faut rester prudent dans les éventuelles applications. Je vais d'ailleurs préciser cela sur la page du site.

Je pense toutefois que ce montage a peut être plus de stabilité que l'utilisation "touche" traditionnelle. En effet, la mesure ne dépend pas de la position aléatoire d'un doigt inconnu dans des conditions non définies.

Ici, le condensateur déterminant la mesure est parfaitement défini et il n'y a aucune intervention divine dans le fonctionnement (tant mieux, j'ai un peu de mal avec les miracles).
En témoigne le test de linéarité fait récemment, la mesure ne pourrait pas être aussi parfaitement linéaire (aux erreurs de mesures prêt) si le résultat était aléatoire. Pour ce test, j'ai immergé jusqu&#8217;à 80 cm de fils dans la bouteille, peu importe la position respective des câbles, le condensateur n'étant défini que par la longueur immergée et la qualité de l'isolant.

Chacun peut reproduire l'expérience, si il le souhaite, et juger objectivement, bon bricolage.


MM
 

jojojo

Senior Member
@PapyJP, en réponse au #31 car je doute que les sondes S1 à S5 du schéma du document ci-dessus plaçées en série entre des portes 7404 puissent les faire basculer.

Le doute est l'apanage de l'homme libre.

Personnellement, quand je doute, je teste.

Et, APRES, je commente.

Cordialement.
 

PapyJP

Senior Member
Personnellement, quand je doute, je teste.
Vous êtes un homme sage.
Moi, mon expérience alimente mon doute.
Ce doute vient du fait ( et vous n' êtes pas sans le savoir ) qu' il faut tirer une charge TTL, soit -1,6 mA, pour faire basculer une porte.
La résistivité de l' eau est d' autant plus faible qu' elle est ' sale ', entendez par là qu' elle contient plus ou moins de corps dissous, et leur nature.
Si elle est pure ( distillée ) elle n' en contient aucun et sa résistivité est quasi infinie. J' ai signalé ce fait dans mon post.
J' avais ( il y a longtemps mais la nature de l' eau n' a pas changé en un siècle, sauf ajout de Chlore, de Brome, ... toutes ces choses naturelles anti-tout ) fait tout un tas de mesures.
Sous 5 volts, entre deux électrodes distantes de 1 cm, le courant s' établit entre 0,9 et 3,4 mA suivant la nature de l' eau ' commune '.
Votre circuit fonctionnera suivant les circonstances.
D' où ma prudence.
Non moins cordialement PapyJP
 
Last edited:

alainav1

Senior Member
bonjour,
pour tester un niveau d'eau on peut realiser un conductivimetre (voir mon site http://www.alain.avrons.net/ page electronique ) il faut seulement que l'eau ne soit pas trop pures car pour une eau pure la conduction est proche de 0 siemens se qui est la l'a valeur de la sonde en absence d'eau
j'avais réaliser ce conductimetre avec un pic 16F819 mais on peux sans probleme l'adapter au micaxe 20M2 par exemple (dés que j"ai fait la conversion je mets ça sur mon site )
cordialement
Alain
 

jojojo

Senior Member
Sous 5 volts, entre deux électrodes distantes de 1 cm, le courant s' établit entre 0,9 et 3,4 mA suivant la nature de l' eau ' commune '.
Votre circuit fonctionnera suivant les circonstances.


Précision (visible sur la photo) : la distance entre électrode est de +/- 6mm (4 au plus près des conducteurs, 8 à leurs extrémités).
Il est également très simple de déterminer le seuil de déclenchement, en jouant simplement sur la longueur des fils inox des sondes.

Pour la conductivité de l'eau ... Pour un forage donné, c'est extrèmement stable ...
La date de mise en service du systéme figure sur la photo du boitier. Depuis, hormis le nettoyage des filtres, et le remplacement de la vessie du surpresseur, aucune modif de nécessaire.

Ce n'est ni chinois, ni à "obsolescence programmée". Ca nous change.

Cordialement.
 
Top