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);
}