Passionnement
Bonjour et bienvenu,

Bonjour et bienvenu sur le forum. Ici tu verra, la bonne humeur et l'entraide sont de mise.
Pas de reproche ni de prise de tête. Respect et Amitié sont de rigueur.
Pour la convivialité, nous te demandons de prendre 5mn pour te présenter a tout le monde et de renseigner ton profil le plus précisément possible.

Pour cela, ==> clique ici <== et tu créer un nouveaux sujet (une petite explication est en haut de la page).

Si tu ne fait pas de présentation, ton compte sera supprimé automatiquement après 48H.

Sans présentation, tu n'aura pas accès a la totalité du forum (qui comporte plus de 30.000 messages). Quand tu aura fait ta présentation, un modérateur ou administrateur te donnera les droits pour le forum dans sa totalité dans les 24 h.

Le Staff

Bienvenu sur ton Forum 
Invité  
Juillet 2017
LunMarMerJeuVenSamDim
     12
3456789
10111213141516
17181920212223
24252627282930
31      

Calendrier Calendrier

Rechercher
 
 

Résultats par :
 

 


Rechercher Recherche avancée

Derniers sujets
» Magasins préféré des modélistes.
Aujourd'hui à 12:47 par dany-om

» arduino easy plug
Aujourd'hui à 11:17 par dany-om

» Fête nationale
Hier à 20:33 par Cousin Hub

» Arduino et les servomoteur.
Dim 16 Juil 2017 - 11:12 par dany-om

» Les trains autour du monde
Dim 16 Juil 2017 - 11:10 par dany-om

» White Pass & Yukon Route ou le train de l'OR.
Jeu 13 Juil 2017 - 5:57 par likiki

» Grassmaster et flocages pas chers
Mer 12 Juil 2017 - 17:28 par Vince Belgium

» Les microcontrôleurs
Mer 12 Juil 2017 - 17:12 par Cousin Hub

» Nouveaux articles sur Locoduino !
Mar 11 Juil 2017 - 18:53 par Cousin Hub

» Construction d'une BR52 au 1/35
Lun 19 Juin 2017 - 21:46 par dany-om

» Transformation d'un véhicule statique 1/87 en véhicule roulant autonome
Sam 10 Juin 2017 - 19:26 par Filou

» Le grassmaster de Likiki
Jeu 25 Mai 2017 - 8:11 par Filou

» Pourquoi il faut s'arrêter a un passage a niveau.
Ven 19 Mai 2017 - 20:37 par dany-om

» Le nouveau gouvernement
Ven 19 Mai 2017 - 20:34 par lherve54

» Photos du monde.
Jeu 11 Mai 2017 - 22:12 par dany-om

» Car-system de chez Faller
Mer 10 Mai 2017 - 18:58 par dany-om

» Realistic Scenery
Mar 9 Mai 2017 - 18:05 par lherve54

» Circulation routière animée
Lun 1 Mai 2017 - 14:40 par Cousin Hub

» [France] Signalisation et service de la circulation
Sam 29 Avr 2017 - 13:35 par dany-om

» Accident du Tunnel du Crozet.Samedi 20 mars 1971
Sam 29 Avr 2017 - 9:37 par dany-om


Gestion des places d'un parking

Voir le sujet précédent Voir le sujet suivant Aller en bas

Gestion des places d'un parking

Message par likiki le Dim 16 Nov 2014 - 12:18

,


Voici ma petite contribution sur la gestion des 9 places d'un parking.







Le programme :


//................................
//:                              :
//:  Parking Likiki              :
//:                              :
//:  15 Nov 2014                 :
//:                              :
//................................

#define BoutonE 3 // Bouton + sur pin 3
#define BoutonS 2 // Bouton - sur pin 2
#include "LiquidCrystal.h" // Ajout de la librairie pour afficheur lcd

LiquidCrystal lcd(13,12,11,10,9,8,7,6,5,4); // déclaration des bornes du lcd

int Voitures = 9 ; // Nb de vehicule dans le parking
int etat_BoutonE ; // Enregistre etat du bouton +
int etat_BoutonS ; // enregistre etat du bouton -

