projet escalier, eclairage LED

bonjour a tous

pour la petite histoire,

je suis en pleine renovation de ma maison, je m'attaque a l'escalier

et c'est la qu'arduino intervient

description du projet:

Bande led sous chaque nez de marche (led blanche (pas de RGB)

le but est de faire un allumage automatique au passage de quelqu'un

j'ai fait des test de différents capteurs pour au final opter pour une barrière laser (laser + capteur a photoresistance)

les PIR sont TROP sensible et multidirectionel

les infrarouges que j'ai testé sont trop peu fiable que ce soit niveau détection ou temps de réponse.

pour ce qui est de placer les LED, passé les gaine pour les capteur, ça c'est mon dommaine, ensuite arduino c'est autre chose... je suis plus que débutant!!!

je sait faire des truc hyper simple mais la malgrès mes lecture je bute...

apres multiple lecture j'ai "pondu" ce code qui franchement ne MARCHE PAS :smiling_imp:

les senario doivent etre les suivant:

1 capteur bas détecte-LED s'allume - (le monsieur monte l'escalier) - capteur haut détecte LED s’éteint)

2 capteur haut détecte-LED s'allume-(le monsieur descend) -capteur bas détecte - LED s’éteint

3 et 4 capteur haut(ou bas) détecte-LED s’allume -monsieur est bourré et fait demi tour) capteur haut( ou bas) détecte - LED s’éteint

quelques âmes charitable seraient a même de me filer un coup de main?

code actuel tres peu efficace....

int relayPin = 6;// pin du relay LOW allumé, HIGH eteind
int CapteurbasPin = 7;               // pin du capteur bas
int CapteurhautPin = 8;              //pin du capteur haut
int etatbas = 0;                    // etat du capt bas
int etathaut = 0;                   //etat du capt haut

void setup() {
  pinMode(relayPin, OUTPUT);      
  pinMode(CapteurbasPin, INPUT);
  pinMode(CapteurhautPin, INPUT);
  digitalWrite(relayPin, HIGH);
  }

void loop() {
  
  etatbas = digitalRead(CapteurbasPin); etathaut = digitalRead(CapteurhautPin); // read capteur


  
  if (etatbas == HIGH) //si capteur bas detecte
  
  {  do  {digitalWrite(relayPin, LOW);}  // TANT QUE capteur haut ou bas ne RE detecte pas, allume le relay

    while (etathaut != HIGH || etatbas != HIGH);
    
}

 
     if (etathaut == HIGH) //si capteur haut detecte
    
     {  do  {digitalWrite(relayPin, LOW);}  // TANT QUE capteur haut ou bas ne RE detecte pas, allume le relay

    while (etathaut != HIGH || etatbas != HIGH);
    
}
      
      
      
      }

merci d'avance 8)

Et si monsieur monte pendant que madame descend? Votre sketch devrait intégrer une minuterie pour éteindre au bout d'un moment.

Le laser est attractif mais ça veut dire bien sûr qu'il faut le couper, si vous le mettez trop bas, risque que l'utilisateur lève le pied et passe au dessus en montant les marchés 2 à 2, s'il est trop haut risque qu'un enfant se prenne le faisceau dans l'œil...

Un PIR bien calibré en bas et en haut et si vous êtes dans la rénovation intégré dans un montant discrètement normalement devrait fonctionner...

Pour votre code sinon étudiez un peu des exemples de machine à état.

des projets escalier il y en as beaucoup sur le forum, faut rechercher un peu.
Le mieux c'est un capteur infra rouge, comme dis plus haut, le laser il peut etre dangereux pour les yeux,si il est mal placé.

Le mieux, si tu les allumes toutes les marches en meme temps, c'est peut etre, d'intervenir un temps.

Si tu montes, le capteur du bas te detecte, tu allumes tes leds durant X secondes ( le temps de la monté) et s'eteint...

Pareil si descend, le capteur du haut detecte, et tu allumes les leds durant X secondes ( le temps de la descente)

rajoute peut etre un capteur de luminosité, pour que ça marche seulement la nuit ou le soir,
ou RTC tu me met par exemple entre 19H et 8H du matin par exemple...
meme si un capteur de luminosité serai mieux quand meme.

Dis moi comment tu alimentes ton montage? par une prise electrique a coté de l'escalier?

Merci de vos réponse,
j'ai poursuivis mes recherche sur le forum, en effet plusieurs projet simillaire trouvé :slight_smile:

la solution la plus simple en terme de codage semble en effet faire intervenir un temps d'allumage, je viens tester un bout de code cela fonctionne :slight_smile:

Pour répondre a ta question hazerty, je suis dans le cas d'un escalier beton, (plaqué par des marche bois)
une rainure dans chaque marche est prévu pour intégré le bandeau led

toute ces gaine retourne vers un petit coffret de distribution electrique caché sous l'escalier, allimenté lui meme par une arrivé directement isssu du tableau

je prévois donc un transfo pour allimenté l'arduino et un autre pour les LED

concernant les capteur OK, j'ai pris note de vos remarque et vais donc joué avec les PIR, (que j'ai deja)

j'ai par ailleurs découvert sur un post du forum la possibilité d'allumé les marche en cascade de manière assez simple,

je vais surement réfléchir a cette faisabilté:

j'ai 16 marche

donc 16 sortie de l'arduino, chacunerelié a une interface de puissance (pour le 12V des LED) qui commanderons chaque marche, un petit delay entre chaque allumage et c'est joué me semble t'il

[je rebosse mon code en totalité :wink: ]

question plutot hardware, que me conseillez vous en terme d'interface arduino>12v, je ne sais que choisir entre 16 transistor, 16 relais, ou 2 ULN 2803...

je serais tenté de dire ULN mais je ne suis pas expert en la matière.

Merci a vous

prend 16 transistor, ou relais c'est plus simple... tu as plein de schéma avec des transistors sur google.

blitzz:
j'ai 16 marche
donc 16 sortie de l'arduino, chacunerelié a une interface de puissance (pour le 12V des LED) qui commanderons chaque marche, un petit delay entre chaque allumage et c'est joué me semble t'il

plutot que 16 sorties tu as la solution 74HC595

Bonjour,

Avec un ULN2803 le cablage est simplifié, mais il ne peut commander que 500mA par sortie (avec un max de 2.5A pour le total)
Ca dépend donc de l'intensité de tes leds