Brevet FR2721166A1 — publié le 19951222

La présente invention concerne un appareil et une méthode de commande d'irrigation dont le type peut être utilisé pour commander des vannes indépendantes destinées A assurer des fonctions indépendantes d'arrosage, comprenant la sélection automatique des périodes d'arrosage de différents types d'émetteurs d'eau, les fréquences et les jours d'arrosage, en se basant uniquement sur la fourniture d'information en ce qui concerne la configuration et les conditions environnementales. ARRIERE-PLAN DE L'INVENTION I1 est classique pour des dispositifs de commande d'irrigation de prévoir des moyens qui actionneront différentes vannes à solénoïdes affectées pour différentes lignes d'irrigation et on considère important que chacune des lignes d'irrigation doit porter un type cohérent d'émetteur d'eau, différents types d'émetteurs d'eau étant associés i différentes lignes et nécessitant différentes périodes d'arrosage. Une commande simple d'irrigation peut comporter des moyens qui permettent de définir des jours où l'irrigation doit avoir lieu pour pouvoir être réglés et la période de temps de marche pour chacune d'un certain nombre de lignes d'irrigation (en général six) et, à part ces deux commandes, il n y a pas d'autre réglage.Par exemple, un contrôleur électronique piloté par calculateur peut être réglé pour "le jour 1, le jour 3, le jour 5" et chacune des six lignes mise en fonctionnement par les solénoïdes qui sont, à leur tour, commandés séquentiellement par le contrôleur fonctionneront pour le même temps, en commençant en même temps, comme auparavant pour chacun de ces trois jours de la semaine. Bien que l'utilisation de contrôleurs d'irrigation tels que décrits ci-dessus soit commune et constitue un perfectionnement significatif par rapport à une mise en eau manuelle, il y a néanmoins un certain nombre de paramètres qui ne sont pas pris en compte et la sélection d'un programme désiré voulu d'arrosage est pratiquement un procédé malcommode. ETAT DE LA TECHNIQUE Beaucoup de documents sur l'état de la technique existent sous forme de brevets concernant l'utilisation de microprocesseurs pour contrôler des séquences d'irrigation. Le plus intéressant que connaissent les demandeurs est le document US-A-4 646 224 aux noms de Ransburg et al. Ce document décrit un dispositif qui prend en compte les paramètres suivants: (a) Quantité d'eau qu'il faut appliquer à chacune des zones; (b) Taux d'infiltration du sol; (c) Jours de semaine pendant lesquels l'eau doit être appli quée; (d) Type d'émetteurs; (e) Variations saisonnières ou météorologiques. On entre les données manuellement, en passant par un clavier numérique, dans un microprocesseur qui détermine et contrôle le nombre de cycles par application et, dans chaque cycle, la longueur du temps que les émetteurs doivent marcher dans la zone. I1 organise aussi tous les cycles des zones dans une séquence. L'état de la technique peut aussi être illustré par les documents US-A-5 383 290 (Doup et al), US-A-5 337 957 (Olson) et US-A-4 852 051. Dans tous ces documents, les données sont entrées dans un système en passant par un clavier numérique. Non seulement une erreur humaine était un risque vraisemblable mais tout changement dans le programme demande beaucoup de temps et relève d'un procédé relativement complexe. Un objet de la présente invention consiste à contrôler non seulement les jours "avec" et les jours "sans" d'arrosage, l'heure d'arrosage de chaque poste et l'intervalle de temps pendant lequel le poste irrigue, mais aussi à prendre en compte des émetteurs d'eau de différents types. Dans la plupart des réalisations, il prend aussi en compte des facteurs d'environnement, y compris la température moyenne et le type du sol. Il devient immédiatement clair que les permutations de tous ces facteurs peut déconcerter l'opérateur moyen et un objet de l'invention consiste à prévoir un appareil et une méthode de manière qu'un opérateur puisse directement identifier les facteurs pertinents, la méthode comprenant l'évaluation des facteurs pour contrôler la fréquence d'irrigation et la période d'arrosage de chaque ligne d'émetteurs, mais en tenant compte des contraintes ci-dessus. Dans la présente invention, on utilise des cartes perforées dont chacune peut généralement être employée pendant au moins quelques semaines et dont chacune, dans une installation pratique à douze postes, peut sélecter dix-sept entrées différentes parmi quatre-vingt-dix sept possibilités, le microprocesseur ayant préenregistré des programmes d'arrosage qui peuvent classer les données et fournir automatiquement des séquences d'irrigation appropriées. Le contrôle d'irrigation peut être beaucoup mieux effectué et de manière beaucoup plus simple que dans toute variante connue des demandeurs. De plus, on peut faire configurer les cartes par des opérateurs non spécialistes. BREF RESUME DE L'INVENTION Dans un exemple de réalisation pratique de l'invention, l'appareil comprend un module de carte, une carte perforée (ci-aprds désignée par carte de contrôle automatique") comportant des perforations qui sont localisées par un utilisateur et suivant des paramètres directement identifiables, des transducteurs comprenant un réseau de détecteurs électro-optiques pour correspondre à au moins quelques uns de la suite: type d'émetteur; température moyenne; type de sol; heure de démarrage; budgétisation de pourcentage d'eau et jours sans eau; et un microcalculateur programmé pour évaluer des durées et les fréquences d'arrosage demandées suivant des programmes d ' a r r o s a g e préenregistrés compris dans un programme de logiciel, et un moyen de contrôle électrique entre le microcalculateur et des conducteurs externes montés pour actionner des vannes à solénoïdes dans un systèmes d'arrosage suivant les séquences d'arrosage déterminées par le microcalculateur. Afin d'aider un opérateur, un exemple de réalisation de l'invention peut aussi comprendre un dispositif d'affichage à cristaux liquides (LCD), tel que celui fourni par la société Displaytech Ltd (numéro LCD TCM-462) pour afficher le temps du jour, le numéro du jour et des messages du système pour au moins une des fautes et une pause. Dans un autre exemple de réalisation, l'unité de lecture de carte comporte un clavier de panneau avant A trois boutons pour régler une horloge de système, le numéro du jour et contrôler la fonction pause sur 24 heures. Dans la description, le type d'émetteur se réfère en partie au taux de précipitation et, en partie, A savoir si l'émetteur est un diffuseur fixe à grand débit, un diffuseur rotatif à grand débit, un diffuseur fixe à petit débit, un diffuseur rotatif à petit débit, un goutte à goutte à grand débit, ou un goutte à goutte à petit débit. La budgétisation d'eau en pourcentage se réfère à la possibilité d'augmenter ou de diminuer le temps régulé automatiquement de déversement d'eau à travers une installation complète, par exemple pour compenser des variations locales par rapport au programme automatiquement choisi. Les vannes à solénoïdes peuvent être remplacées par des équivalents mécaniques, par des vannes à clapet. Le dispositif d'affichage à cristaux liquides est valable mais non essentiel. L'invention englobe jusqu'à une "carte de contrôle manuelle" qui fournit une souplesse supplémentaire en ce que les périodes de temps d'arrosage peuvent être réglées manuellement. Plus particulièrement, suivant une caractéristique de l'invention, il est prévu une méthode de contrôle d'irrigation d'une pluralité d'émetteurs d'eau dans chacun d'une pluralité de conduits de distribution d'eau, chacun desdits conduits se terminant à une extrémité amont dans une vanne associée de contrôle d'eau actionnée électriquement qui, quand elle est actionnée, place ledit conduit en communication de débit d'eau avec une alimentation générale en eau, ladite méthode comprenant la sélection d'emplacement pour une perforation dans une carte (désignée par "carte de contrôle automatique") pour correspondre avec un poste de contrôleur d'un contrôleur et aussi avec l'un d'une pluralité de types desdits émetteurs d'eau, et enlever une partie de ladite carte pour former une perforation audit emplacement, insérer ladite carte dans un lecteur de carte contenant une pluralité de transducteurs, transmettre une impulsion électrique audit contrôleur par ledit transducteur à l'alignement dudit transducteur avec ladite perforation de la carte, et contrôler la fréquence et la période d'actionnement d'une dite vanne de débit d'eau couplée électriquement audit poste en se référant aux programmes d'arrosage préenregistrés dans un moyen de contrôle basé sur calculateur dudit contrôleur, ladite sélection du type d'émetteur d'eau et les conditions locales d'environnement contrôlant la période d'actionnement de ladite vanne. Suivant une autre caractéristique de l'invention, il est prévu un appareil de contrôle ou contrôleur d'irrigation pour le contrôle d'une pluralité d'émetteurs d'eau dans chacun d'une pluralité de conduits de distribution d'eau, chacun desdits conduits se terminant à une extrémité amont dans une vanne associée de contrôle de débit d'eau actionnée électriquement qui, quand elle est actionnée, place ledit conduit en communication de débit d'eau avec une alimentation générale en eau et est caractérisée par un lecteur de carte, une pluralité de transducteurs dans ledit lecteur de carte, une carte comportant une perforation, un moyen guidant ladite carte pour insertion dans ledit lecteur, un contrôleur piloté par calculateur contrôlant l'activation de ladite vanne de contrôle en se référant aux programmes d'arrosage préenregistrés sous la forme d'une table de consultation dans ledit contrôleur, et un circuit électrique interconnectant ledit transducteur et le contrôleur basé sur un calculateur pour réaliser l'actionnement dudit contrôleur et l'actionnement consécutif de ladite vanne de contrôle de débit à l'alignement de ladite perforation de carte et dudit transducteur. Il deviendra apparent que, par l'utilisation d'icônes sur les cartes pour identifier des types d'émetteur d'eau (dans des colonnes) et des numéros de postes (en chiffres), la progammation de l'irrigation est réalisée directement par un opérateur non spécialiste, simplement en identifiant les intersections voulues. Des rangées supplémentaires fournissent des contrôles additionnels, à savoir: (a) Compensation de variations de température; (b) Types de sol; (c) Moments de démarrages, le matin, l'apras-midi; (d) Augmentation et réductions des périodes d'irrigation choisies automatiquement; et (e) Jours de non fonctionnement. Une carte peut être facilement lue et comprise, à la fois, par un opérateur et par les transducteurs de l'unité de lecteur de carte. BREVE DESCRIPTION DE L'EXEMPLE PREFERE DE REALISATION On a décrit ci-dessous, en détail, un exemple de réalisation de l'invention en se référant aux dessins joints, parmi lesquels: la Fig. 1 est une vue en perspective "éclatée" d'une unité de lecteur de carte qui contient aussi un moyen de contrôle piloté par calculateur; les Figs. 2A et 2B sont respectivement des vues de l'avers et du revers d'une carte, avant perforation, destinée au contrôle d'irrigation automatique et qui sera décrite ci-dessous; les Figs. 3A et 3B sont respectivement des vues de l'avers et du revers d'une carte "manuelle", également décrite ci-dessous; la Fig. 4 est un bloc-diagramme général des composants principaux qui sont montrés physiquement à la Fig. 1;; la Fig. 5 montre schématiquement une disposition illustrant le contrôle de douze lignes d'irrigation (avec le poste 3 actionné); les Figs. 6A et 6B montrent le schéma électrique détaillé qui montre l'interconnexion des composants des Figs. 4 et 5, la Fig. 6 montrant comment sont assemblées les Figs. 6A et 6B; et la Fig. 7 est un organigramme schématique de la hiérarchie du logiciel. CARTE D'ENTREE DE DONNEES Une "carte de contrôle automatique" 28 est montrée aux Figs. 2A et 2B, et comporte six colonnes d'icônes 28a à 28f représentant respectivement: 28a - diffuseur par à coup fixe; 28b - diffuseur par à coup rotatif (utilisé sur les pelouses); 28c - diffuseur micropulvérisateur (utilisé dans des parterres de fleurs); 28d - micro-tourniquet (utilisé dans des parterres de fleurs); 28e - goutte-à-goutte rapide (utilisé dans pots et corbeilles); 28f - goutte-A-goutte lent (utilisé dans des surfaces de potagers ou de jardins). Chaque colonne 28a à 28f croise une rangée horizontale 29a à 29i (portant les numéros imprimés 1 à 12 sur la carte servant à identifier douze postes d'un microcontrôleur logé dans un logement principal 20 que l'on décrira ci-dessous). Chaque poste est relié électriquement au circuit imprimé de module de carte 26a par un détecteur optique porté en haut de la surface arrière du circuit imprimé 26a (suivant la technique connue), et un seul poste est actionné à la fois. Le détecteur optique concerné peut être d'un type disponible sur le marché, comme celui qui est commercialisé par la société japonaise New Japan Radio Co Ltd (numéro NJLS163K). La rangée 30 est une rangée de compensation de température. L'icone gauche, si elle est perforée, augmente la période d'arrosage d'une grande quantité, l'icone centrale correspond à une quantité moindre, et l'icone droite à encore moins. La rangée 31 indique trois types de sol, l'icone gauche perforée correspondant à de "l'argile dure" et entrainant plus d'eau que le terreau sableux correspondant à l'icone centrale ou que le sable correspondant à l'icone droite. La rangée 32 règle les moments de démarrage, deux moments étant disponibles pour un jour quelconque. La rangée 33 règle une réduction ou une augmentation du temps d'arrosage automatique en pourcentages. La rangée 34 est un moyen pour non fonctionnement un jour quelconque de la semaine identifié en perforant son numéro. Les Figs. 3A et 3B montrent une "carte de contrôle manuel" 36 pour avoir un moyen permettant à un opérateur d'arroser un poste quelconque pendant l'une quelconque de six durées indiquées en haut de cette carte. LECTEUR DE CARTE Comme le montre la Fig. 1, un lecteur de carte 10 comprend un boîtier principal 20 dans un ensemble comportant une partie moulée arrière 21 et une partie moulée avant 22, la partie arrière 21 comportant une porte articulée 23 qui se ferme sur la partie avant 22, et un module de carte enfichable 26. Le boîtier peut aussi loger un transformateur 27, ou bien, dans une variante, le transformateur 27 peut être éloigné et relié par câble au module 26. Une fois assemblé, un espace existe entre une carte de circuit imprimé 26a du module 26 et l'arrière de la partie moulée avant 22, et les surfaces écartées guident l'insertion d'une carte. Le lecteur de carte est un réseau linéaire de dispositifs électrooptiques disposés pour lire jusqu'à dix-huit (18) rangées de données en six (6) colonnes de données. I1 existe un détecteur optique supplémentaire pour enregistrer une impulsion d'indice pour chaque rangée (se montant à un total de sept détecteurs optiques dans le but de détecter les informations de la carte). et la dernière rangée de données est utilisée comme indicateurs de "carte insérée" et de "type de carte". Les côtés arrières (Figs. 2B et 3B), à la fois, d'une carte automatique et d'une carte manuelle sont munis de barres noires 39 et 40 qui indiquent le type de carte. Les barres noires 37 et 38 sont utilisées pour indiquer au lecteur de carte le moment d'entrée de la carte. Les barres noires 37 à 40 sont variables en longueur et en position sur la carte et, une fois identifiées par les détecteurs de données, indiquent le type de carte et le nombre de postes associés à cette carte. Les barres noires supérieures 39 et 40 sont aussi utilisées pour indiquer l'insertion complète de la carte dans le lecteur. Cette information sur la carte est utilisée pour vérifier que la carte correcte a été insérée pour le nombre de postes contrôlés par ce contrôleur particulier.En plus des détecteurs de données, un détecteur optique d'indexage est prévu pour identifier les parties imprimées 41 du bord voisin blanc et fournit une interruption déclenchée par le bord au microprocesseur indiquant qu'une carte est en train d'être insérée. Une fois reçue cette interruption, le microprocesseur va lire les données à partir des six détecteurs optiques de données en interrogeant les lignes d'entrée. Il faut pour le module que la carte soit complètement insérée avant que commence l'irrigation. Si on enlève la carte, toute irrigation cesse. Si les données ne sont pas lues complètement pendant l'insertion de la carte ou si les données sont détériorées d'une autre façon, l'affichage de l'horloge clignote entre l'heure courante et "hors service" et il n'y a pas d'arrosage. Le clignotement entre l'heure courante et "hors service" dure tout le temps que la carte n'est pas insérée dans le module. A l'exception des rangées de Jours Sans Eau et la rangée de l'heure de démarrage, si plus d'une perforation est faite dans une rangée quelconque, la perforation la plus à gauche aura la priorité. Le contrôleur aura un moment de démarrage en erreur de 2 heures le matin. L'utilisateur aura le choix de 2, 6, 8, 18, 20 et 22 heures. Pour la rangée (du fond) de Jour Sans Irrigation, le contrôleur suspendra le programme d'arrosage pour les jours indiqués. Le contrôleur n'entassera pas les programmes d'arrosage. Si le temps total d'arrosage de tous les postes dépasse la période entre les moments de démarrage optionnels, le contrôleur arrosera le programme complet pour le moment de démarrage primaire, puis passera aux tâches restantes à partir du programme secondaire, ce qui n'aura aucun effet. Le moment du jour et le chiffre du jour sont établis par l'utilisateur en se servant du clavier avant. Comme il faut que l'unité lise deux types de carte, elle doit fonctionner suivant l'un des deux modes. La description détaillée ci-dessus concerne particulièrement le mode automatique. Le mode manuel est le suivant: Pour déclencher un fonctionnement manuel d'un seul poste ou d'un certain nombre de postes, il faut enlever une (ou plusieurs) zones partiellement préperforées d une carte manuelle pour le ou les postes concernés. On marque les colonnes par des périodes d'arrosage correspondantes (1, 2, 5, 10, 15 et 20 minutes, Fig. 3A). Quand la carte est insérée, elle arrosera le ou les postes désignés une fois seulement. Si on désire un arrosage quotidien, il y a une option concernant un ou plusieurs moments de démarrage. Si on enlève au moins une des zones de moment de démarrage, on aura l'arrosage à des intervalles de 24 heures au moment ou aux moments choisis. CONTROLES ELECTRONIQUES Des contrôles électroniques sont montrés dans le bloc-diagramme de la Fig. 4, le diagramme de disposition de la Fig. 5 et, avec plus de détails, dans le diagramme de câblage de la Fig. 6. L'unité de traitement central ou microcontrôleur Motorola MC68C05L16 45 associé au lecteur de carte 10 (dispositifs de détection optique commerciaux, tous désignés par 46, portés en haut de la surface arrière du circuit imprimé 26a) et les circuits associés avec le clavier 47 à trois boutons qui sont respectivement utilisés pour régler le moment du jour, le jour de la semaine et l'interruption du fonctionnement du contrôleur. Les résistances en 48 peuvent etre sélectivement placées en circuit pour choisir 12, 9 ou 6 unités de postes. Le programme du microprocesseur détecte les résistances installées et agit en fonction de celles-ci. Pour empêcher un sur-arrosage, on a prévu une sonde d'humidité 50 qui peut être lune quelconque d'un certain nombre de sondes commercialisées et qui fonctionne pour contrôler une interruption et soit limiter, soit supprimer une séquence d'arrosage. Les triacs 49 sont contrôlés par les amplificateurs 51 et sont associés avec un circuit de détection de courant 52 qui, dans l'exemple décrit, a une limite maximale de 1 A. Un courant en excès arrêtera la séquence d'arrosage et indiquera une faute, une faute étant aussi affichée s'il y a un état de courant trop faible. Quand le circuit de détection de puissance 53 détecte qu'une puissance alternative a été enlevée du contrôleur, le processeur passe en mode de consommation à faible puissance et tire son énergie de la batterie (non montrée) qui maintiendra le processeur en mode à l'arrêt. Bien qu'étant à l'arrêt, l'horloge en temps réel est maintenue si bien que le programme d'arrosage peut reprendre après remise à l'heure. Si on pousse ensemble les trois boutons poussoirs 22, on remet à zéro le processeur. LOGICIEL Dans l'exemple préféré de réalisation, le logiciel est écrit dans une combinaison de languages "c" et d'assembleur, et est décomposé en modules logiques. La Fig. 7 détaille la décomposition modulaire du logiciel pour le contrôleur d'irrigation et, en combinaison avec le pseudo-code pour chacun des modules et leurs sous-tAches, comme prévu dans l'Annexe A, fournit une description comphéhensible de l'interrelation entre les parties en fonctionnement dans le moyen de l'invention. En se référant à la Fig. 7, la "tache principale" comprend le module principal de contrôle et contrôle toutes les tAches du logiciel en envoyant des messages de tAches. Cette tâche s'interface directement avec les tAches prévues pour l'initialisation de la machine, contrôle dans le cas de coupure d'alimentation secteur, répondant aux actions sur le clavier par l'utilisateur/opérateur et le contrôle des tAches opérationnelles. La "tâche d'initialisation de la machine" accomplit tout de l'initialisation nécessaire de la machine à la remise en route du processeur. La "tache en cas de panne d'alimentation secteur" n'est exécutée que dans le cas où survient une coupure d'alimentation secteur et est exécutée comme une routine de service d'interruption. De même, la "tâche d'interface clavier" n'est exécutée que dans le cas où une touche est pressée par l'opérateur.Cependant, dans ce cas, la tâche principale vérifie continuellement l'état de chacune de ces touches pour déterminer si un enfoncement de touche a eu lieu. La "tache opérationnelle" relaye les messages de tâches de la tâche principale vers la sous-tache opérationnelle appropriée suivant l'état en cours du système et le type de carte résidant dans l'unité de carte. La "tAche de carte manuelle" et la "tâche de carte automatique" fournissent les fonctions demandées pour accomplir soit l'arrosage manuel, soit l'arrosage automatique suivant le type de carte insérée et les détails d'arrosage et/ou les conditions spécifiées par la carte insérée. Ces deux tAches s'interfacent à la "tâche d'interface de triacs" et à la "tâche d'interface de lecteur de carte". La "tâche d'interface de triacs" fournit l'interface entre les tAches de cartes manuelle et automatique et les amplificateurs de triacs pour contrôler l'activation des solénoïdes et prévoir une réaction de détection de courant. La "tAche d'interface de lecteur de carte" réalise les fonctions requises pour traduire l'information provenant d'une carte (manuelle ou automatique) en passant par le réseau 46 de détecteurs optiques. Quel que soit le type de carte insérée dans le contrôleur d'irrigation, la tâche d'interface de lecteur de carte a accès à la "tâche d'interface de mémoire non volatile" pour enregistrer dans la mémoire non volatile l'information spécifique de l'utilisateur détaillée sur la carte. Dans le cas d'une carte manuelle, il n'y a pas besoin que le contrôleur d'irrigation accède au programme d'arrosage préprogrammé quand l'utilisateur a choisi de spécifier son propre programme d'arrosage. Cependant, dans le cas d'une carte automatique, on a accès à la "tAche de programme d'arrosage" pour établir automatiquement un programme d'arrosage basé sur l'information définie par l'utilisateur sur la carte insérée. La "tâche de réglage d'horloge" fournit les fonctions requises pour régler l'heure et le jour de la semaine pour le contrôleur d'irrigation. La tâche accessoire correspondante, à savoir la "tâche d'horloge de temps réel", fournit les fonctions permettant de régler, de maintenir et de retrouver les données d'horloge de temps réel à partir du processeur. En plus des tâches identifiées ci-dessus, la Fig. 7 comprend encore trois tAches qui sont fréquemment appelées par tous les modules du logiciel de contrôle d'irrigation. Ce sont la "tâche d'interface d'affichage a cristaux liquides", la "tâche de mise en mémoire des registres" et la "tâche de déclaration de variables globales". La "tâche d'interface d'affichage à cristaux liquides" fournit l'interface entre l'affichage à cristaux liquides et d'autres tâches opérationnelles. La "tâche de mise en mémoire des registres fournit les fonctions requises pour la mise en mémoire et l'extraction de données à partir des registres internes du processeur. La "tâche de déclaration de variables globales" définit les variables globales pour le logiciel du contrôleur d'irragation. Comme on l'a déjà dit, l'Annexe A contient les descriptions des pseudo-codes qui détaillent les fonctionalités contenues dans les tâches mentionnées ci-dessus. A partir de cette description des tâches et de la fonctionalité qui y est contenue, il est très simple pour un homme du métier d'engendrer le logiciel fonctionnel pour réaliser et se comporter de la manière décrite. Comme l'homme du métier pourra directement le comprendre, de nombreuses modifications peuvent être faites au contrôle de procédé réalisé dans cet exemple particulier de réalisation, comme le changement de l'ordre des différentes phases ou l'élimination de certains aspects de la fonctionalité fournie par le logiciel. De plus, la fonctionalité fournie par le logiciel pourrait être mise en oeuvre avec un langage informatique complètement différent. L'homme du métier comprendra que ces types de modification sont considérés comme des équivalents mécaniques de la fonctionalité du logiciel décrit ici. AUTRES CARACTERISTIQUES DE L'ARROSAGE AUTOMATIQUE Le Tableau 1 détaille l'information préenregistrée en ce qui concerne la fréquence et les périodes pour différents asperseurs ou d'autres types d'émetteur d'eau et de conditions d'environnement. La fréquence et les périodes sont, à la fois, préprogrammées dans une "table de consultation" du logiciel. Par exemple, un asperseur pop-up rotatif en usage par temps froid (température moyenne 150 à 200 C) fonctionnera pendant 60 minutes d'arrosage, mais seulement une fois tous les cinq jours. Le choix de l'utilisateur de "budgéter" s'appliquera à augmenter ou réduire les périodes d'arrosage. Le contrôleur ne mettra pas en eau plus de postes que son nombre maximal. La partie moulée avant 22, Fig. 1, présente trois boutons. Celui de gauche, une fois enfoncé, clignote pour indiquer le jour 1 d'un calendrier de sept jours. L'un des deux autres boutons extérieurs peut être enfoncé pour faire défiler les jours et le bouton central pour régler le jour correct. Le bouton de droite, une fois enfoncé, fait clignoter le segment des heures. L'un des deux boutons extérieurs fait défiler jusqu'A l'heure correcte en l'enfonçant avec répétitions et, quand l'heure correcte est trouvée, en enfonçant encore le bouton central. Les segments des minutes clignotent alors et on règle la minute correcte par la même procédure. Un second usage du bouton central consiste à activer une fonction de pause de 24 heures, le programme d'arrosage repartant 24 heures après. I1 faut pour le lecteur de carte qu'une carte soit complètement retirée et réinsérée afin de lire toutes les données. ENTREE DE SONDE D'HUMIDITE Le contrôleur comporte un détecteur d'humidité pour fermer un interrupteur externe. Quand l'interrupteur est fermé, le programme d'arrosage est suspendu jusqu'à ce que il soit réouvert. L'état de faute de l'interrupteur correspondra normalement à être ouvert. DIAGRAMME 1 PLAN D'ARROSAGE PRE-ENREGISTRE > 300C SABLE TERRAIN SABLEUX ARGILE Acoup mins 15 mins 15 mins A coup rotatif 30 mins 60 mins 60 mins freq. = 1 freq. = 2 freq. = 3 Micropulvérisation 10 10 mins 20 mins 20 mins micro-tourniquet 40 mins 60 mins 60 mins freq. = 1 freq = 2 freq. = 2 goutte-à-goutte 15 mins 30 mins 30 mins rapide 60 mins 120 mins 120 mins goutte-à-goutte lent freq = 1 freq = 2 freq = 2 20 - 30 C A coup 7 mins 15 mins 15 mins A coup rotatif 30 mins 60 mins 60 mins freq. = 2 freq. = 3 freq. = 4 micropulvérisation 10 mins 20 mins 20 mins micro-tourniquet 40 mins 60 mins 60 mins freq. = 2 freq. = 2 freq. = 3 goutte-à-goutte 15 mins 30 mins 30 mins rapide 60 mins 120 mins 120 mins goutte-à-goutte lent freq. = 2 freq. = 2 freq. = 3 15-20 C A 7 mins mins 15 mins A coup rotatif 30 mins 60 mins 60 mins freq. =4 freq. =5 freq. =6 micropulvérisateur 10 10 mins 20 mins 20 mins micro-tourniquet 40 mins 60 mins 60 mins freq. = 3 freq. = 4 freq. = 5 goutte-à-goutte 15 mins 30 mins 30 mins rapide 60 mins 120 mins 120 mins goutte-à-goutte lent freq. = 3 freq. =4 freq. = 5 ANNEXE A Cette annexe contient un pseudo-code détaillant les fonctions de chacune des tâches représentées à la Fig. 7. Le pseudo-code présenté est un langage informatique indépendant destiné à identifier les fonctions inhérentes à chaque tâche. Tâche principale PROCEDURE principale initialiser les variables d'état du système initialiser la machine LOOP mettre en service l'horloge du contrôleur de séquence IF il s'est produit une coupure d'alimentation secteur modifier l'état du système en faisant MAINS~FAIL END IF IF l'état du système a été modifié envoyer un message de sortie à la tâche correspondant à un état en cours envoyer un message d'initialisation à la tâche correspondant au nouvel état END IF IF les secondes de l'unité de temps du système se sont déréglées envoyer un message de réglage de l'unité de temps à la tâche correspondant à un état en cours IF un dépassement de minute s'est produit AND le système est en mode pause décompter la période de pause IF période de pause terminée supprimer le mode pause END IF END IF END IF IF l'entrée par touche accessible à l'utilisateur est détectée envoyer un message par touche à la tâche correspondant à un état en cours ELSE IF l'utilisateur est dans les modes réglage de l'heure ou réglage du jour AND le délai pour presser une touche s'est écoulé désélectionner les modes réglage de l'heure ou du jour EN IF EN SLOOP END PROCEDURE Tâche d'initialisation de la machine Fonction: initialiser la machine Description: Cette fonction initialise le microprocesseur et enregistre. Elle est appelée par le biais d'une mise à nouveau sous tension au niveau du microprocesseur. PROCEDURE initialiser~machine désactiver les interruptions du système régler la vitesse de fonctionnement de l'horloge du système à un niveau logique élevé mise en place des entrées-sorties pour le microprocesseur lecture et réglage de la dernière~variable de station SELECT ON PORT B CASE 0.00 dernière~station = STATION SIX CASE 0.08 dernière~station = STATION~NINE CASE 0.10 dernière~station = STATION TWELVE CASE 0.08 dernière~station = STATION TWELVE ELSE dernière~station - STATION~TWELVE END SELECTION initialiser le programme d'affichage par cristaux liquides initialiser l'horloge donnant l'heure réelle initialiser le programme clé initialiser l'interface à mémoire non rémanente initialiser le lecteur de carte initialiser le programme triac initialiser les données opérationnelles lire l'état d'alimentation secteur et régler la variable coupure d'alimentation mettre en service l'horloge du contrôleur de séquence du processeur mettre en service les interruptions système END PROCEDURE Fonction: inscrire la tâche Description: Cette fonction active toutes les segments de programme affichés pour SIGN~ON~SECONDS, puis affiche le nombre de stations disponibles sur l'unité de contrôle pendant le laps de temps identifié par la variable SIGN~ON~SECONDS. PROCEDURE inscrire~la~tâche SELECT ON message reçu CASE message d'initialisation de la tâche modifier l'état du système à inscrire supprimer tous les segments à l'affichage pour l'unité de contrôle à cristaux liquides CASE message de désélection de la tâche désactiver tous les segments affichés activer l'icône de pause si le mode pause est en service CASE message de réglage de l'heure afficher tous les segments pendant 4 secondes sur l'unité de contrôle à cristaux liquides afficher les nombres de stations pendant 4 secondes sur l'unité END SELECT END PROCEDURE Tâche en cas de panne d'alimentation secteur Fonction: tâche coupure~secteur Description: Cette fonction teste la broche d'entrée pour l'alimentation secteur afin de déterminer si elle peut à nouveau être opérationnelle.Dans la négative, le microprocesseur est mis en mode stop. PROCEDURE tâchecoupuresecteur SELECT ON message reçu CASE message d'initialisation de la tâche mettre en service l'affichage sur l'unité de contrôle à cristaux liquides régler la vitesse de fonctionnement de l'horloge du système à un niveau logique bas CASE message de désélection de la tâche régler la vitesse de fonctionnement de l'horloge du système à un niveau logique élevé mettre en service l'affichage sur l'unité de contrôle à cristaux liquides CASE message de réglage de l'heure IF l'alimentation secteur est disponible modifier l'état du système à inscrire ELSE mettre le processeur en mode stop END IF END SELECT END PROCEDURE Tâche d'interface clavier Fonction: lire~touche Description: Cette fonction lit les touches, réalise l'antirebond et prend en compte toute touche pressée.La touche doit être relâchée après avoir été abaissée, si l'on veut que l'abaissement de la touche suivante soit enregistrée. fl n'y a donc pas de répétition de touches. PROCEDURE KEY lire~touche lire PORT B pour l'entrée d'une touche supprimer tout rebond de touche transmettre la touche à la fonction appelée NOTE: il n'y a pas la possibilité d'abaisser quasi simultanément plusieurs touches END PROCEDURE Fonction: initialiserj,rogrammeclé Description: Cette fonction initialise les variables d'état requises par le programme clé. PROCEDURE initialiser~programme~clé initialiser les variables d'état locales pour le programme clé END PROCEDURE Tâche opérationnelle Fonction: tâche opérationnelle Description: Cette fonction consiste à envoyer des messages à la tâche opérationnelle adéquate, déterminée par l'état du système et le type de carte. Elle réoriente également les clés vers la tâche en cours de service. PROCEDURE tâche~opérationnelle SELECT ON message reçu CASE message d'initialisation de la tâche transmettre le message à la tâche opérationnelle en cours CASE message de désélection de la tâche transmettre le message à la tâche opérationnelle en cours CASE message d'abaissement de la touche tâche IF l'unité est en mode test transmettre le message pour tester la tâche ELSE IF le bouton de gauche est enfoncé modifier l'état du système pour régler le jour ELSE IF le bouton de droite est enfoncé modifier l'état du système pour régler l'heure ELSE IF le bouton central est enfoncé IF le mode pause est activé supprimer le mode pause ELSE activer le mode pause END IF END IF END IF CASE message de réglage de l'heure transmettre le message à la tâche opérationnelle en cours lire le type de carte en cours insérée dans l'unité IF la carte a été retirée de l'unité envoyer un message de désélection de tâche à la tâche opérationnelle en cours envoyer un message d'initialisation de tâche à la tâche non définie par une carte ELSE IF une nouvelle carte a été insérée dans l'unité envoyer un message de désélection de tâche à la tâche opérationnelle en cours envoyer un message d'initialisation de tâche à la tâche non définie par une cartc END IF END SELECT END PROCEDURE Fonction: Tâche~sans~carte Description: Cette tâche est commandée quand on n'a pas inséré de carte. PROCEDURE tâche~sans~carte SELECT ON message reçu CASE message d'initialisation de tâche Initialiser l'affichage CASE message de réglage de l'heure alterner l'affichage selon que l'heure système est en position "ON" ou "OFF" END SELECT END PROCEDURE Tâche à carte manuelle Fonction: tâche~carte~manuelle Description: Cette tâche commande l'arrosage par le biais d'une carte manuelle. Un logiciel d'automate fini commande la tâche ~arrosagemanuel. PROCEDURE tâche carte manuelle SELECT ON message reçu CASE message d'initialisation de la tâche ne pas prendre en compte les paramètres du capteur d'humidité afficher l'heure système CASE message de désélection de la tâche désactiver toutes les stations CASE message de réglage de l'heure IF l'unité n'arrose pas afficher l'heure système IF la carte manuelle a une ou plusieurs heures de début perforées IF une heure de début perforée correspond à l'heure en cours commencer l'arrosage au moyen de la tâchearrosagemanuei END IF ELSE (pas d'heure de début perforée) IF il n'y a pas eu d'arrosage avec cette carte manuelle commencer l'arrosage au moyen de la tâche~arrosage~manuel ELSE afficher l'heure système END IF END IF ELSE (l'unité arrose) transmettre les messages à la tâchearrosage manuel END IF END SELECT ENDPROCEDURE Fonction: tâche arrosage manuel Description: Cette tâche commande la séquence d'arrosage d'un programme à carte manuelle. Cette séquence est initiée au moyen de la tâche~carte~manuelle. PROCEDURE tâche arrosagemanuel Cette procédure va arroser les stations perforées pendant les durées également perforées séquentiellement. Elle affiche le numéro de station, le temps restant pour achever l'arrosage et renvoie la commande à la tâche à carte manuelle IF une erreur relative à la station en cours est détectée désactiver la station afficher une erreur de symbole afficher le numéro de station, le code d'erreur et le temps restant EN IF NOTE les paramètres du capteur d'humidité sont ignorés durant l'opération à carte manuelle END PROCEDURE Tâche à carte automatique Fonction: tâche~carte~auto Description: Cette tâche arrose suivant le programme à carte automatique.Un logiciel d'automate fini utilise la variable d'état~auto et commande la tâchearrosageauto au moyen de la variable d'état auto~séquentielle. PROCEDURE tâche~carte~auto SELECT ON message reçu CASE message d'initialisation de la tâche initialiser les variables d'état locales afficher l'heure système CASE message de désélection de la tâche désactiver toutes les stations CASE message de réglage de l'heure afficher l'heure système IF l'heure système est identique à l'heure de début prioritaire de la base de données FOR chaque station présente dans la base de données incrémenter le compteur relatif au nombre de jours sans arrosage EN FOR IF aujourd'hui n'est pas désigné comme un jour sans arrosage commencer un premier arrosage au moyen de la tâche~arrosageauto END IF ELSE IF l'heure système est identique à une seconde heure de début IF aujourd'hui n'est pas désigné comme un jour sans arrosage commencer un second arrosage au moyen de la tâche~arrosageauto END IF END IF END PROCEDURE Fonction: tâchearrosage auto Description: Cette tâche est commandée par la tâche~carteauto. Elle commande l'arrosage des stations. PROCEDURE tâchearrosageauto IF elle est initiée par une première demande d'arrosage alors rechercher les données pour les stations dont le nombre de jours sans arrosage indiqué par le compteur excède le nombre de jours prévu par le tableau d'arrosage séquentiel, et arroser les stations trouvées au-dessus pendant la durée requise tout en affichant la station et le temps restant ELSE (seconde demande d'arrosage) rechercher les données pour les stations dont le nombre de jours sans arrosage indiqué par le compteur est séquentiellement égal à zéro, et arroser les stations trouvées au-dessus pendant la durée requise tout en affichant la station et le temps restant END IF WHllE arrosage IF une erreur en cours est détectée désactiver la station afficher l'icône où se trouve l'erreur ajouter le code d'erreur à la séquence affichée END IF IF les paramètres de la sonde d'humidité sont en service désactiver la station continuer d'afficher la séquence END IF IF l'arrosage se prolonge jusqu'à un jour prévu sans arrosage interrompre l'arrosage jusqu'au prochain jour prévu avec arrosage END IF END WHILE à la fin de l'arrosage, renvoyer la commande à la tâche~carte~auto END PROCEDURE Tâche d'interface avec le triac Fonction: capteur contrôlehumidité Description:Cette fonction règle l'état de I'indicateur capteur humidité PROCEDURE capteur~contrôle~humidité régler l'indicateur du capteur d'humidité en fonction de l'état des données d'humidité END PROCEDURE Fonction: contrôle~courant~triac Description: Cette fonction vérifie que l'intensité du courant parcourant le triac n'est pas trop élevée ou trop faible. Elle possède une hystérésis incorporée. PROCEDURE contrôle~courant~triac IF l'indicateur d'humidité n'est pas en service AND NOT mode pause IF l'erreur de courant est détectée régler l'indicateur d'erreur et le code d'erreur END IF END IF END PROCEDURE Fonction: commande~station Description: Cette fonction fournit l'interface avec les programmes triac. PROCEDURE commande~station IF indicateur mode pause OR indicateur capteur humidité désactiver toutes les stations ELSE commander les stations selon les demandes END IF END PROCEDURE Fonction: initialiser~programme~triac Description: Cette fonction initialise le port du programme triac. PROCEDURE initialisationqrogramme~ triac initialiser le port du programme triac initialiser les variables d'état du triac END PROCEDURE Tâche d'interface du lecteur de carte Fonction: constituer~base de données Description: Cette fonction constitue une base de données pour un programme d'arrosage à partir de l'image de carte. PROCEDURE constitution~base~de~données vider la base de données IF la carte automatique est insérée AND la carte est correctement perforée programmer la base de données avec les informations figurant sur la carte stocker le contenu de la base de données dans une mémoire non rémanente ELSE IF la carte manuelle est insérée AND est correctement perforée programmer la base de données avec les informations figurant sur la carte stocker le contenu de la base de données dans une mémoire non rémanente ELSE IF la carte de test est insérée modifier son état pour obtenir le test d'affichage et le test de station END IF END PROCEDURE Fonction: programme~d'interruption~service~pour~lecteur~de~carte Description: Ce programme d'interruption de service copie l'image de carte dans un tampon à circulation au cours de sa lecture. Il règle par ailleurs l'indicateur de coupure d'alimentation. INTERRUPT programme~interruptionservicepour~lecteur~de~carte stocker l'image de carte dans une mémoire intermédiaire lors de son insertion END INTERRUPT Fonction: initialiser~lecteur~de~carte Description: Cette fonction initialise l'index du tampon à circulation contenant l'image de carte, ainsi que d'autres données associées à la carte PROCEDURE initialisation~lecteur~de~carte initialiser la mémoire intermédiaire pour l'image de carte initialiser le tampon à circulation indexé pour l'image de carte END PROCEDURE Tâche de programme d'arrosage Fonction: tâche~programme~arrosage Description: Ce module contient les tables à consulter pour les durées et les fréquences d'arrosage, ainsi que des variables communes aux tâches d'arrosage automatique et manuel. type de diffuseur [NUM~DIFFUSEURS] = DIFFUSEUR~TYPE A,/* A COUP~FIXE DIFFUSEUR~TYPE A,/* A COUP~TOURNANT*/ DIFFUSEUR~TYPE B,/* MICRO~PULVERISATEURS DIFFUSEUR~TYPE B,/* MICRO~TOURNIQUETS DIFFUSEUR~TYPE C,/* GOUTTE-A-GOUTTE RAPIDE */ DIFFUSEUR~TYPE C,/* GOUTTE-A-GOUTTE~LENT */ };; table~de~durée~d'arrosage[NUM~DIFFUSEURS] [NUM~SOLS]= /* SOL~SABLE, LOL~TERREAU~SABLEUX, SOL~ARGILE */ /*------------ ------------------------------- { {7, 15, 15},/*A COUP~FIXE */ {30, 60, 60}, /*A COUP~TOURNANT */ f10, 20, 20), /*MICROPULVERISATEURS */ {40, 60, 60), /*MICRO~TOURNIQUETS */ {15, 30, 30}, /*GOUTTE-A-GOUTTE~RAPIDE */ {60, 120, 120), /*GOUTTE-A-GOUTE~LENT */ table~de~fréquence~d'arrosage[NUM~ECHELLES~DE~TEMPERAT URE] [NUM~TYPES~DE DIFFUSEURS] [NUM~SOLS] = /* SOL~SABLE, SOL~TERREAU~SABLEUX, SOL~ARGILE */ /*--------------------------------------------------------------*/ { { /* TEMPERATURE~ELEVEE */ (1, 2, 3), /* DIFFUSEUR TYPE A */ {1, 2, 2}, /* DIFFUSEUR~TYPE~B */ {1, 2, 2}, /* DIFFUSEUR~TYPE~C */ { /* TEMPERATURE~MODEREE */ (2, 3, 4), /* DIFFUSEUR TYPE A */ {2, 2, 3}, /* DIFFUSEUR~TYPE~B */ (2, 2, 3), /* DIFFUSEUR~TYPE~C ( /* TEMPERATURE~BASSE (4, 5, 6), /* DIFFUSEUR~TYPE~A (3, 4, 5), /* DIFFUSEUR~TYPE~B {3, 4, 5}, /* DIFFUSEUR~TYPE~ C*/ Tâche d'interface pour la mémoire non rémanente Fonction: initialiser interface pour~mémoire non remanente Description: Cette fonction initialise l'interface série pour la mémoire non rémanente à l'état d'arrêt. PROCEDURE initialisation interfaceqour~mémoire non rémanente initialiser l'interface END PROCEDURE Fonction: restaurer ùnagede carte Description: Cette fonction lit dans la mémoire non rémanente et en cas de lecture correcte, les données présentes dans cette mémoire sont copiées dans le tableau correspondant à l'image de carte, et l'index de ce tableau est parcouru au moyen d'un curseur. PROCEDURE restauration imagede carte lire le contenu de la mémoire non rémanente vérifier le nombre magique et le total de contrôle IF les données sont correctes copier l'image de carte dans une mémoire locale ENDIF END PROCEDURE Fonction: stocker image de carte Description: Cette fonction stocke le tableau en circulation et l'index correspondant à l'image de carte dans la mémoire non rémanente. PROCEDURE stockageimage de carte écrire le nombre magique écrire les données calculer le total de contrôle écrire le total de contrôle END PROCEDURE Les fonctions suivantes sont également contenues dans la tâche d'interface pour la mémoire non rémanente mais elles sont uniquement décrites, puisque leur application réelle dépend du choix spécifique du microprocesseur et de l'unité de mémoire non rémanente. Fonction: écriture~non~rémanente Description: Cette fonction envoie un nombre de bits à l'adresse exacte de la mémoire non rémanente. Fonction: lecture~non~rémanente Description: Cette fonction lit un nombre de bits provenant de la mémoire non rémanente, à son adresse exacte. Tâche de réglage de l'horloge Fonction: tâche~de~règlagedeJ'horloge Description: Cette tâche permet à l'utilisateur de régler les heures et les minutes. I1 est à noter que le nombre de minutes n'excède pas une heure et que le nombre d'heures n'excède pas un jour. Les touches abaissées sont interprétées et les messages envoyés au module donnant l'heure réelle de l'horloge afin de régler l'heure en conséquence. PROCEDURE tâche~réglageoe~l'horloge SELECT ON message reçu CASE message d'initialisation de la tâche afficher l'heure avec un clignotement des heures CASE message de désélection de la tâche afficher l'heure système CASE message d'abaissement de touche SELECT ON le bouton enfoncé CASE touche del;auche IF réglage des heures décrémenter les heures ELSE (réglage des minutes) décrémenter les minutes END IF CASE touche~de~droite IF réglage des heures incrémenter les heures ELSE (réglage des minutes) incrémenter les minutes END IF CASE touche~centrale IF réglage des heures passer au réglage des minutes ELSE (réglage des minutes) quitter l'état de réglage de l'horloge EN IF END SELECT END SELECT END PROCEDURE Fonction:: Tâcheréglage dujour Description: Cette tâche permet à l'utilisateur de régler le jour. Les touches abaissées sont interprétées et les messages envoyés au module donnant l'heure réelle à l'horloge, afin de régler le jour en conséquence. PROCEDURE tâche~réglage dujour SELECT ON message reçu CASE message d'initialisation de la tâche afficher le jour système CASE message de désélection de la tâche afficher l'heure système CASE message d'abaissement de touche IF une touche de gauche est abaissée décrémenter le jour ELSE IF une touche de droite est abaissée incrémenter le jour ELSE (touche centrale abaissée) quitter l'état de réglage du jour EN LOF END SELECT END PROCEDURE Tâche relative à l'horloge donnant l'heure réelle Fonction: programme~interruption~de~service~pour~horloge~donnant~l'heure~réelle Description: Ce programme d'interruption de service donne l'heure réelle de l'horloge. fl est conçu pour une fréquence d'interruption de 2 Hz. INTERRUPT programme~interruption~service~pour~horloge~donnant~l'heure~réelle conserver l'heure système à chaque interruption (2Hz) END INTERRUPT Fonction: commande~de~I'horlogedonnant~l'heure~réelle Description: Cette fonction modifie l'heure par commande de l'utilisateur. Il est à noter qu'on n'a pas de dépassement des minutes par rapport aux heures et des heures par rapport aux jours. PROCEDURE commande~deJ'horloge~donnant~l'heure~réelle modifier l'heure système en fonction des exigences de l'utilisateur au moyen des clés d'entrée END PROCEDURE Fonction: obtenir~l'heure~de~l'horlogedonnant~l'heure~réelle Description: Cette fonction donne l'heure système sans empêcher les interruptions concernant l'heure réelle, et vérifie que l'heure donnée est cohérente. PROCEDURE obtention~de~l'heure~deJ'horlogedonnant~l'heure~réelle lire l'heure système jusqu'à l'obtention d'une copie cohérente puis retourner à la fonction d'appel. Ceci est réalisé en vérifiant que les secondes ne sont pas modifiées au cours de la copie du jour, des minutes ou des secondes. En cas de modification réessayer, du fait que la minute ou le jour peuvent ne pas être cohérents. END PROCEDURE Fonction: initialiser~l'horloge~donnant~l'heure~réelle Description: Cette fonction initialise les variables associées et établit la fréquence d'interruption pour l'heure réelle. PROCEDURE initialisation~deJ'horloge~donnant~l'heure~réelle régler le module d'interruption de l'heure réelle fixer la fréquence d'interruption de l'heure réelle à 2 Hz mettre en service les interruptions END PROCEDURE Tâche d'Interface avec l'affichage à cristaux liquides Fonction: initialiser~le~programme~d'affichage~à~cristaux~liquides Description: Cette fonction initialise les registres internes du programme d'affichage à cristaux liquides (LCD) sur le microprocesseur. PROCEDURE initialisation~durogramme~d'affichageJcristauxjiquides fixer le programme LCD à 1/2 temps de mise sous tension désactiver tous les segments LCD Mettre en service le programme LCD END PROCEDURE Fonction: service d'affichage LCD Description: Cette fonction sélectionne ou désélectionne les segments, si leur bit de caractéristique de clignotement a été établi. PROCEDURE service~d'affichage~LCD sélectionner l'état de tous les segments LCD munis de leur bit d'état de clignotement END PROCEDURE Fonction: affichageLCD~de~l'heure Description: Cette fonction affiche l'heure de différentes manières. PROCEDURE affichage~LCD~de~l'heure obtenir l'heure système convertir l'heure système en heures et en minutes pour l'affichage désactiver l'affichage LCD IF on est en mode d'affichage normal afficher l'heure avec le symbole ":" clignotant ELSE IF on est en mode de réglage des heures afficher l'heure avec les heures clignotantes ELSE IF on est en mode de réglage des minutes afficher l'heure avec les minutes clignotantes END IF END PROCEDURE Fonction: affichage~LCD~dujour Description: Cette fonction affiche le jour sous des formats différents. Fonction: affichage~LCD de~l'arrosage Description: Cette fonction affiche diverses informations en cours d'exécution de l'arrosage. PROCEDURE d'affichage LCDqourl'arrosage IF NOT en mode pause afficher séquentiellement l'heure système l'arrosage de station le temps restant pour l'arrosage le code d'erreur si une erreur a été détectée ELSE afficher l'heure système END IF END PROCEDURE Les fonctions suivantes sont également contenues dans la tâche d'interface avec l'affichage à cristaux liquides, mais elles sont uniquement décrites, puisque leur application réelle dépend du choix spécifique du microprocesseur et de l'unité d'affichage à cristaux liquides. Fonction: affichage~LCDwour~une~station Description: Cette fonction affiche un numéro de station et un icône. Fonction: affichage~LCD~de~durée Description: Cette fonction affiche une durée en format heures:minutes. Fonction: affichage~LCD~d'erreur Description: Cette fonction affiche le code d'erreur pour un courant de station d'intensité faible ou élevée. Fonction: écrireamqm Description: Cette fonction active l'icône appropriée am ou pm en fonction de l'heure communiquée. Fonction: écrire~les~heures Description: Cette fonction affiche les heures. Fonction: écrire~les~minutes Description: Cette fonction affiche les minutes. Fonction: effacer~l'affichage Description: Cette fonction efface tous les segments d'affichage sauf les icônes d'erreur et de pause. Fonction: écrire~un~caractère Description: Cette fonction affiche un caractère sur l'écran LCD à partir du caractère correspondant figurant sur la table. Fonction: commandedesegment LCD Description: Cette fonction commande les segments individuels par affichage LCD. Elle sert d'interface aux registres LCD du microprocesseur. Tâche de mémorisation du registre Description: Ce module déclare la mémorisation des registres internes du microcontrôleur 68HC05L 16. PORT rémanent PORT A (0 0x0000; /*PORT A Registre de données PORT rémanent PORT B (0 0x0001; /*PORT B Registre de données PORT rémanent PORT C &commat; 0x0002; /*PORT C Registre de données PORT rémanent PORT D (0 0x0003; /*PORT D Registre de données PORT rémanent PORT E &commat; 0x0004; /*PORT E Registre de données INTCR~STRUCT rémanent INTCR &commat;0x0008; /*registre commande interruption*/ INTSR~STRUCT rémanent INTSR &commat; 0x0009; /*registre d'état interruption*/ MR~STRUCT rémanent MR &commat; 0x003E; /*registre complexe*/ TBCRI~STRUCT rémanent TBCR1 &commat; 0x0010; /*registre 1 commande base temps*/ TBCR2~STRUCT rémanent TBCR2 &commat; 0x0011; /*registre 2 commande base temps*/ LCDCR~STRUCT rémanent LCDCR &commat; 0x0020; /*registre 1 commande LCD*/ /* */ PORT rémanent O~DDRA &commat; 0x0000; /*registre A de direction des données*/ PORT rémanent O~DDRC &commat; 0x0002; /* registre C de direction des données*/ RCR1~STRUCT rémanent O-RCR1 &commat; 0x0008; /*registre 1 commande résistance*/ RCR2~STRUCT rémanent O~RCR2 &commat; 0x0009; /*registre 2 commande résistance*/ WOM1~STRUCT rémanent O~WOM1 &commat; 0x000A; /*registre 1 OU mode câblé*/ WOM2~STRUCT rémanent O~WOM2 &commat; 0x000B; /*registre 2 OU mode câblé*/ KWIEN~STRUCT rémanent O~KWIEN &commat; 0x000E; /*registre pour interrompre clé de réveil*/ MOSR~STRUCT rémanent O~MOSR &commat; 0x000F; /*registre d'état pour option masque*/ Tâche de déclaration de la variable globale Description: Ce module déclare les variables de communication globales du système. pseudo BOOLEAN indicateur du mode pause; pseudo BOOLEAN indicateur du capteur d'humidité; pseudo BOOLEAN indicateur~de~stop~pour~l'heure~réelle~de~l'horloge; pseudo BOOLEAN indicateur~de~stop~pour~le~jour~selon~l'horloge; pseudo BOOLEAN indicateur~d'évènement~pour~l'heure~réelle~de~l'horloge; pseudo BOOLEAN indicateur~de~coupure~de~l'alimentation~secteur, pseudo CRD SYSTEMSTATE étatqrochain du systéme; pseudo CRD~SYSTEM~STATE état~en~cours~du~système; pseudo TASK~MESSAGE message~de~tâche; pseudo STATION derniéreStation; pseudo MINUTE pause minutes; REVENDICATIONS 1) Méthode de contrôle d'irrigation d'une pluralité d'émetteurs d'eau dans chacun d'une pluralité de conduits de distribution d'eau, chacun desdits conduits se terminant à une extrémité amont dans une vanne associée de contrôle d'eau actionnée électriquement qui, quand elle est actionnée, place ledit conduit en communication de débit d'eau avec une alimentation générale en eau, comprenant la sélection d'emplacement pour une perforation dans une carte avec un transducteur relié A un poste de contrôle d'un contrôleur et aussi avec l'un d'une pluralité de types desdits émetteurs d'eau, et enlever une partie de ladite carte pour former une perforation audit emplacement, insérer ladite carte dans un lecteur de carte contenant une pluralité de transducteurs, transmettre une impulsion électrique audit contrôleur par ledit transducteur à l'alignement dudit transducteur avec ladite perforation de la carte, et contrôler la fréquence et la période d'actionnement d'une dite vanne de débit d'eau couplée électriquement audit poste en se référant aux programmes d'arrosage préenregistrés dans un moyen de contrôle basé sur calculateur dudit contrôleur. 2) Méthode suivant la revendication 1, dans laquelle il y a une pluralité de colonnes sur ladite carte croisées par une pluralité de rangées, chaque colonne représentant un type d'émetteur identifié par une icône correspondante, chaque rangée représentant un poste, ladit méthode comprenant encore la sélection d'emplacements coïncidant avec des croisements et l'enlèvement d'une partie de carte pour former une perforation dans chacune d'au moins quelques colonnes, le fait de faire passer ladite carte devant une rangée de transducteurs dans ledit lecteur de carte pour engendrer des impulsions électriques vers ledit contrôleur et donc vers les postes séparés pour ainsi effecteur le contrôle séparé de débit d'eau dans chaque conduit. 3) Méthode suivant la revendication 2 comprenant encore l'irrigation par chaque conduit et les émetteurs qu'il porte. 4) Méthode suivant la revendication 2 comprenant encore le déversement d'eau par des émetteurs du même type par chaque conduit. 5) Méthode suivant la revendication 1 comprenant encore le traitement desdites impulsions électriques et leurs interprétations par un logiciel pour effectuer le contrôle de la fréquence et des périodes d'arrosage des émetteurs respectifs desdits conduits. 6) Méthode suivant la revendication 1, dans laquelle le contrôle piloté par calculateur est sous la forme d'un logiciel qui fait la corrélation entre lesdites impulsions électriques et l'information réenregistrée dans une mémoire sous la forme d'un tableau d'indications qui détermine la fréquence et la période d'activation d'une vanne de débit d'eau. 7) Méthode suivant la revendication 6, dans laquelle l'information préenregistrée comprend les fréquences et les périodes en fonction de diverses gammes de températures atmosphériques et d'états de sol. 8) Méthode suivant la revendication 2, dans laquelle il y a une pluralité de perforations de carte, l'emplacement de chacune des perforations étant identifié par lesdits transducteurs par des emplacements correspondant de marqueurs index dans une partie imprimée sur la carte et détectée par un autre transducteur, indiquant ainsi les positions de référence physique sur la carte à l'intention du contrôleur. 9) Appareil de contrôle ou contrôleur d'irrigation pour le contrôle d'une pluralité d'émetteurs d'eau dans chacun d'une pluralité de conduits de distribution d'eau, chacun desdits conduits se terminant à une extrémité amont dans une vanne associée de contrôle de débit d'eau actionnée électriquement qui, quand elle est actionnée, place ledit conduit en communication de débit d'eau avec une alimentation générale en eau, comprenant un lecteur de carte, une pluralité de transducteurs dans ledit lecteur de carte, une carte comportant une perforation, un moyen guidant ladite carte pour insertion dans ledit lecteur, un contrôleur piloté par calculateur contrôlant l'activation d'une vanne de contrôle, et un circuit électrique interconnectant ledit transduc-teur et le contrôleur basé sur un calculateur pour réaliser l'actionnement dudit contrôleur et l'actionnement consécutif de ladite vanne de contrôle de débit à l'alignement de ladite perforation de carte et dudit transducteur. 10) Contrôleur d'irrigation suivant la revendication 9, dans lequel chaque transducteur est un détecteur optique. 11) Contrôleur d'irrigation suivant la revendication 9, dans lequel ladite carte comporte une pluralité de colonnes et ledit lecteur de carte comporte un nombre correspondant de transducteurs, chaque transducteur étant un détecteur optique aligné avec une colonne, ledit contrôleur piloté par calculateur comprenant un microprocesseur et une interconnexion entre chaque détecteur optique et le microprocesseur prévue pour envoyer une impulsion électrique au microprocesseur quand le détecteur optique est aligné avec une perforation de la carte. 12) Contrôleur d'irrigation suivant la revendication 11, dans lequel la carte comporte encore une pluralité de rangées parallèles qui croisent les colonnes, chacune d'au moins quelques rangées identifiant un poste qui contrôle un conduit correspondant de distribution d'eau par l'intermédiaire du microprocesseur pendant une période d'arrosage. 13) Contrôleur d'irrigation suivant la revendication 11, dans lequel la carte comporte une pluralité de rangées parallèles qui croisent les colonnes, chacune d'au moins quelques rangées identifiant un poste qui contrôle un conduit correspondant de distribution d'eau par l'intermédiaire du microprocesseur en ce qui concerne la fréquence d'arrosage. 14) Contrôleur d'irrigation suivant la revendication 11, dans lequel chaque conduit de distribution d'eau porte des émetteurs d'eau du même type. 15) Contrôleur d'irrigation suivant la revendication 11, dans lequel la carte comporte au moins un des groupes suivants de fonctions représentées dans une rangée correspondante: (a) moment de démarrage; (b) variation des moments d'arrosage; (c) non fonctionnement d'un jour quelconque de la semaine, ladite représentation étant une zone correspondante de la partie qui a été enlevée dans une colonne correspondante et qui alors transmet une impulsion correspondante au contrôleur. 16) Contrôleur d'irrigation suivant la revendication 9, dans lequel la carte comporte une pluralité de rangées parallèles qui croisent les colonnes, ladite carte ayant un côté avers qui identifie les colonnes avec des icônes et au moins quelques rangées avec des numéros de postes, et un côté revers avec des barres noires d'indication qui identifient l'insertion de la carte dans le lecteur de carte. 17) Contrôleur d'irrigation suivant la revendication 16, dans lequel la barre noire sur le côté revers de la carte à la fin de son insertion commande au contrôleur d'entrer un mode "DEPART". 18) Contrôleur d'irrigation suivant la revendication 16, dans lequel le côté revers de la carte comporte une pluralité de marques de rangées qui correspondent en position aux marques de rangées sur le côté avers, un détecteur uptique supplémentaire identifiant les marques du côté avers et déclenchant des lectures de rangée. 19) Contrôleur d'irrigation suivant la revendication 9, dans lequel le contrôle piloté par calculateur réside sous la forme d'un logiciel qui corrèle les impulsions électriques du transducteur avec l'information préenregistrée dans une mémoire sous la forme d'un tableau d'indication qui détermine la fréquence et la période d'activation de la vanne de débit d'eau. 20) Contrôleur d'irrigation suivant la revendication 19, dans lequel l'information préenregistrée comprend les fréquences et les périodes en fonction de gammes de températures atmosphériques et l'état du sol.