Skip to content
GitLab
Projets
Groupes
Sujets
Extraits de code
/
Aide
Aide
Support
Forum de la communauté
Raccourcis clavier
?
Proposer une rétroaction
Contribuer à GitLab
Connexion
Activer/désactiver la navigation
Menu
aw242765
IOT
Comparer les révisions
f48b5252e12b29eb32f726049acc86c4d7166fa4...ba44f92e8deff15cc2f69d85028bbd8f0a2d049f
Commits (2)
feat: implement full Arduino logic with ultrasonic sensors and RGB LED
· d87b8871
AbidiWael
a écrit
fév. 27, 2025
d87b8871
Merge branch 'feat/arduino-sensors-led' into 'main'
· ba44f92e
aw242765
a écrit
fév. 27, 2025
feat: implement full Arduino logic with ultrasonic sensors and RGB LED See merge request
!1
ba44f92e
Masquer les modifications d'espaces
En ligne
Côte à côte
sketch_feb24a/sketch_feb24a.ino
0 → 100644
Voir le fichier @
ba44f92e
// 🔹 Définition des broches pour les capteurs ultrason
const
int
trigPin1
=
9
;
// TRIG du capteur gauche
const
int
echoPin1
=
8
;
// ECHO du capteur gauche
const
int
trigPin2
=
7
;
// TRIG du capteur droit
const
int
echoPin2
=
6
;
// ECHO du capteur droit
// 🔹 Définition des broches pour la LED RGB
const
int
redPin
=
10
;
// LED Rouge
const
int
greenPin
=
11
;
// LED Verte
const
int
bluePin
=
12
;
// LED Bleue
void
setup
()
{
Serial
.
begin
(
9600
);
// Initialisation des capteurs
pinMode
(
trigPin1
,
OUTPUT
);
pinMode
(
echoPin1
,
INPUT
);
pinMode
(
trigPin2
,
OUTPUT
);
pinMode
(
echoPin2
,
INPUT
);
// Initialisation de la LED RGB
pinMode
(
redPin
,
OUTPUT
);
pinMode
(
greenPin
,
OUTPUT
);
pinMode
(
bluePin
,
OUTPUT
);
}
void
loop
()
{
// 🔹 Mesure des distances
float
distance1
=
measureDistance
(
trigPin1
,
echoPin1
);
float
distance2
=
measureDistance
(
trigPin2
,
echoPin2
);
// 🔹 Envoi des distances sous format JSON
Serial
.
print
(
"{
\"
gauche
\"
:"
);
Serial
.
print
(
distance1
);
Serial
.
print
(
",
\"
droite
\"
:"
);
Serial
.
print
(
distance2
);
Serial
.
println
(
"}"
);
// 🔹 Mise à jour de la LED en fonction des distances
updateLED
(
distance1
,
distance2
);
delay
(
500
);
// Pause pour éviter les mesures trop fréquentes
}
// 🔹 Fonction pour mesurer la distance avec un capteur ultrason
float
measureDistance
(
int
trig
,
int
echo
)
{
digitalWrite
(
trig
,
LOW
);
delayMicroseconds
(
2
);
digitalWrite
(
trig
,
HIGH
);
delayMicroseconds
(
10
);
digitalWrite
(
trig
,
LOW
);
long
duration
=
pulseIn
(
echo
,
HIGH
,
30000
);
return
(
duration
*
0.0343
)
/
2
;
}
// 🔹 Fonction pour gérer l'affichage de la LED RGB
void
updateLED
(
float
distanceGauche
,
float
distanceDroite
)
{
const
int
seuilDanger
=
30
;
// Seuil d'obstacle critique en cm
if
(
distanceGauche
<
seuilDanger
&&
distanceDroite
<
seuilDanger
)
{
// 🔴 Rouge si obstacles des deux côtés
setLED
(
HIGH
,
LOW
,
LOW
);
}
else
if
(
distanceGauche
<
seuilDanger
||
distanceDroite
<
seuilDanger
)
{
// 🔵 Bleu si obstacle d'un seul côté
setLED
(
LOW
,
LOW
,
HIGH
);
}
else
{
// 🟢 Vert si tout est dégagé
setLED
(
LOW
,
HIGH
,
LOW
);
}
}
// 🔹 Fonction utilitaire pour allumer la LED RGB
void
setLED
(
int
r
,
int
g
,
int
b
)
{
digitalWrite
(
redPin
,
r
);
digitalWrite
(
greenPin
,
g
);
digitalWrite
(
bluePin
,
b
);
}