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 ---
- 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 ---
Modérateur : Jérémy
Exploitation capteur de pression avec un PIC
Bonjour à tous,
Je souhaite utiliser un capteur de pression (esclave) avec un PIC 18F2420 (maître) en SPI.
Je recherche la Data Sheet de ce capteur afin de pouvoir étudier le protocole de communication.
Ou une personne ayant déjà utilisé ce capteur.
Détail du capteur:
Barometric Pressure Sensor Module
Voltage: 3.3-5V
Pressure: 0-40KPa
This module adopts high precision AD sampling chip and 0-40KPa air pressure sensor. And it can connect 2.5mm soft tube and detect the water level and other air pressure
Adopt 5K ohm resistor bridge sensor, and specific air pressure value needs calculating
J'ai déjà essayé chez le Chinois, mais il ne répond pas.
Je souhaite utiliser un capteur de pression (esclave) avec un PIC 18F2420 (maître) en SPI.
Je recherche la Data Sheet de ce capteur afin de pouvoir étudier le protocole de communication.
Ou une personne ayant déjà utilisé ce capteur.
Détail du capteur:
Barometric Pressure Sensor Module
Voltage: 3.3-5V
Pressure: 0-40KPa
This module adopts high precision AD sampling chip and 0-40KPa air pressure sensor. And it can connect 2.5mm soft tube and detect the water level and other air pressure
Adopt 5K ohm resistor bridge sensor, and specific air pressure value needs calculating
J'ai déjà essayé chez le Chinois, mais il ne répond pas.
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Exploitation capteur de pression avec un PIC
Exploitation capteur de pression avec un PIC
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour,
bien gentils, ces chinois avec materiel RPC SANS DATASHEET
Attention : probablement parce que le capteur est HORS SPECIFICATION !
ce capteur semble etre un
MPS20N0040D-D sphygmomanomètre capteur de pression 0-40kPa DIP-6 pour Arduino I
Specifications:
- Measuring medium: air
- Measuring range: 0-40kPa
- Operating temperature range: -40 ℃ ~ + 125 ℃
- Storage Temperature: -40 ℃ ~ + 150 ℃
- Humidity: (50% ± 10%) RH
- Ambient temperature: (25 ± 1) ℃
- Medium temperature: (25 ± 1) ℃
- Output impedance: 4kΩ ~ 6kΩ
- Zero output: -15mV~+15mV
- Hysteresis: +-0.7%F.S.
- Power supply: ≤10V DC or ≤2.0mA DC
- Insulation resistance: 100MΩ, 100VDC
recoupement avec AMAZON
AMAZON
Pressure Range: 0-5.8 psi. (40 kpa)
?Range: 40kpa
Output: mV signal.
Power Supply: 5VDC or constant current 1 ma.
?Linear Precision: 0.25% FS.
Works great when used with a LM358 Dual Op-Amp and an microcontroller.
2 liens sur ce capteur
http://langster1980.blogspot.com/2014/1 ... -with.html
https://bsfrance.fr/capteurs/509-Capteu ... 0-KPa.html
capteur de pression differentiel utlisant la techolgie solid state MEMS,
haute fiabilité, applicable dans une large plage de température simple
d'utilisation.
Gamme : 40 KPa, sortie tension 0-25 mV.
VCC : 5.0V
conso : 1 mA.
Linéarité: 0,25% FS (pleine echelle).
Ce capteur peut etre utilisé pour la mesure continue du niveau
d'une citerne ou autre contenant du meme type.
ATTENTION AUSSI
1 bar => 100KPa
40KPa => 0,4 Bar
Que veux-tu mesurer avec ce capteur ?
ensuite, il faudra aussi penser comment l'etalonner ...
il faudrait pouvoir lire la reference du circuit qui est derriere
Probablement un ampli OP programmable avec sortie SPI
pour ampliifer le faible delta mV en sortie du capteur
voir par exemple
Microchip Ampli OP PGA MCP6S21 ou du meme acabit
pour info, un test sur un MCP6S22
bien gentils, ces chinois avec materiel RPC SANS DATASHEET
Attention : probablement parce que le capteur est HORS SPECIFICATION !
ce capteur semble etre un
MPS20N0040D-D sphygmomanomètre capteur de pression 0-40kPa DIP-6 pour Arduino I
Specifications:
- Measuring medium: air
- Measuring range: 0-40kPa
- Operating temperature range: -40 ℃ ~ + 125 ℃
- Storage Temperature: -40 ℃ ~ + 150 ℃
- Humidity: (50% ± 10%) RH
- Ambient temperature: (25 ± 1) ℃
- Medium temperature: (25 ± 1) ℃
- Output impedance: 4kΩ ~ 6kΩ
- Zero output: -15mV~+15mV
- Hysteresis: +-0.7%F.S.
- Power supply: ≤10V DC or ≤2.0mA DC
- Insulation resistance: 100MΩ, 100VDC
recoupement avec AMAZON
AMAZON
Pressure Range: 0-5.8 psi. (40 kpa)
?Range: 40kpa
Output: mV signal.
Power Supply: 5VDC or constant current 1 ma.
?Linear Precision: 0.25% FS.
Works great when used with a LM358 Dual Op-Amp and an microcontroller.
2 liens sur ce capteur
http://langster1980.blogspot.com/2014/1 ... -with.html
https://bsfrance.fr/capteurs/509-Capteu ... 0-KPa.html
capteur de pression differentiel utlisant la techolgie solid state MEMS,
haute fiabilité, applicable dans une large plage de température simple
d'utilisation.
Gamme : 40 KPa, sortie tension 0-25 mV.
VCC : 5.0V
conso : 1 mA.
Linéarité: 0,25% FS (pleine echelle).
Ce capteur peut etre utilisé pour la mesure continue du niveau
d'une citerne ou autre contenant du meme type.
ATTENTION AUSSI
1 bar => 100KPa
40KPa => 0,4 Bar
Que veux-tu mesurer avec ce capteur ?
ensuite, il faudra aussi penser comment l'etalonner ...
il faudrait pouvoir lire la reference du circuit qui est derriere
Probablement un ampli OP programmable avec sortie SPI
pour ampliifer le faible delta mV en sortie du capteur
voir par exemple
Microchip Ampli OP PGA MCP6S21 ou du meme acabit
pour info, un test sur un MCP6S22
Exploitation capteur de pression avec un PIC
Bonjour Paul,
Merci pour ces précisions.
Entre temps j'ai réussi à lire et afficher sur LCD la valeur retournée par le capteur.
La prochaine étape sera de mesurer différentes colonnes d'eau.
Comme actuellement j'ai un bras dans le plâtre ces essais vont être décalés.
Je rendrai compte ici quand j'aurai réalisé ces manipulations.
La destination finale sera une mesure de niveau.
Merci pour ces précisions.
Entre temps j'ai réussi à lire et afficher sur LCD la valeur retournée par le capteur.
La prochaine étape sera de mesurer différentes colonnes d'eau.
Comme actuellement j'ai un bras dans le plâtre ces essais vont être décalés.
Je rendrai compte ici quand j'aurai réalisé ces manipulations.
La destination finale sera une mesure de niveau.
Exploitation capteur de pression avec un PIC
Bonjour,
Voici le fruit de mes cogitations:
Le module capteur est constitué d'un capteur de pression MPS 20N 0- 40 KPa suivi d'un ampli HX710B.
La broche CLK du module va sur RC3 d'un PIC18F2420 et la broche OUT du module va sur RC4 du PIC.
Le code coté PIC est traduit du code C de la datasheet du HX710B page 7.
La valeur affiché au repos (1020.5) est proche de la pression atmosphérique de mon baromètre (1018.8 hPa)
En chargeant le capteur avec une colonne d'eau la courbe se casse la figure au dessus de 800 mm.
Vue la provenance de ce capteur, je pense qu'il est défaillant.
Une autre énigme: Le code C indique while(ADDO) alors qu'il faut écrire while not(Pd) dans la fonction de lecture en Basic, il est probable qu'il s'agit d'une erreur dans la datasheet.
Transmission des 24 Bits entre le HX710b et le PIC.
Voici le fruit de mes cogitations:
Le module capteur est constitué d'un capteur de pression MPS 20N 0- 40 KPa suivi d'un ampli HX710B.
La broche CLK du module va sur RC3 d'un PIC18F2420 et la broche OUT du module va sur RC4 du PIC.
Le code coté PIC est traduit du code C de la datasheet du HX710B page 7.
Code : Tout sélectionner
program Test_Capt_Pres1
'Test capteur de pression MPS20N0040D-D + HX710B le 21/12/2018
Symbol Pk = PORTC.3 'SCK capteur --> RC3
Symbol Pd = PORTC.4 'OUT capteur --> RC4
'Déclaration LCD________________________________________________________________
dim LCD_RS as sbit at RB4_bit
LCD_EN as sbit at RB5_bit
LCD_D4 as sbit at RB0_bit
LCD_D5 as sbit at RB1_bit
LCD_D6 as sbit at RB2_bit
LCD_D7 as sbit at RB3_bit
LCD_RS_Direction as sbit at TRISB4_bit
LCD_EN_Direction as sbit at TRISB5_bit
LCD_D4_Direction as sbit at TRISB0_bit
LCD_D5_Direction as sbit at TRISB1_bit
LCD_D6_Direction as sbit at TRISB2_bit
LCD_D7_Direction as sbit at TRISB3_bit
'Declaration des variables_________________________
RecStr as string[6]
i as byte
Som as LongInt
Moy as float
sub function RdPr() as longint 'Lecture du capteur
dim Cnt as LongInt
dim i as byte
Pd = 1
Pk = 0
Cnt = 0
while not(Pd)
for i = 0 to 23
Pk = 1
Cnt = Cnt << 1
Pk = 0
if Pd then Cnt = Cnt + 1 end if
next i
Pk = 1
Cnt = Cnt XOR $800000
Pk = 0
Wend
Result = Cnt
end sub
main: 'Init programme_________________________________________________________________
'Uart1_Init(9600) 'Init Usart
Delay_ms(100)
CMCON = 7
ADCON1 = $0F 'RA0 -> RA5 en digital
LATA = $0
LATB = $0
LATC = $0
TRISA = $0
TRISB = $0
TRISC = %00010000
'Ecran Lcd Initial______________________________________________________________
Lcd_Init()
Lcd_Cmd(_LCD_CURSOR_OFF)
LCD_Cmd(_LCD_CLEAR)
Lcd_out(1,2, "CAPTEUR MSP 20N")
'_______________________________________________________________________________
while true
Som = 0
for i = 1 to 4 '4 mesures
Som = Som + RdPr() 'Lecture capteur
delay_ms(100)
next i
Moy = Som / 40000 'Valeur pression
FloatToStr_FixLen(Moy,RecStr, 6)
Lcd_out(2,4,RecStr + " hPa" )
' Uart1_write_text(RecStr)
delay_ms(1000)
Wend
end.
La valeur affiché au repos (1020.5) est proche de la pression atmosphérique de mon baromètre (1018.8 hPa)
En chargeant le capteur avec une colonne d'eau la courbe se casse la figure au dessus de 800 mm.
Vue la provenance de ce capteur, je pense qu'il est défaillant.
Une autre énigme: Le code C indique while(ADDO) alors qu'il faut écrire while not(Pd) dans la fonction de lecture en Basic, il est probable qu'il s'agit d'une erreur dans la datasheet.
Transmission des 24 Bits entre le HX710b et le PIC.
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Exploitation capteur de pression avec un PIC
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonsoir,
la figure 2 timing montre que la conversion doit debuter avec Dout à Zero
donc
while (Pd) ; me parait plutot OK ..
avec While(Not Pd) tu risques de perdre le bit de MSB
de plus cette boucle englobe toute le code ?
la figure 2 timing montre que la conversion doit debuter avec Dout à Zero
donc
while (Pd) ; me parait plutot OK ..
avec While(Not Pd) tu risques de perdre le bit de MSB
de plus cette boucle englobe toute le code ?
Code : Tout sélectionner
sub function RdPr() as longint 'Lecture du capteur
dim Cnt as LongInt
dim i as byte
' Pd = 1 ' on ne peut pas forcer une entree à 1
Pk = 0
Delay_us(5) ' pour sortir d'un eventuel mode power off
Cnt = 0
while (Pd) ' boucle tant que Dout=1
wend
for i = 0 to 23
Pk = 1
Cnt = Cnt << 1
Pk = 0
if Pd then Cnt = Cnt + 1 end if
next i
Pk = 1
Cnt = Cnt XOR $800000
Pk = 0
Result = Cnt
end sub
Exploitation capteur de pression avec un PIC
Exploitation capteur de pression avec un PIC
Merci Paul pour ton expertise et joyeux Noël à tous.
Une autre version en MikroBasic plus logique et qui fonctionne:
Le C me fera toujours mal à la tête
Une autre version en MikroBasic plus logique et qui fonctionne:
Code : Tout sélectionner
sub function RdPr() as longint
dim Cnt as LongInt
dim i as byte
Pk = 0
delay_us(5)
Cnt = 0
while Pd 'Boucle tant que Pd = 1 <------------------------------
wend '<---------------------------------------------------------
for i = 0 to 23
Pk = 1
Cnt = Cnt << 1
Pk = 0
if Pd then Cnt = Cnt + 1 end if
next i
Pk = 1
Cnt = Cnt XOR $800000
Pk = 0
Result = Cnt
end sub
Le C me fera toujours mal à la tête
Retourner vers « Généralités sur les PICs »
Qui est en ligne
Utilisateurs parcourant ce forum : Bing [Bot] et 58 invités