Exemples de code Arduino
Page mise à jour le 06-01-2026 à 23:21
// BLINK TEST

int ledPin = LED_BUILTIN;       // LED verte embarquée

void setup() {
  pinMode(ledPin, OUTPUT);      // pin digital en tant que sortie
}

void loop() {
  digitalWrite(ledPin, HIGH);   // niveau haut
  delay(100);                   // délai en millisecondes
  digitalWrite(ledPin, LOW);    // niveau bas
  delay(100);                   // délai en millisecondes
}
// CLASSE : STRUCTURE EXEMPLE

class Morse {
  public:
    Morse(int pin);         // constructeur
    void point();           // méthode point()
    void trait();           // méthode trait()
  private:
    int _pin;               // attribut pin
};

Morse::Morse(int pin) {     // définition du constructeur
  pinMode(pin, OUTPUT);
  _pin = pin;
}

void Morse::point() {       // définition de la méthode point()
  digitalWrite(_pin, HIGH);
  delay(250);
  digitalWrite(_pin, LOW);
  delay(250);
}

void Morse::trait() {       // définition de la méthode trait()
  digitalWrite(_pin, HIGH);
  delay(750);
  digitalWrite(_pin, LOW);
  delay(250);
}

Morse morse(LED_BUILTIN);   // nouvelle instance de l'objet

void setup() {
}

void loop() {
  for (int i=0; i<3; i++) morse.point();
  delay(500);
  for (int i=0; i<3; i++) morse.trait();
  delay(500);
  for (int i=0; i<3; i++) morse.point();
  delay(1500);
}
// EEPROM : LIRE ET ECRIRE

#include <EEPROM.h>

void setup() {
  Serial.begin(9600);
  clearEeprom();
  readEeprom();
}

void loop() {
}

void clearEeprom() {
  Serial.println("Effacement EEPROM");
  Serial.println("...");
  for (int i=0; i<1024; i++) 
    EEPROM.write(i, 0);
  Serial.println("Terminé !");
}

void readEeprom() {
  Serial.println("Lecture EEPROM");
  Serial.println("...");
  for (int i=0; i<50; i++)
    Serial.print(EEPROM.read(i));
  Serial.println("");
  Serial.println("Terminé !");
}
// CRYPTAGE MD5

#include <MD5.h>

void setup() {
  Serial.begin(9600);
  unsigned char* hash=MD5::make_hash("chaine à encoder"); // hachage MD5 de la chaine
  char *md5str = MD5::make_digest(hash, 16);              // encodage hexadécimal du hachage
  free(hash);                                             // libération de la mémoire allouée
  Serial.println(md5str);
  free(md5str);                                           // libération de la mémoire allouée
}

void loop() {
}
// PWM

const int SpdMotor1(5), DirMotor1(4), SpdMotor2(6), DirMotor2(7)

void setup() {
  pinMode(DirMotor1, OUTPUT);  
  pinMode(DirMotor2, OUTPUT);
}
 
void loop() {
  for(int Speed = 0; Speed <= 255; Speed += 5) { // marche avant en accélération
    digitalWrite(DirMotor1, HIGH);  
    digitalWrite(DirMotor2, HIGH);      
    analogWrite(SpdMotor1, Speed);
    analogWrite(SpdMotor2, Speed);
  } 
  for(int Speed = 255; Speed >= 0; Speed -= 5) { // marche arrière en décélération
    digitalWrite(DirMotor1,  LOW);  
    digitalWrite(DirMotor2,  LOW);      
    analogWrite(SpdMotor1, Speed);
    analogWrite(SpdMotor2, Speed);
  } 
  delay(1000);
}
// SERVO

int servoPin = 5;
int angle;
int pulseWidth;
int val;

void servopulse(int servoPin, int angle) {
  pulseWidth = (angle*11)+500;
  digitalWrite(servoPin, HIGH);
  delayMicroseconds(pulseWidth);
  digitalWrite(servoPin, LOW);
  delay(20-pulseWidth/1000);
}

void setup() {
  pinMode(servoPin, OUTPUT);
  Serial.begin(9600);
  Serial.println("Servo Ready");
}

void loop() {
  val = Serial.read();
  if(val>'0' && val<='9') {
    val = val-'0';
    val = val*(180/9);
    Serial.print("Position ");
    Serial.println(val, DEC);
    for(int i=0; i<=50; i++) 
      servopulse(servoPin, val);
  }
}
// SERVO ET POTENTIOMETRE

#include <Servo.h> 
 
Servo servo1;                         // objet servo
int potarPin = A0;                    // pin du potentiomètre
int val; 
 
void setup() { 
  servo1.attach(5);                   // servo sur pin 9
} 
 
void loop() { 
  val = analogRead(potarPin);         // lecture de la veleur du potentiomètre (0 à 1023) 
  val = map(val, 0, 1023, 0, 179);    // conversion en angle de 0 à 180°
  servo1.write(val);                  // positionnement du servo 
  delay(15);
} 
Papy WinTux - Philippe DESLOGES - 2023-2026 - Powered by Debian - Apache 2.4.54 - PHP 7.4.33 - Last update 06-01-2026 23:21 - Page size 42 ko built in 10 ms
All trademarks, logos, images and documents on these pages belong exclusively to their respective owners.