Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
A
Astreos_Arduino
Manage
Activity
Members
Labels
Plan
Issues
0
Issue boards
Milestones
Wiki
Code
Merge requests
0
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Hicham Brahimi
Astreos_Arduino
Commits
9704e0fc
Commit
9704e0fc
authored
6 years ago
by
hichbra
Browse files
Options
Downloads
Patches
Plain Diff
Ajout moules + sonde PT100
parent
7fbe6d30
Branches
Branches containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
Arduino/ASTREOS.ino
+65
-23
65 additions, 23 deletions
Arduino/ASTREOS.ino
with
65 additions
and
23 deletions
Arduino/ASTREOS.ino
+
65
−
23
View file @
9704e0fc
/*
GaussPlot 27/12/2011 Arduining.com
Showing Gauss measured by the SS495B in the serial monitor.
(Miniature Radiometric Linear Hall Efect Sensor)
Sensor connected to Analog channel 0.
#include
<Adafruit_MAX31865.h>
Translated and commented by Meurisse D. for the tutorial
http://wiki.mchobby.be/index.php?title=Senseur-Hall-SS495A
*/
#define XRANGE 50
#define PORT_HALL A0
#define PORT_HALL0 A0
#define PORT_HALL1 A1
#define PORT_HALL2 A4
#define PORT_HALL3 A5
#define PORT_HALL4 A6
#define PORT_HALL5 A7
#define PORT_FSR A2
#define INTERVALLE 100
#define RREF 430.0 // Valeur de la resistance Rref. 430 pour PT100, 4300 pour PT1000
#define RNOMINAL 100.0 // Resistance nominal 0-degrees-C du capteur, 100 pour PT100, 1000 pour PT1000
int
x
,
gss
;
unsigned
long
temps_precedent
;
unsigned
long
temps_precedent_temperature
;
int
x
,
gss0
,
gss1
,
gss2
,
gss3
,
gss4
,
gss5
;
int
fsrAnalogique
;
// La lecture analogique depuis le pont diviseur FSR+Resistance.
int
fsrVoltage
;
// La lecture analogique convertie en tension
...
...
@@ -20,25 +25,59 @@ unsigned long fsrResistance; // La tension convertie en resistance
unsigned
long
fsrConductance
;
long
fsrForce
;
// La resistance convertie en force (Newton)
Adafruit_MAX31865
max
=
Adafruit_MAX31865
(
10
,
11
,
12
,
13
);
// Amplificateur pour sonde PT100
float
temperature
;
void
setup
(){
Serial
.
begin
(
9600
);
temps_precedent
=
millis
();
max
.
begin
(
MAX31865_2WIRE
);
temperature
=
max
.
temperature
(
RNOMINAL
,
RREF
);
}
void
loop
(){
// lecture de la valeur analogique du Gaussmètre (entre 0 et 1024) pour une tension entre 0 et 5V
int
aValue
=
analogRead
(
PORT_HALL
);
// lecture de la valeur analogique du Gaussmètre (entre 0 et 1024) pour une tension entre 0 et 5V
int
aValue0
=
analogRead
(
PORT_HALL0
);
int
aValue1
=
analogRead
(
PORT_HALL1
);
int
aValue2
=
analogRead
(
PORT_HALL2
);
int
aValue3
=
analogRead
(
PORT_HALL3
);
int
aValue4
=
analogRead
(
PORT_HALL4
);
int
aValue5
=
analogRead
(
PORT_HALL5
);
//Serial.print(aValue);
// lecture de la valeur analogique du capteur de force (entre 0 et 1024) pour une tension entre 0 et 5V
int
fsrAnalogique
=
analogRead
(
PORT_FSR
);
//
int fsrAnalogique = analogRead(PORT_FSR);
// transforme la valeur de 0 à 1024 vers 0 à 50
x
=
map
(
aValue
,
0
,
1024
,
0
,
XRANGE
);
// transforme la valeur de 0 à 1024 vers 0 à 50
//x = map(aValue, 0, 1024, 0, XRANGE);
//x2 = map(aValue2, 0, 1024, 0, XRANGE);
// transforme la valeur lue en Gauss
gss
=
map
(
aValue
,
102
,
922
,
-
640
,
640
);
gss0
=
map
(
aValue0
,
102
,
922
,
-
640
,
640
);
gss1
=
map
(
aValue1
,
102
,
922
,
-
640
,
640
);
gss2
=
map
(
aValue2
,
102
,
922
,
-
640
,
640
);
gss3
=
map
(
aValue3
,
102
,
922
,
-
640
,
640
);
gss4
=
map
(
aValue4
,
102
,
922
,
-
640
,
640
);
gss5
=
map
(
aValue5
,
102
,
922
,
-
640
,
640
);
//uint16_t rtd = max.readRTD(); // Lecture de l'amplificateur
//Serial.print("RTD value: "); Serial.println(rtd);
//float ratio = rtd;
//ratio /= 32768;
/* La récuperation de la température étant plus longue, on ne le fait qu'une fois toutes les secondes.
* Ainsi la mise à jour des valeurs de gauss au lieu une fois toutes les 1/10 de seconde
* et au bout de 10 valeurs, il y aura un gap de 200 millisecondes
*/
if
(
millis
()
-
temps_precedent_temperature
>=
INTERVALLE
*
10
)
{
temperature
=
max
.
temperature
(
RNOMINAL
,
RREF
);
// Temperature de la sonde PT100
temps_precedent_temperature
=
millis
();
}
//Serial.print("Ratio = "); Serial.println(ratio,8);
//Serial.print("Resistance = "); Serial.println(RREF*ratio,8);
//Serial.print("Temperature = "); Serial.println(max.temperature(RNOMINAL, RREF));
// ------ Affichage d'un bargraph sur le moniteur s
ér
ie ----
// ------ Affichage d'un bargraph sur le moniteur s
é
rie ----
/*Serial.print("|");
for (int i=0;i<x;i++){
if(i==XRANGE/2-1)Serial.print("|");
...
...
@@ -53,7 +92,11 @@ void loop(){
// ----------------------------------------------------------
// affiche la valeur en Gauss
Serial
.
println
(
gss
);
if
(
millis
()
-
temps_precedent
>=
INTERVALLE
)
{
Serial
.
print
(
gss0
);
Serial
.
print
(
";"
);
Serial
.
print
(
gss1
);
Serial
.
print
(
";"
);
Serial
.
print
(
gss2
);
Serial
.
print
(
";"
);
Serial
.
print
(
gss3
);
Serial
.
print
(
";"
);
Serial
.
print
(
gss4
);
Serial
.
print
(
";"
);
Serial
.
print
(
gss5
);
Serial
.
print
(
";"
);
Serial
.
println
(
temperature
);
//Serial.println(millis()-temps_precedent);
temps_precedent
=
millis
();
}
//Serial.println(" Gauss");
// lecture de la valeur analogique (entre 0 et 1023) pour une tension entre 0 et 5V (= 5000mV)
...
...
@@ -64,8 +107,8 @@ void loop(){
if (fsrVoltage == 0) {
Serial.println("Aucune pression");
} else {
// La tension = Vcc * R / (R + FSR) o
ù
R = 10K et Vcc = 5V
// d'o
ù
FSR = ((Vcc - V) * R) / V
// La tension = Vcc * R / (R + FSR) o
ù
R = 10K et Vcc = 5V
// d'o
ù
FSR = ((Vcc - V) * R) / V
fsrResistance = 5000 - fsrVoltage; // fsrVoltage est en millivolts donc 5V = 5000mV
fsrResistance *= 10000; // 10K resistance
fsrResistance /= fsrVoltage;
...
...
@@ -87,6 +130,5 @@ void loop(){
}*/
// attendre 1/10 de seconde
delay
(
200
);
//
delay(
1
);
}
This diff is collapsed.
Click to expand it.
Preview
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment