Aller au contenu principal
arduinoAvant de commencer

Avant de commencer

Objectifs du Chapitre

Comprendre ce qu’est une carte Arduino et ses usages.

Découvrir l’environnement Tinkercad pour simuler des circuits.

Apprendre à programmer et simuler des montages simples.

Maîtriser les commandes de base pour interagir avec l’électronique.

Où on va

Jusqu'ici, un programme lisait des données et affichait des résultats : tout se passait à l'écran. Une carte Arduino change la nature de l'exercice. Le programme allume une LED, lit un bouton, mesure une tension : il agit sur le monde physique, et le monde physique lui répond. Ce chapitre pose le décor et fait clignoter la première LED, en simulation, sans avoir besoin de matériel.

Qu’est-ce qu’Arduino ?

Définition

Arduino est une plateforme open-source combinant matériel électronique (carte microcontrôleur) et logiciel (IDE de programmation) permettant de créer des projets interactifs.

Les composants d’Arduino

  • Une carte Arduino Uno (ou autre modèle) qui exécute du code et interagit avec les composants.
  • Un langage de programmation inspiré du C/C++.
  • Un IDE (environnement de développement) pour écrire et transférer le code.
Exemples de projets possibles :
  • Clignotement de LED
  • Mesure de température
  • Robotique
  • Systèmes domotiques

2. Qu’est-ce que Tinkercad ?

Tinkercad est un outil en ligne gratuit permettant de :

  • Simuler des circuits électroniques avec Arduino.
  • Programmer en blocs ou en C++.
  • Tester vos montages sans matériel physique.

Accéder à Tinkercad

3. Premier projet avec Arduino

Étapes de création dans Tinkercad :

  1. Crée un compte et accède à la section Circuits.
  2. Ajoute une carte Arduino Uno.
  3. Place une LED et une résistance de 220Ω ou 330Ω.
  4. Connecte la LED :
    • Anode (patte longue) → Broche D3
    • Cathode (patte courte) → GND via la résistance
  5. Passe en code texte et saisis le code suivant :
Arduino
void setup() {
pinMode(3, OUTPUT);
}
void loop() {
digitalWrite(3, HIGH);
delay(1000);
digitalWrite(3, LOW);
delay(1000);
}
  1. Clique sur Démarrer la simulation.

Pourquoi utiliser Tinkercad ?

Avantages pour les débutants
  • Pas besoin de matériel : tout se fait en ligne.
  • Visualisation intuitive des circuits et composants.
  • Correction automatique des erreurs de branchement ou de syntaxe.

4. Le moniteur série

Le moniteur série permet à la carte Arduino d’envoyer ou de recevoir des messages texte avec l’ordinateur.

Initialiser la communication série

Arduino
Serial.begin(9600); // Place dans setup()
  • Cette commande initialise la connexion. Le nombre 9600 représente la vitesse de transmission (baud rate).

Envoyer des messages

Arduino
Serial.print("Message"); // Sans saut de ligne
Serial.println("Message"); // Avec saut de ligne

Lire des données envoyées par l’utilisateur

Arduino
if (Serial.available() > 0) {
int valeur = Serial.read(); // Lit un caractère envoyé
}

Exemple complet

Arduino
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println("Arduino est prêt !");
delay(1000);
}

5. Commandes utiles : gestion du temps

CommandeRôle
delay(ms)Pause en millisecondes (1000 = 1 seconde)
millis()Temps écoulé depuis le démarrage (en millisecondes)

Exemple avec millis()

Arduino
unsigned long previousMillis = 0;
const long interval = 1000;
void loop() {
if (millis() - previousMillis >= interval) {
previousMillis = millis();
Serial.println("Une seconde s'est écoulée");
}
}

6. Contrôler les composants

Lire et écrire sur les broches

FonctionDescription
digitalRead(pin)Lit l’état d’une broche numérique
digitalWrite(pin, état)Écrit un état HIGH ou LOW
analogRead(pin)Lit une tension analogique (0 à 1023)
analogWrite(pin, valeur)Génère un signal PWM (0 à 255)

7. Résumé des commandes essentielles

CommandeRôle
pinMode(pin, mode)Configure une broche (INPUT ou OUTPUT)
digitalWrite()Envoie un signal haut ou bas
digitalRead()Lit l'état logique d'une broche
analogRead()Lit une valeur analogique
analogWrite()Envoie un signal PWM
Serial.begin()Initialise la communication série
Serial.print()Affiche un message
delay()Crée un délai
millis()Chronomètre non-bloquant