Arduino NANO+relais double : Pour testeur de câble
Bonjour à tous,
et merci d'avance pour vos avis et vos coups de main.
Je travaille dans l'industrie et je test régulièrement des câbles et souvent seul. Je voulais un système pour gagner du temps et ainsi être sur d'avoir le bon câble testé.
Il me faut quelque chose de portatif donc avec des piles et qui dure une journée environ.
J'ai pris deux relais pour pouvoir tester deux câbles différents. Le principe est que je raccorde le contact du relais sur un côté du câble et de l'autre côté je mets mon multimètre sur continuité© (OHM) et cela m'enverra des impulsions sur mon testeur.
Le fonctionnement des relais auront des temps d'ouverture et de fermeture différents.
Le materiel: arduino Nano every board, relais double srd-05vdc-sl-c et avec 2 piles types 18650 de 3400mAh 3.7v en série.
raccordement pile sur GND/VIN
J'ai cramé déjà* 2 arduino NANO et je ne comprend pas pourquoi!
Programme
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| // Définir les broches pour les relais
const int relais1 = 5; // Relais 1 connecté à la broche D5
const int relais2 = 12; // Relais 2 connecté à la broche D12
// Variables pour stocker l'état actuel des relais
bool etatRelais1 = LOW;
bool etatRelais2 = LOW;
// Variables pour gérer le timing
unsigned long previousMillisRelais1 = 0;
unsigned long previousMillisRelais2 = 0;
// Intervalles en millisecondes (1000 ms = 1 seconde)
const unsigned long intervalRelais1 = 1000; // 1 seconde
const unsigned long intervalRelais2 = 3000; // 3 secondes
void setup() {
// Configurer les broches comme sorties
pinMode(relais1, OUTPUT);
pinMode(relais2, OUTPUT);
// Désactiver les relais au démarrage
digitalWrite(relais1, LOW);
digitalWrite(relais2, LOW);
}
void loop() {
// Obtenir le temps actuel
unsigned long currentMillis = millis();
// Gestion du relais 1
if (currentMillis - previousMillisRelais1 >= intervalRelais1) {
// Enregistrer le moment où on a changé l'état du relais 1
previousMillisRelais1 = currentMillis;
// Changer l'état du relais 1
etatRelais1 = !etatRelais1;
digitalWrite(relais1, etatRelais1);
}
// Gestion du relais 2
if (currentMillis - previousMillisRelais2 >= intervalRelais2) {
// Enregistrer le moment où on a changé l'état du relais 2
previousMillisRelais2 = currentMillis;
// Changer l'état du relais 2
etatRelais2 = !etatRelais2;
digitalWrite(relais2, etatRelais2);
}
} |
J'espère avoir été assez clair dans mes commentaires.
Encore merci