Table des matières

Arduino : Introduction à la programmation physique

Prérequis

Pour aborder ce cours sur Arduino, il est essentiel d'avoir des notions de base en électricité (tension, courant, résistance) et une familiarité avec les concepts fondamentaux de la programmation (variables, conditions, boucles). Ces notions sont généralement abordées en classe de troisième et en début de seconde. Ce cours s'inscrit dans le programme de physique-chimie de seconde, plus précisément dans le thème de l'énergie et de la matière, en introduisant une approche pratique de la modélisation et de la commande de systèmes physiques.

Chapitre 1 : Découverte d'Arduino Uno

1.1 Qu'est-ce qu'Arduino ?

Arduino est une plateforme électronique open-source basée sur une carte microcontrôleur facile à programmer. Elle permet de créer des projets interactifs, des robots, des objets connectés et bien plus encore. L'intérêt principal d'Arduino réside dans sa simplicité d'utilisation et sa grande communauté d'utilisateurs, offrant une multitude de ressources et de tutoriels.

1.2 La carte Arduino Uno : Composants et Fonctions

La carte Arduino Uno est le modèle le plus populaire. Elle est composée de plusieurs éléments essentiels :

1.3 L'environnement de développement Arduino (IDE)

L'IDE Arduino est un logiciel gratuit qui permet d'écrire, de compiler et de téléverser des programmes sur la carte Arduino Uno. Il est basé sur le langage de programmation C++, simplifié pour faciliter l'apprentissage. L'IDE propose une interface conviviale avec un éditeur de code, une console de surveillance et des bibliothèques de fonctions pré-écrites.

Chapitre 2 : Premiers pas avec la programmation Arduino

2.1 Structure d'un programme Arduino

Un programme Arduino (appelé “sketch”) est composé de deux fonctions principales :

2.2 Allumer une LED : Exemple pratique

Voici un exemple simple pour allumer une LED connectée à la broche 13 de la carte Arduino Uno :

```cpp

void setup() {
 pinMode(13, OUTPUT); // Configure la broche 13 en sortie
}

void loop() {

 digitalWrite(13, HIGH); // Allume la LED
 delay(1000); // Attend 1 seconde
 digitalWrite(13, LOW); // Éteint la LED
 delay(1000); // Attend 1 seconde
}
```

Dans cet exemple, `pinMode(13, OUTPUT)` configure la broche 13 comme une sortie. `digitalWrite(13, HIGH)` envoie une tension de 5V à la broche 13, ce qui allume la LED. `digitalWrite(13, LOW)` envoie une tension de 0V, ce qui éteint la LED. `delay(1000)` met le programme en pause pendant 1000 millisecondes (1 seconde).

2.3 Variables, conditions et boucles

Chapitre 3 : Interaction avec l'environnement

3.1 Lecture d'une entrée analogique

Arduino peut lire des valeurs analogiques provenant de capteurs (photocellule, potentiomètre, etc.). La fonction `analogRead(pin)` permet de lire la tension sur une broche analogique (A0 à A5) et de la convertir en une valeur numérique entre 0 et 1023.

3.2 Contrôle d'un moteur DC

Un moteur DC peut être contrôlé en modifiant la tension qui lui est appliquée. La fonction `analogWrite(pin, value)` permet de générer un signal PWM (Pulse Width Modulation) sur une broche numérique, ce qui permet de contrôler la vitesse du moteur. La valeur `value` doit être comprise entre 0 et 255.

3.3 Exercice : Contrôle de la luminosité d'une LED avec un potentiomètre

Connectez un potentiomètre à une broche analogique (A0) et une LED à une broche numérique (9). Écrivez un programme qui ajuste la luminosité de la LED en fonction de la position du potentiomètre.

```cpp

const int potentiometrePin = A0;
const int ledPin = 9;

void setup() {

 pinMode(ledPin, OUTPUT);
}

void loop() {

 int valeurPotentiometre = analogRead(potentiometrePin);
 int luminosite = map(valeurPotentiometre, 0, 1023, 0, 255);
 analogWrite(ledPin, luminosite);
}
```

Dans cet exemple, `analogRead(potentiometrePin)` lit la valeur du potentiomètre. `map(valeurPotentiometre, 0, 1023, 0, 255)` convertit la valeur du potentiomètre (entre 0 et 1023) en une valeur de luminosité (entre 0 et 255). `analogWrite(ledPin, luminosite)` ajuste la luminosité de la LED en fonction de la valeur de luminosité.

Résumé