Electronique

Voici la manière de souder et brancher tous ces composants sur Arduino. J’utilise tantôt un nano, uno ou méga, mais les raccordements aux bornes restent les mêmes.


Le bouton pression:

Il vous faut un bouton pression, une résistance de 220 ohm

Le code:

// C++ code
//

int boutonPin = 2;
bool dernierEtat = HIGH;

void setup() {
pinMode(boutonPin, INPUT_PULLUP); // Active la résistance de pull-up interne
Serial.begin(9600);
}

void loop() {
bool etatActuel = digitalRead(boutonPin);

if (etatActuel != dernierEtat) {
delay(10); // Anti-rebond logiciel simple
etatActuel = digitalRead(boutonPin); // Relit après le délai

if (etatActuel != dernierEtat) {
dernierEtat = etatActuel;

if (etatActuel == LOW) {
Serial.println(« Bouton appuyé ! »);
} else {
Serial.println(« Bouton relâché. »);
}
}
}
}


L’encodeur 360:

Il vous faut juste un encodeur 360

Le code:

// C++ code
//

#define CLK 2
#define DT 3
#define SW 4 // Pin pour le bouton poussoir de l’encodeur

int lastClkState;
int currentClkState;
int lastButtonState = HIGH;

void setup() {
pinMode(CLK, INPUT);
pinMode(DT, INPUT);
pinMode(SW, INPUT_PULLUP); // Bouton en pull-up interne

Serial.begin(9600);

lastClkState = digitalRead(CLK);
}

void loop() {
// Détection de rotation
currentClkState = digitalRead(CLK);
if (currentClkState != lastClkState) {
if (digitalRead(DT) != currentClkState) {
Serial.println(« Rotation vers la droite »);
} else {
Serial.println(« Rotation vers la gauche »);
}
}
lastClkState = currentClkState;

// Détection de clic sur le bouton
int buttonState = digitalRead(SW);
if (buttonState == LOW && lastButtonState == HIGH) {
Serial.println(« Bouton de l’encodeur appuyé ! »);
delay(50); // Anti-rebond simple
}
lastButtonState = buttonState;
}


Le potentiomètre:

Il vous faut juste un potentiomètre

Le code:

// C++ code
//

int potPin = A0; // Broche analogique connectée au potentiomètre
int potValue = 0; // Pour stocker la lecture du potentiomètre
int lastValue = -1; // Pour détecter les changements

void setup() {
Serial.begin(9600); // Initialisation de la communication série
}

void loop() {
potValue = analogRead(potPin); // Lire la valeur (0 à 1023)

// Afficher seulement si la valeur a changé significativement
if (abs(potValue – lastValue) > 5) {
Serial.print(« Valeur du potentiomètre : « );
Serial.println(potValue);
lastValue = potValue;
}

delay(50); // Petite pause pour éviter l’affichage trop rapide
}


La Led:

Il vous faut une résistance de 220 ohm pour chaque LED que vous utilisez.

Le code:

// C++ code
//
void setup() {
pinMode(2, OUTPUT); // Configure la pin 2 comme sortie
pinMode(3, OUTPUT); // Configure la pin 3 comme sortie
pinMode(4, OUTPUT); // Configure la pin 4 comme sortie
pinMode(5, OUTPUT); // Configure la pin 5 comme sortie
}

void loop() {
digitalWrite(2, HIGH); // Allume la LED
delay(100); // Attend 500ms
digitalWrite(2, LOW); // Éteint la LED
delay(100); // Attend 500ms

digitalWrite(3, HIGH); // Allume la LED
delay(100); // Attend 500ms
digitalWrite(3, LOW); // Éteint la LED
delay(100); // Attend 500ms

digitalWrite(4, HIGH); // Allume la LED
delay(100); // Attend 500ms
digitalWrite(4, LOW); // Éteint la LED
delay(100); // Attend 500ms

digitalWrite(5, HIGH); // Allume la LED
delay(100); // Attend 500ms
digitalWrite(5, LOW); // Éteint la LED
delay(100); // Attend 500ms
}


 

Laisser un commentaire