0% ont trouvé ce document utile (0 vote)
41 vues6 pages

Test 5

Ce document présente un programme Arduino pour lire la température d'un capteur LM35 et l'afficher sur un afficheur 7 segments à anode commune. Il fournit une liste de matériel nécessaire, un schéma de connexion et un exemple de code Arduino détaillant les étapes de lecture de la température et d'affichage. Le code inclut des fonctions pour gérer l'affichage des chiffres sur l'afficheur 7 segments.

Transféré par

Paul Paulin
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
41 vues6 pages

Test 5

Ce document présente un programme Arduino pour lire la température d'un capteur LM35 et l'afficher sur un afficheur 7 segments à anode commune. Il fournit une liste de matériel nécessaire, un schéma de connexion et un exemple de code Arduino détaillant les étapes de lecture de la température et d'affichage. Le code inclut des fonctions pour gérer l'affichage des chiffres sur l'afficheur 7 segments.

Transféré par

Paul Paulin
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Voici un exemple de programme Arduino qui lit la température d'un capteur LM35 et l'affiche sur

un afficheur 7 segments à anode commune à 4 chiffres.

### Matériel nécessaire :

- Arduino Uno

- Capteur de température LM35

- Afficheur 7 segments à anode commune à 4 digits

- Résistances (si nécessaire)

- Fils de connexion

### Schéma de connexion :

1. Connectez le pin de sortie du LM35 à l'une des entrées analogiques de l'Arduino (par exemple
A0).

2. Connectez les pins de l'afficheur 7 segments aux pins numériques de l'Arduino. Dans un
afficheur à anode commune, les pattes des segments doivent être connectées à la masse pour
être activées.

### Exemple de code Arduino :

```cpp

// Pins de l'afficheur 7 segments

const int a = 2;

const int b = 3;

const int c = 4;

const int d = 5;

const int e = 6;

const int f = 7;
const int g = 8;

const int dp = 9; // point décimal, si nécessaire

// Pin du capteur LM35

const int lm35Pin = A0;

// Définition des segments pour les chiffres de 0 à 9

const int digitSegments[10][7] = {

{1, 1, 1, 1, 1, 1, 0}, // 0

{0, 1, 1, 0, 0, 0, 0}, // 1

{1, 1, 0, 1, 1, 0, 1}, // 2

{1, 1, 1, 1, 0, 0, 1}, // 3

{0, 1, 1, 0, 0, 1, 1}, // 4

{1, 0, 1, 1, 0, 1, 1}, // 5

{1, 0, 1, 1, 1, 1, 1}, // 6

{1, 1, 1, 0, 0, 0, 0}, // 7

{1, 1, 1, 1, 1, 1, 1}, // 8

{1, 1, 1, 1, 0, 1, 1} // 9

};

// Pins pour les chiffres de l'afficheur

const int digitPins[4] = {10, 11, 12, 13};

void setup() {

// Initialisation des pins de l'afficheur comme sorties


pinMode(a, OUTPUT);

pinMode(b, OUTPUT);

pinMode(c, OUTPUT);

pinMode(d, OUTPUT);

pinMode(e, OUTPUT);

pinMode(f, OUTPUT);

pinMode(g, OUTPUT);

pinMode(dp, OUTPUT);

// Initialisation des pins des chiffres

for (int i = 0; i < 4; i++) {

pinMode(digitPins[i], OUTPUT);

Serial.begin(9600);

void loop() {

// Lire la valeur analogique du capteur

int sensorValue = analogRead(lm35Pin);

// Convertir la valeur analogique en température en °C

float voltage = sensorValue * (5.0 / 1023.0);

float temperatureC = voltage * 100;


// Afficher la température sur le moniteur série

Serial.print("Temperature: ");

Serial.print(temperatureC);

Serial.println(" °C");

// Convertir la température en un nombre entier

int tempToShow = (int)temperatureC;

// Afficher la température sur l'afficheur 7 segments

displayNumber(tempToShow);

delay(1000); // Attendre 1 seconde avant la prochaine lecture

void displayNumber(int num) {

// Afficher un nombre à 4 chiffres sur l'afficheur 7 segments

int digits[4] = {0, 0, 0, 0};

digits[3] = num % 10; // Unité

num /= 10;

digits[2] = num % 10; // Dizaines

num /= 10;

digits[1] = num % 10; // Centaines

num /= 10;

digits[0] = num % 10; // Milliers


// Afficher chaque chiffre sur l'afficheur

for (int i = 0; i < 4; i++) {

// Activer le digit courant

for (int j = 0; j < 4; j++) {

digitalWrite(digitPins[j], (j == i) ? LOW : HIGH); // LOW pour activer le digit

displayDigit(digits[i]);

delay(5); // Petit délai pour éviter le scintillement

void displayDigit(int num) {

// Définir les segments en fonction du chiffre

digitalWrite(a, digitSegments[num][0]);

digitalWrite(b, digitSegments[num][1]);

digitalWrite(c, digitSegments[num][2]);

digitalWrite(d, digitSegments[num][3]);

digitalWrite(e, digitSegments[num][4]);

digitalWrite(f, digitSegments[num][5]);

digitalWrite(g, digitSegments[num][6]);

```

### Explications :
- **Lecture de la température** : Le code lit la température à partir du capteur LM35, qui produit
une tension proportionnelle à la température.

- **Affichage sur l'afficheur** : Les chiffres sont affichés sur l'afficheur 7 segments à anode
commune. Les segments sont activés par la mise à la masse (LOW), tandis que les pattes des
chiffres sont activées par l'entrée HIGH.

- **Fonction `displayNumber`** : Cette fonction décompose le nombre en chiffres individuels et


les affiche successivement sur l'afficheur.

Assurez-vous de bien câbler le circuit selon votre matériel et de tester le programme. Si vous
avez des questions ou besoin d'aide supplémentaire, n'hésitez pas à demander !

Vous aimerez peut-être aussi