Arduino - Potentiomètre déclenche un relais

Nous allons apprendre comment :

En connectant un relais à une ampoule, une bande LED, un moteur ou un actionneur... Nous pouvons utiliser le potentiomètre pour contrôler l'ampoule, la bande LED, le moteur ou l'actionneur...

Préparation du matériel

1×Arduino Uno
1×USB 2.0 cable type A/B
1×Potentiometer
1×Relay
1×Breadboard
1×Jumper Wires
1×(Optional) Solenoid Lock
1×(Optional) 12V Power Adapter
1×(Optional) DC Power Jack
1×(Optional) 9V Power Adapter for Arduino
1×(Recommended) Screw Terminal Block Shield for Arduino Uno
1×(Optional) Transparent Acrylic Enclosure For Arduino Uno

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos du relais et du potentiomètre

Si vous ne connaissez pas le relais et le potentiomètre (brochage, fonctionnement, programmation...), découvrez-les dans les tutoriels suivants :

Diagramme de câblage

Schéma de câblage du relais de potentiomètre Arduino

This image is created using Fritzing. Click to enlarge image

Code Arduino - Seuil Analogique

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino/arduino-potentiometer-triggers-relay */ // constants won't change const int POTENTIOMETER_PIN = A0; // Arduino pin connected to Potentiometer pin const int RELAY_PIN = 3; // Arduino pin connected to Relay's pin const int ANALOG_THRESHOLD = 500; void setup() { pinMode(RELAY_PIN, OUTPUT); // set arduino pin to output mode } void loop() { int analogValue = analogRead(POTENTIOMETER_PIN); // read the input on analog pin if(analogValue > ANALOG_THRESHOLD) digitalWrite(RELAY_PIN, HIGH); // turn on Relay else digitalWrite(RELAY_PIN, LOW); // turn off Relay }

Étapes rapides

  • Connectez Arduino au PC via le câble USB
  • Ouvrez l'IDE Arduino, sélectionnez la bonne carte et le bon port
  • Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino
  • Cliquez sur le bouton Upload de l'IDE Arduino pour téléverser le code sur Arduino
Téléversement de code Arduino IDE
  • Tournez le potentiomètre
  • Observez le changement d'état du relais

Explication du code

Lisez l'explication ligne par ligne dans les lignes de commentaire du code source !

Code Arduino - Seuil de tension

La valeur analogique du potentiomètre est convertie en valeur de tension, puis comparée à un seuil de tension pour déclencher un relais.

/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino/arduino-potentiometer-triggers-relay */ // constants won't change const int POTENTIOMETER_PIN = A0; // Arduino pin connected to Potentiometer pin const int RELAY_PIN = 3; // Arduino pin connected to Relay's pin const float VOLTAGE_THRESHOLD = 2.5; // Voltages void setup() { pinMode(RELAY_PIN, OUTPUT); // set arduino pin to output mode } void loop() { int analogValue = analogRead(POTENTIOMETER_PIN); // read the input on analog pin float voltage = floatMap(analogValue, 0, 1023, 0, 5); // Rescale to potentiometer's voltage if(voltage > VOLTAGE_THRESHOLD) digitalWrite(RELAY_PIN, HIGH); // turn on Relay else digitalWrite(RELAY_PIN, LOW); // turn off Relay } float floatMap(float x, float in_min, float in_max, float out_min, float out_max) { return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; }

Vidéo

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!