char Message1[ ] = " Place libre = " ;
char Message2[ ] = " Parking Complet" ;

//
//
void setup()
{
 lcd.begin(16,2); // Déclaraton du type d'afficheur 16 cracteres sur 2 lignes
 pinMode(BoutonE, INPUT); // pin en entrée
 pinMode(BoutonS, INPUT); // pin en entrée
}

void loop()
{
  etat_BoutonE = digitalRead(BoutonE); // Lecture de la broche et enregistrement du résultat
  etat_BoutonS = digitalRead(BoutonS); // Idem ci dessus pour le 2eme bouton
 
  
  if (etat_BoutonS == LOW && Voitures < 9)
  {
    Voitures = Voitures + 1;
    delay(500);
  }
  if (etat_BoutonE == LOW && Voitures >0)
  {
   Voitures = Voitures - 1; 
   delay(500);
  }
  if (Voitures >0)
  {
  lcd.setCursor(0,0);
  lcd.print(Message1);
  lcd.setCursor(15,0);
  lcd.print(Voitures);
  }
  
  else
  {
    lcd.setCursor(0,0);
    lcd.print(Message2);
    
  }
  
  
  
}
 






Dernière édition par likiki le Lun 17 Nov 2014 - 18:40, édité 1 fois
avatar
likiki
Administrateur
Administrateur

Localisation : Saintry Sur Seine
Humeur : De tout coeur avec les victimes des attentats en France.
Messages : 10184
Age : 50
Emploi/loisirs : Gérant de son BET Ascenseurs

http://Webacappelliens.fr

Revenir en haut Aller en bas

Re: Gestion des places d'un parking

Message par Cousin Hub le Dim 16 Nov 2014 - 13:13

pas mal, mais en Français avec un S si plus d'une place libre.



Tu ne testes pas la valeur <= 0 et pourtant ton etat_BoutonS continue à faire -1 à voitures.

tu aurais du faire

Code:
 if (etat_BoutonS == LOW && voitures > 0)


Pour gagner de l'espace en mémoire

Byte de préférence à un Int pour les variables.

Un Boolean pour les états des boutons : 0 => LOW et 1=> HIGH

Toujours en vue de gagner de la mémoire et de la rapidité en exécution.

Il faut éviter aussi le delay(x) qui bloque le programme.

Si tu appuies sur le bouton et que le programme est en delay(x), tu loupes une itération.
c'est vrai que dans l'espace de 500 milliseconde, tu dois faire vite mais ce n'est pas une programmation propre.

Par exemple en supprimant les delay(x) et en mettant les BoutonE et BoutonS en position High après avoir fait +1 ou -1 à voitures.

Ce qui fait qu'a chaque impulsion sur le BoutonE ou BoutonS tu ajoutes ou soustrait une place et dans la foulée les boutons reviennent en attente d'ordres.

Il faut bien évidemment que les boutons physiques soit vraiment à impulsions et non à contact permanent.

on peut aussi choisir le switch case en fonction de l'état des boutons mais nécessitera plus d'écriture.


 car il faut le faire quand même.
avatar
Cousin Hub
Administrateur
Administrateur

Localisation : partout ou la liberté est en danger.
Humeur : une pensée pour ceux qui comme moi défendent les valeurs de la France au prix de leur propre vie.
Messages : 2697
Age : 55
Emploi/loisirs : train, modelisme, arduino, robotique

Revenir en haut Aller en bas

Re: Gestion des places d'un parking

Message par likiki le Dim 16 Nov 2014 - 14:10

@Cousin Hub a écrit:pas mal, mais en Français avec un S si plus d'une place libre.


Oui mais "Places libre = 1" c'est pas bon non plus. Laughing

@Cousin Hub a écrit:
Tu ne testes pas la valeur <= 0 et pourtant ton etat_BoutonS continue à faire -1 à voitures.

tu aurais du faire

Code:
 if (etat_BoutonS == LOW && voitures > 0)

Ben non, car quand la valeur est a "0", je ne touche plus a la valeur



  else
  {
    lcd.setCursor(0,0);
    lcd.print(Message2);
    
  }


Laughing

@Cousin Hub a écrit:
Byte de préférence à un Int pour les variables.

Un Boolean pour les états des boutons : 0 => LOW et 1=> HIGH


Oui, mais là j'ai fait ça en mode rapide. Very Happy


@Cousin Hub a écrit:Toujours en vue de gagner de la mémoire et de la rapidité en exécution.

Il faut éviter aussi le delay(x) qui bloque le programme.

Si tu appuies sur le bouton et que le programme est en delay(x), tu loupes une itération.
c'est vrai que dans l'espace de 500 milliseconde, tu dois faire vite mais ce n'est pas une programmation propre.

Par exemple en supprimant les delay(x) et en mettant les BoutonE et BoutonS en position High après avoir fait +1 ou -1 à voitures.

Ce qui fait qu'a chaque impulsion sur le BoutonE ou BoutonS tu ajoutes ou soustrait une place et dans la foulée les boutons reviennent en attente d'ordres.

Il faut bien évidemment que les boutons physiques soit vraiment à impulsions et non à contact permanent.

on peut aussi choisir le switch case en fonction de l'état des boutons mais nécessitera plus d'écriture.

Le " delay " est là pour éviter le rebond uniquement, et éviter la prise en compte de plusieurs impulsions quand en faite il n'y en as qu'une. Et puis pour un parking, si deux voitures entre a moins de 500 millisecondes l'une de l'autre, c'est quelles roulent vite.

J'ose même pas imaginer la vitesse de fonctionnement de la barrière du parking.



@Cousin Hub a écrit:
 car il faut le faire quand même.

avatar
likiki
Administrateur
Administrateur

Localisation : Saintry Sur Seine
Humeur : De tout coeur avec les victimes des attentats en France.
Messages : 10184
Age : 50
Emploi/loisirs : Gérant de son BET Ascenseurs

http://Webacappelliens.fr

Revenir en haut Aller en bas

Re: Gestion des places d'un parking

Message par Cousin Hub le Dim 16 Nov 2014 - 20:00

  je ne suis pas d'accord avec toi.

Une fois que ta variable voiture <= 0, je suis d'accord que tu fasses le Else du

  if (Voitures >0)

mais si tu appuies de nouveau sur BoutonS, ta variable Voitures prends -1 donc 0 -1 = -1.

D'accord ton message ne change pas mais le décompte n'est pas bon.

ou alors réintialise voitures à la valeur 0 dans le Else.

avatar
Cousin Hub
Administrateur
Administrateur

Localisation : partout ou la liberté est en danger.
Humeur : une pensée pour ceux qui comme moi défendent les valeurs de la France au prix de leur propre vie.
Messages : 2697
Age : 55
Emploi/loisirs : train, modelisme, arduino, robotique

Revenir en haut Aller en bas

Re: Gestion des places d'un parking

Message par likiki le Lun 17 Nov 2014 - 17:18

Tout a fait, il suffit de modifier


  if (etat_BoutonE == LOW)
  {
   Voitures = Voitures - 1; 
   delay(500);
  }


Par :


  if (etat_BoutonE == LOW && Voitures >0)
  {
   Voitures = Voitures - 1; 
   delay(500);
  }



avatar
likiki
Administrateur
Administrateur

Localisation : Saintry Sur Seine
Humeur : De tout coeur avec les victimes des attentats en France.
Messages : 10184
Age : 50
Emploi/loisirs : Gérant de son BET Ascenseurs

http://Webacappelliens.fr

Revenir en haut Aller en bas

Re: Gestion des places d'un parking

Message par Cousin Hub le Lun 17 Nov 2014 - 17:49

Ha bin quand même,
tu comprends vite mais il faut t'expliquer longtemps
avatar
Cousin Hub
Administrateur
Administrateur

Localisation : partout ou la liberté est en danger.
Humeur : une pensée pour ceux qui comme moi défendent les valeurs de la France au prix de leur propre vie.
Messages : 2697
Age : 55
Emploi/loisirs : train, modelisme, arduino, robotique

Revenir en haut Aller en bas

Re: Gestion des places d'un parking

Message par likiki le Lun 17 Nov 2014 - 17:50



C'est que je suis quelqu'un de très occupé, il me faut donc trouver le temps de faire tout ce que j'ai a faire.



avatar
likiki
Administrateur
Administrateur

Localisation : Saintry Sur Seine
Humeur : De tout coeur avec les victimes des attentats en France.
Messages : 10184
Age : 50
Emploi/loisirs : Gérant de son BET Ascenseurs

http://Webacappelliens.fr

Revenir en haut Aller en bas

Re: Gestion des places d'un parking

Message par Cousin Hub le Lun 17 Nov 2014 - 18:01

Bon maitenant que cela fonctionn, il faut les feux de signalisation à l'entrée du parking.

Verte quand il reste des places
Rouge quand le parking est plein ou fermé ( la j'ajoute)
Orange clignotant quand les barrières deconnent ou cassées(la j'ajoute aussi)

mais comme tu n'as pas beaucoups de boulot en ce moment ,je suis sur que tu peux faire cela en moins de dix minutes.
avatar
Cousin Hub
Administrateur
Administrateur

Localisation : partout ou la liberté est en danger.
Humeur : une pensée pour ceux qui comme moi défendent les valeurs de la France au prix de leur propre vie.
Messages : 2697
Age : 55
Emploi/loisirs : train, modelisme, arduino, robotique

Revenir en haut Aller en bas

Re: Gestion des places d'un parking

Message par likiki le Lun 17 Nov 2014 - 18:10



Mais mon cher Hubert, tout ça est fait puisque j'ai mis un tableau d'affichage.

Et comme maintenant plus personne ne respecte les stop et les feux rouge (c'est surtout que je n'ai pas de LED sous la main) pourquoi j'irais en mettre ?




avatar
likiki
Administrateur
Administrateur

Localisation : Saintry Sur Seine
Humeur : De tout coeur avec les victimes des attentats en France.
Messages : 10184
Age : 50
Emploi/loisirs : Gérant de son BET Ascenseurs

http://Webacappelliens.fr

Revenir en haut Aller en bas

Re: Gestion des places d'un parking

Message par Cousin Hub le Lun 17 Nov 2014 - 18:25

parce que moi je suis préventeur et que plus personnes ne lis les messages sur écran, tu devrais le savoir.
avatar
Cousin Hub
Administrateur
Administrateur

Localisation : partout ou la liberté est en danger.
Humeur : une pensée pour ceux qui comme moi défendent les valeurs de la France au prix de leur propre vie.
Messages : 2697
Age : 55
Emploi/loisirs : train, modelisme, arduino, robotique

Revenir en haut Aller en bas

Re: Gestion des places d'un parking

Message par Gwadavel le Mar 18 Nov 2014 - 20:13

Bonsoir,

Bravo Chef, je viens de regarder très vite ton programme, j'avais presque fait la même chose.

pour la sortie des voiture j'avais fait if(!Pousssoir && nbVoiture > 0){nbVoiture-- .....

Pour l'anti rebond tu as bien fait d'utiliser la fonction delay(), c'est un travail de 3ème semaine et normalement nous connaissons que la fonction delay(), qui est bloquante, c'est cette semaine qu'on va apprendre une autre manière de faire. Twisted Evil

Eric.
avatar
Gwadavel
Petit posteur
Petit posteur

Localisation : Antony (92)
Messages : 107
Emploi/loisirs : Administrateur Réseaux/Modélisme Moto Arduino

Revenir en haut Aller en bas

Re: Gestion des places d'un parking

Message par likiki le Mar 18 Nov 2014 - 20:20

Elle est sympathique aussi, mais le delay() qui est bloquant peut parfois être bien plus utile.

Un truc intéressant serait, sur l'afficheur parking, d'y ajouter l'heure.

Je vous laisse deviner la prise de tête.

avatar
likiki
Administrateur
Administrateur

Localisation : Saintry Sur Seine
Humeur : De tout coeur avec les victimes des attentats en France.
Messages : 10184
Age : 50
Emploi/loisirs : Gérant de son BET Ascenseurs

http://Webacappelliens.fr

Revenir en haut Aller en bas

Re: Gestion des places d'un parking

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum