Capteur de position de l'interrupteur d'éclairage de secours

Avant quiconque conçoit un système d'éclairage de secours autonome, tôt ou tard, le problème se pose d'allumer et d'éteindre les lumières de secours. Comment le faire de la manière la plus pratique et transparente, afin de ne pas gâcher la conception des pièces avec des interrupteurs supplémentaires?


Une des solutions sous la coupe.


Contexte


Dans le monde moderne, beaucoup de choses sont liées à une alimentation électrique ininterrompue. La plupart des types d'activités intellectuelles sont déjà inconcevables sans un ordinateur et des communications fonctionnant 24h / 24 et 7j / 7. Ce n'est ni bon ni mauvais, ça l'est, et vous devez vivre avec. Surtout si votre lieu de travail n'est pas dans un bureau moderne, rempli d'UPS et de générateurs diesel de secours, mais dans un appartement d'un immeuble d'habitation ordinaire. Et il se trouve que la fiabilité de l'approvisionnement énergétique des logements dans la plupart des villes de l'ex-URSS laisse beaucoup à désirer. En conséquence, le fil reliant la prise de courant domestique et la centrale électrique la plus proche a la mauvaise habitude de se casser périodiquement. Une fois tous les six mois, et quand et trois fois par jour.

C'est pourquoi, lors du démarrage des réparations dans un nouvel appartement, j'ai initialement posé un câblage parallèle dans le projet pour une alimentation et un éclairage ininterrompus.

J'aimerais beaucoup avoir à ma disposition un puissant générateur avec ICE, capable de fournir une alimentation normale à tout l'appartement, mais j'ai dû abandonner cette idée. Dans une maison privée, la question n'aurait pas été posée du tout, mais un appartement en est une autre.

Le premier problème est l'élimination des gaz d'échappement, qui ne sont absolument pas à mettre dans l'appartement d'une maison avec chauffage central. Eh bien, vous ne jeterez pas le tuyau juste à l'extérieur de la fenêtre, où la fumée est aspirée instantanément dans la fenêtre du voisin ouvert le plus proche.

Le deuxième problème est le bruit. Oui, les générateurs à quatre temps à onduleur modernes, lorsque vous les entendez dans la rue, peuvent sembler très silencieux. Et si vous accrochez un silencieux supplémentaire, puis complètement silencieux. Mais croyez-moi, dans un environnement hors tension, ce qui signifie un immeuble d'appartements complètement calme, même un grondement aussi silencieux sera parfaitement audible pour tous les voisins.

En bref, l'idée avec le générateur est morte, donc clairement et pas née. Parmi les options réelles restantes, seules les batteries sont restées.

De plus, je me permets un simple récit de mes épreuves émotionnelles et des décisions prises à la première personne sans aucune prétention à la vérité universelle. Et je préviens immédiatement que mes arguments à quelqu'un peuvent sembler peu convaincants, et les décisions prises sont controversées. Mais, néanmoins, tout ce qui est décrit ici est actuellement implémenté dans le matériel et exécute avec succès les tâches.

Et si quelqu'un s'intéresse à l'aspect purement pratique du problème et qu'il n'y ait pas d'importance pour moi, il peut sauter de nombreuses lettres et passer directement à la description de la solution toute faite.

En bref sur le choix du type de batterie


Et bien que ce problème n'ait rien à voir avec le sujet de l'article, je voudrais également insérer mes cinq cents ici. En outre, cela se pose inévitablement dans le cadre de telles déclarations, les discussions contiennent souvent beaucoup d' informations utiles.

Aujourd'hui, au cours du siècle du développement rapide des énergies alternatives, des systèmes d'alimentation électrique sans coupure fabriqués à un prix relativement abordable pour la maison, combinés à des mini-centrales solaires ou éoliennes, ont commencé à apparaître. Les plus avancés d'entre eux utilisent des batteries lithium-ion avec tout un tas de "exhausteurs" électroniques de l'efficacité de l'ensemble du système.

Dans mon cas, il ne peut pas être question de mini-centrale pour des raisons objectives, et seule la source de secours, renouvelable à partir d'une prise ordinaire pendant «l'illumination», était intéressante. Par conséquent, il a été décidé de faire de la ferme collective toute la farce électronique de l'onduleur de l'appartement par ses propres moyens. Et comme mes mains étaient complètement déliées, la première chose à décider était le type de piles à utiliser.

Au début, j'ai pensé comme ceci: «Pourquoi pas le lithium? Une jeunesse tendance et stylée. Scellé, économe en énergie, durable. " Mais quand j'ai regardé les prix, ma ferveur de lithium s'est sensiblement apaisée. Une recherche rapide en combinaison avec l'arithmétique scolaire a montré que même les banques chinoises 26650 très «stupides» avec (bien sûr) les 5000 mAH les plus honnêtes coûteront cinq fois plus qu'une batterie acide de même intensité énergétique. Et si vous choisissez quelque chose qui n'est pas dans le bas du prix trié par prix, la différence atteint facilement 8 à 10 fois.

Et comment pouvez-vous compenser une si grande différence de valeur?

Oui, le lithium stocke l'énergie plus efficacement pour chaque kilogramme et mètre cube, et une batterie de la taille d'un bloc de cigarettes consacre facilement une batterie au plomb de dix kilogrammes. Mais ce fait est-il si important pour une utilisation stationnaire?

Bien sûr, un bon "lithium", mais avec la bonne approche durera plus longtemps. Mais dix fois?

Dans le même temps, de l'autre côté de l'échelle, l'explosivité potentielle des batteries d'origine inconnue, un algorithme de charge plus complexe, des problèmes d'élimination (chaque sans-abri sait où utiliser une batterie au plomb à des fins lucratives, tandis que le lithium est beaucoup plus compliqué).

Bref, par la somme des facteurs, j'ai décidé de reporter l'idée du lithium jusqu'à la prochaine itération. Peut-être que dans quelques années, quelque chose va changer, mais pour l'instant, le plomb est notre tout.

, , . , , , .

Quant aux batteries au plomb, il existe également plusieurs options. L'option «correcte» est des batteries de secours spécialisées, qui sont utilisées dans les onduleurs, dans les stations de base de communication cellulaire et dans d'autres endroits similaires où elles doivent être capables de prendre et de délivrer des courants importants, de subir occasionnellement une forte décharge et de travailler sans distraire les gens. pour le service.

Une autre «bonne» option est les batteries de traction pour les chargeurs automatiques électriques ou, quoi diable, un sous-marin diesel. Ces batteries ont une durabilité élevée et une bonne tolérance aux décharges profondes, tout en ne privant pas le propriétaire de la possibilité de «faire le plein d'eau».

Eh bien, la «mauvaise» option est la batterie de démarrage du magasin de voitures le plus proche. Une telle batterie peut brièvement donner jusqu'à un kilowatt d'énergie à la montagne, mais toute décharge est stressante pour elle, comme le travail pour une personne paresseuse. Et la gloire des piles jetables est généralement ancrée dans les piles modernes au calcium: «déchargées - changez».

Eh bien, j'espère que personne ne doute de l'option que j'ai finalement choisie pour la mise en œuvre? Bon, troisième. Et les raisons ici ne résident pas seulement dans l'amphibien verruqueux bien connu, mais aussi dans un simple calcul pragmatique. Les batteries de démarrage sont plusieurs fois moins chères que toutes les autres options, se rapprochant parfois du lithium en valeur. Et au lieu de secouer une batterie coûteuse, vous vous sentez beaucoup plus libre dans une situation d'indifférence saine, lorsque le remplacement entraîne des pertes de nourriture pour quelques semaines. De plus, si vous ne laissez pas ces batteries s'épuiser avant de perdre une impulsion, leur durée de vie dans le rôle des sauvegardes est calculée pendant de nombreuses années. Vous pouvez toujours mettre une batterie avec une plus grande capacité, définir une limite de décharge plus douce et toujours obtenir un meilleur rapport prix / capacité que la "bonne" batterie,souffrant d'une décharge profonde.

L'essentiel à cet égard est de prévoir une ventilation au moins au niveau du «trou dans le mur» sur le lieu d'installation des batteries. Eh bien, organisez une protection banale contre les courts-circuits, car la basse tension de la source de courant émousse la vigilance et tout peut très mal se terminer.

Guerre actuelle dans un seul appartement


Après un certain réconfort moral provoqué par la décision finale sur le type de batterie, une nouvelle raison semble immédiatement réfléchir.

Permettez-moi de vous rappeler qu'au départ, je voulais obtenir un alternateur 230 V. Cependant, après s'être réconcilié avec la réalité objective et être passé mentalement aux batteries, l'inertie de la pensée m'a déjà conduit sur le célèbre marché chinois en ligne afin de choisir un convertisseur DC-AC adapté. Et dans le processus d'étude des caractéristiques, le terme «onde sinusoïdale modifiée», qui a été oublié, a d'abord refait surface, puis le bon sens a commencé à poser des questions inconfortables.

L'essence des questions était la suivante. Pour couvrir tous les besoins énergétiques de l'appartement avec une petite batterie ne fonctionnera toujours pas. Des chaudières, un micro-ondes, une machine à laver, un ordinateur de bureau puissant resteront insupportables en puissance. Et le réfrigérateur, la hotte et même le ventilateur banal ne pourront pas fonctionner correctement à cause de cette onde sinusoïdale très modifiée. Bien sûr, il existe des onduleurs avec une véritable onde sinusoïdale, mais ils sont non seulement plus chers, mais aussi moins efficaces. Et le problème des consommateurs puissants n'est toujours pas résolu.

Quels consommateurs restent dans le budget? Il n'y en a pas beaucoup: l'électronique grand public comme les ordinateurs portables et les téléphones / tablettes, un routeur, un serveur ARM, l'ambiance est une télévision et, bien sûr, l'éclairage. De plus, le message initial de l'article (et ma motivation personnelle) est justement d'assurer le fonctionnement du poste de travail de secours sous forme d'ordinateur portable et un confort ménager minimal, comme la lumière dans les toilettes.

Presque tous ces appareils nécessitent une tension constante de 5 à 21 V pour leur fonctionnement et il n'y a aucun objectif objectif d'augmenter d'abord la tension de la batterie à 230 V CA, puis de la baisser et de la redresser à plus ou moins le niveau initial. Sur ces transformations, il est facile de perdre jusqu'à 50% d'énergie, ce que je n'ai pas du tout souri.

Bref, c'est comme ça que l'idée est venue d'utiliser un réseau à courant continu basse tension comme alternative. Et après un calcul approximatif des pertes dans les fils, le 12 (13,8) V initial s'est transformé en un 24 (27,6) V. plus pratique.

Au début, je voulais prendre même 36 (41,4) B, mais après avoir étudié les caractéristiques de certains composants électroniques que je prévoyais d'utiliser pour travailler avec toute cette économie, j'ai dû modérer mon appétit.

Ainsi, dans un câblage alternatif d'une section de 3,5 mm 2 de cuivre pur, la tension a finalement été appliquée à partir de deux batteries de voiture connectées en série.

, . ( ) . , .

Pour permettre aux consommateurs dans les chambres, un point de vente supplémentaire a été ajouté à chaque «grand» bloc de points de vente. Et pour que personne ne confonde une prise ordinaire avec une prise de secours, les produits de type «américain» à contacts plats de différentes largeurs ont été installés comme ces derniers. Ceci, d'une part, ne permettra pas à l'aspirateur d'être connecté au réseau DC, et d'autre part, une telle prise, contrairement à la prise européenne, utilise toujours la même polarité lors de l'utilisation de la «bonne» prise.


Pour ces prises, des adaptateurs pour ordinateur portable ont été fabriqués, abaissant la tension aux 18-20 V souhaités et équipés des connecteurs correspondants. Il est clair que les talons étaient faits des charges USB habituelles de cinq volts pour chaque petite chose. Eh bien, juste au cas où, une paire de petits convertisseurs 24/230 V a été achetée, avec une puissance de 50 et 200 watts.

Des étuis pour charger avec une prise américaine, les mêmes cordons d'alimentation et des cartes de convertisseurs d'impulsions prêts à l'emploi ont été commandés en Chine. Un fer à souder n'était nécessaire que pour connecter les fils.

Je ne parlerai pas de la centrale électrique dans cet article, d'autant plus qu'il n'y a rien d'intéressant, je vais donc aller directement à l'un des problèmes "du bas", à savoir la question de l'utilisation de l'énergie accumulée par la batterie à des fins d'éclairage.

Éclairage


Ainsi, lors du câblage de l'appartement en parallèle avec le câblage principal, les fils d'un autre réseau CC avec une tension de 24 (27,6) V. ont été tirés. Entre autres choses, une boucle composée d'une paire de ces fils a été enroulée dans chaque boîtier de commutation, puis avec les fils du réseau 230 V conduit aux plafonniers (s'il y en avait plusieurs dans la pièce, alors le fil alternatif ne conduisait qu'à un seul).

Que faire de la sortie du réseau DC dans le champ de la lampe est une question d'approche individuelle. Comme source de lumière, une bande LED régulière de 24 volts a été choisie. Ses segments de différentes longueurs (proportionnellement à la superficie de la pièce), selon la conception des luminaires, étaient soit montés directement dans leurs logements, soit collés sur les surfaces d'où il brillerait bien, et d'où il ne serait pas très frappant.

En tout cas, c'est un problème plus esthétique qu'un problème technique, et maintenant c'est autre chose.

Ainsi, dans la boîte de chaque interrupteur, j'ai une boucle d'un fil de phase d'un réseau 230 V pour allumer la lumière "ordinaire", et une boucle des deux fils d'un réseau DC pour l'éclairage de secours. De cela et de la danse.

En fin de compte, le défi devant moi était de créer un certain appareil qui pourrait séparer trois états les uns des autres:

  • Secteur CA OK → éteindre les lumières de secours.
  • Le réseau AC est hors tension, les contacts de l'interrupteur sont fermés → allumer la lumière de secours.
  • Le réseau AC est hors tension, les contacts de commutation sont ouverts → éteindre la lumière de secours.

Nous considérons que les actions sont unilatérales, c'est-à-dire que, par exemple, éteindre l'éclairage déjà éteint ne change rien. Ces états peuvent être distingués les uns des autres si les tâches de détermination du fonctionnement du réseau AC et de la position des contacts du commutateur sont résolues. Dans le même temps, j'avais les conditions initiales suivantes:

  1. La gestion de l'éclairage principal et de l'éclairage de secours doit être totalement transparente pour un seul organe directeur, pas de «ferme collective» des boutons supplémentaires.
  2. , , , .
  3. , .
  4. – , .
  5. - .
  6. ( ), .
  7. .

Bien sûr, l'absence de secteur AC dans les boîtiers zéro s'est avérée être une erreur de calcul très compliquée. Sans cela, la détermination de la présence de tension à l'entrée de l'interrupteur devient impossible. Techniquement, il serait possible d'utiliser le fil négatif d'un réseau à courant continu comme zéro, mais cela contredit le paragraphe 5 complètement indestructible de mon mandat.

Capteur


Il existe néanmoins une alternative à la mesure de la tension secteur. Il n'est pas nécessaire pour moi de déterminer la présence de tension, il suffit de déterminer la présence de courant dans le fil de phase avec les contacts de l'interrupteur fermés. Après tout, s'il y a du courant, alors il y a de la tension. De plus, la «lecture» précise du courant permet d'activer l'éclairage de secours non seulement en cas de panne de courant, mais également en cas de grillage banal de l'ampoule. Cette méthode ne permet pas de déterminer l'état du réseau AC lorsque le commutateur est éteint, mais cet état ne me dérange pas, car une fois l'interrupteur éteint, l'éclairage de secours ne devrait pas fonctionner non plus.

Déterminer la présence de courant dans le fil est assez simple, surtout si ce courant est alternatif. Ici, vous pouvez appliquer, par exemple, un capteur Hall qui détecte le champ magnétique autour du fil. Mais vous pouvez vous en tirer avec un transformateur de courant ordinaire , composé d'un circuit magnétique en anneau avec un enroulement. Un fil de courant alternatif passe à travers l'anneau, ce qui crée un champ magnétique dans le circuit magnétique. Ce champ induit à son tour un courant secondaire dans l'enroulement, proportionnel au courant primaire dans le fil. Ainsi, ce dispositif simple vous permet de mesurer la force du courant alternatif dans n'importe quel fil, sans le casser et généralement sans connexion galvanique avec le circuit primaire.

Le travail des pinces de courant, un outil très utile pour tout électricien, est basé sur le même principe.

S'il y a un tel transformateur près de l'interrupteur, il suffit de mesurer la tension sur son enroulement secondaire pour savoir si un courant circule dans le circuit de la lampe. La présence de courant, comme je l'ai dit, en première approximation indique deux faits: il y a une tension dans le réseau 230 V, et l'interrupteur est fermé. Le premier de ces faits est essentiel pour le fonctionnement du dispositif d'activation de l'éclairage de secours.

Le deuxième "paramètre d'entrée" de mon futur appareil devrait être la position des contacts de commutation.

Le «brainstorming» initié parmi les collègues amateurs a apporté diverses options pour déterminer la position du commutateur, ce qui se résumait principalement à modifier la conception afin d'y ajouter une autre paire de contacts. Ici, les possibilités d'imagination sont assez grandes.

Il était possible de prendre un double au lieu d'un simple interrupteur et de «paralléliser» mécaniquement ses moitiés afin qu'elles deviennent un seul ensemble. Cette option ne différait pas dans l'esthétique extérieure et ne résolvait pas le problème dans les pièces où l'éclairage était à double circuit et l'interrupteur était initialement double.

D'autres options impliquaient l'introduction d'un micro-interrupteur ou d'un interrupteur à lames avec un aimant dans le mécanisme de l'interrupteur. Mais après avoir étudié les conceptions des disjoncteurs appliqués, ces options ont également disparu. La base en céramique monolithique d'un bon interrupteur ne laisse simplement aucune chance, même pour un microrupteur compact, et l'aimant et l'interrupteur à lames n'ont pas fonctionné en raison d'une course de clé trop faible et d'une hystérésis dans la courbe de fonctionnement / relâchement de l'interrupteur à lames.

«» , . , , , . , , , .

Bref, il fallait trouver une méthode qui ne nécessiterait pas de modification du commutateur. Et cette méthode a été trouvée.

Ci-dessus, j'ai décrit un transformateur de courant, qui permet de déterminer la présence de courant alternatif dans un fil sans rupture et sans contact galvanique. Mais tout transformateur est un appareil bidirectionnel (contrairement au même capteur Hall), ses enroulements primaire et secondaire sont interchangeables.

Si nous appliquons un courant alternatif à l'enroulement secondaire d'un tel transformateur, il induit une tension aux extrémités du fil enfilé dans l'anneau. Et, plus important encore, l'énergie consommée par le bobinage de la source dépendra du fait que le courant secondaire dans le fil trouvera son chemin pour un mouvement circulaire.

Et ici, cela devient plus intéressant. Un fil passe à travers l'anneau, qui est immédiatement, en quelques centimètres, connecté à l'un des contacts de l'interrupteur. Il ne reste plus qu'à fournir à ce courant un chemin de retour de l'autre côté de l'interrupteur afin d'obtenir un dispositif de «détection» de la position des contacts. Et pour la raison que ce courant est alternatif, un condensateur conventionnel peut devenir un pont pour lui.


En principe, pour fermer ce circuit dans certaines conditions, un condensateur n'est pas nécessaire. Si un courant d'une fréquence suffisamment élevée est «pompé» dans le transformateur, alors la capacité parasite entre les fils sera suffisante pour le passage.


Donc, ce qui est nécessaire pour organiser un tel détecteur:

  1. Transformateur de courant.
  2. Compteur de tension de sortie du transformateur.
  3. Source de courant alternatif haute fréquence.
  4. Compteur de courant traversant l'enroulement d'un transformateur inversé.

Le plus difficile en termes de sélection des paramètres optimaux est un transformateur qui, dans le mode transformateur de courant, devrait fournir une tension acceptable avec une fréquence de 50 Hz, et dans le mode actif de détection de l'état du disjoncteur, ont un coefficient de transmission acceptable à une fréquence de centaines de KHz. Cet élément n'est pas possible de simuler dans un programme de modélisation de circuits électroniques, et même avec un calcul mathématique, tout s'est avéré très difficile. J'ai dû prendre un fer à souder dans mes mains et passer des heures à conduire différentes options à la recherche du meilleur.

Le nombre de tours et la résistance optimale à la charge ont été choisis empiriquement et non le fait que je n'ai pas raté le meilleur rapport. À la suite des expériences, la construction suivante est apparue:

  • Noyau en ferrite avec une perméabilité de 10 000, taille 10x6x4 mm.
  • Enroulement 30 tours avec fil émaillé de 0,25 mm.
  • La charge active de l'enroulement est de 1 kOhm.

La perméabilité magnétique est assez grande, probablement, il serait logique d'utiliser un anneau pour 5000 voire 2000 unités, mais en quantité suffisante j'avais ces anneaux. En général, la perméabilité dans ce cas est une valeur de compromis. Trop bas, le transformateur ne peut pas fonctionner à une fréquence de 50 Hz et trop élevé gâche tout à des fréquences supérieures à des centaines de kilohertz.

De multiples expériences ont confirmé la réalité de l'idée et les résultats suivants ont été obtenus:

  • En mode transformateur de courant, le coefficient de transmission s'est avéré être d'environ un millivolt par watt de puissance circulante (tension 220-230 V).
  • En mode sonde, en fonction de la fréquence et de la capacité de la fuite, la différence de courant avec les contacts fermés et ouverts de l'interrupteur atteint deux à trois fois.

C'est tout. Les deux valeurs sont plus que suffisantes pour une fixation fiable du courant circulant et pour déterminer la position des contacts de commutation. Cela dépend uniquement de l'implémentation spécifique.


En fer


Contrairement à la plupart de ses autres conceptions, ici déjà aux premiers stades de la délibération, il a été décidé d'utiliser immédiatement le microcontrôleur. En fonction des besoins et de l'expérience, le choix s'est porté sur l'ATtiny13A. Cette puce a un ADC, et avec la possibilité d'utiliser une source de référence interne de 1,1 V au lieu de la tension d'alimentation. Il existe un PWM idéal pour générer un signal sonore. Et, qui s'est avéré plus tard important, il existe une EEPROM qui vous permet de stocker les données d'étalonnage.

, « , , - «» , ».

. . . , , , .

Ici, vous devez combiner au moins un générateur, un voltmètre et une sorte de déclencheur pour stocker l'état actuel entre les mesures. En général, tout croquis spéculatif ne nécessitait au moins trois cas que sur le "noyau", et le contrôleur s'est avéré beaucoup plus pratique.

La tension du transformateur de courant avec une charge de 10-20 W est de 10-20 mV et elle est trop petite pour la fournir à l'entrée DAC avec une limite de 1,1 V. Par conséquent, en plus du contrôleur, vous avez également besoin d'un amplificateur avec un coefficient de transfert d'environ 100 pour augmenter la tension du signal au moins jusqu'à des centaines de millivolts.

En général, la tension du signal de sortie d'un transformateur de courant dépend non seulement de la puissance de charge, mais également de sa nature. Une charge purement active telle que l'ampoule d'Ilyich, par exemple, donne une onde sinusoïdale de niveau millivolt. Une ampoule LED de la même puissance avec une puissance d'impulsion simple donne de courtes rafales aux volts et au-dessus. On pouvait jouer là-dessus, mais, d'une part, je voulais fabriquer un appareil universel, et d'autre part, dans l'appartement, il y avait une lampe avec un bloc d'alimentation externe équipé d'un circuit PFC (c'est-à-dire ayant une caractéristique de consommation proche de l'actif).

Je ne tourmenterai pas le lecteur avec des options intermédiaires et donnerai immédiatement le schéma final de l'appareil.


Ici, la tension continue via le régulateur linéaire économique LM2931-5.0 alimente le contrôleur. En termes de boîtier, de fonctionnalité et de brochage, ce stabilisateur est similaire au 78L05 populaire, mais s'en distingue par une consommation intrinsèque plus faible (environ 500 μA à une charge de 10 mA) et une plus grande tolérance aux courtes impulsions de tension d'entrée. Si vous prévoyez de travailler avec une tension ne dépassant pas 20 V, vous pouvez utiliser un analogue encore plus économique du LP2950-5.0.

LP2950-5.0 30 . 24 . - , , , , . 50%, 100%.

Le transformateur n'est pas représenté sur le schéma, mais son enroulement est connecté aux broches TR1 et TR2.

En tant qu'élément clé pour commuter la charge, un transistor MOS à canal P à faible courant 2SJ196 est utilisé (un courant jusqu'à 1 A devrait être suffisant pour n'importe quelle lampe LED), mais tout autre adapté au brochage, le courant maximal et la tension de drain maximale peuvent être utilisés.

En plus du contrôleur et de la clé des éléments actifs, deux transistors sont utilisés. Un est nécessaire pour contrôler l'obturateur de la clé, fonctionnant sous la tension de la source d'urgence. Le second agit comme un signal amplificateur de la sortie du transformateur de courant.

À ce stade, vous pouvez utiliser des amplificateurs opérationnels, mais en termes de détails, le gain est minime et vous devez oublier de travailler à des fréquences supérieures à plusieurs centaines de kilohertz.

Ce n'est pas le signal amplifié du transformateur lui-même qui est envoyé à l'ADC, mais son enveloppe, qui peut être mesurée par un seul échantillon, et non par une numérisation en "streaming" pendant un certain temps. Pour isoler l'enveloppe, deux diodes Schottky sont utilisées, connectées selon le circuit de doublage de tension. Une telle inclusion forme un détecteur d'amplitude classique, dans lequel la chute de tension aux bornes des diodes elles-mêmes est largement compensée.

Le principe de fonctionnement du capteur est simple. Considérons d'abord l'algorithme des actions nécessaires pour mesurer le courant dans le fil.

En mode de mesure actuel, la broche PB0 est mise en mode sortie et est mise à la terre par un zéro logique. Cela empêche l'envoi de signaux du contrôleur au point TR1. En parallèle, les mêmes actions sont effectuées sur la broche PB3, à la suite de laquelle la sortie supérieure du condensateur C2 est mise à la terre. Ce condensateur avec la résistance R1 crée un filtre passe-bas avec une fréquence de coupure d'environ 1500 Hz. Grâce à ce filtre, le rôle de divers bruits haute fréquence dans la formation du signal mesuré est fortement réduit.

Ensuite, un niveau élevé est appliqué au PB4 pour alimenter l'amplificateur de signal. Après l'achèvement des transitoires, un courant de 50 Hz provenant de la sortie du transformateur est amplifié et arrive au redresseur, où il charge le condensateur C8.

La charge du condensateur C8 est mesurée à l'aide d'ADC1 et à partir de la valeur de tension obtenue, une conclusion est tirée au sujet du courant «primaire» traversant le transformateur.

La détection active est effectuée différemment. Tout d'abord, la broche PB0 est traduite en un solveur PWM, et un signal lui est envoyé avec une fréquence de centaines de kilohertz à des unités de mégahertz. Ce signal est quelque peu atténué par un diviseur résistif et envoyé à l'enroulement du transformateur de courant au point TR1. Le condensateur C1, avec un bras supérieur du diviseur R4, crée un filtre passe-bas avec une fréquence de coupure d'environ 1,5 MHz, ce qui réduit le niveau des harmoniques haute fréquence des impulsions rectangulaires.

Après avoir traversé l'enroulement du transformateur, le signal de la sonde du point TR2 parvient au même amplificateur et détecteur, de même, à la fin, charge le condensateur C8 à une tension proportionnelle à la charge dans le circuit "externe" du transformateur. De la même manière, la charge du condensateur est mesurée à l'aide de l'ADC du microcontrôleur.

Maintenant des explications pour certains "lâches".

La résistance R5 est conçue pour limiter la tension à la grille de l'interrupteur d'alimentation, qui pour les MOSFET basse tension ne doit généralement pas dépasser 20 V.Dans mon cas, le réseau CC a une tension allant jusqu'à 30 V, ce qui a dicté la nécessité d'un diviseur 1: 3, qui est obtenu en conjonction avec R3. Lorsqu'elle est alimentée par une source de moins de 20 V, la résistance R5 n'est pas nécessaire (remplacée par un cavalier).

Les condensateurs C4 et C5 sont connectés en parallèle pour atteindre une capacité de 2 μF. Cette paire de condensateurs est remarquable en ce qu'elle doit transmettre aussi bien des signaux de basses que de hautes fréquences. Ici, il serait possible d'utiliser une connexion parallèle d'un condensateur électrolytique de plusieurs microfarads et d'une céramique de cent ou deux nanofarads, mais un "électrolyte" d'une si petite capacité ne donne pas de gain de taille par rapport aux "céramiques" microfarad. Certes, il n'était pas possible d'acheter un condensateur céramique à 2 microfarads, donc j'en ai mis deux pareils.

, 50 2 , . , . . 100 , , . .

Les résistances R4 et R1 forment une division de tension qui égalise plus ou moins la tension alternative de cinq volts à la sortie PWM avec la tension de sortie du transformateur de courant.

Le condensateur C8, comme mentionné précédemment, accumule la tension à mesurer. C'est mieux s'il s'agit d'un condensateur de haute qualité avec un courant de fuite minimum.

Une mention spéciale mérite le «peigne» TP1 / TP2 à deux broches connecté à la jambe de réinitialisation du microcontrôleur. Ces contacts sont utilisés non seulement pour redémarrer, mais pour entrer dans le mode d'étalonnage, qui est décrit ci-dessous. Simplement, après l'implémentation de toute la liste de souhaits, le contrôleur n'avait plus de broches libres, et la nécessité d'ajouter un simple contrôle est apparue lors du débogage du firmware. J'ai donc dû utiliser le pied de réinitialisation du contrôleur à cet effet.

«» AVR RESET GPIO. , . , . , , , , RESET.

En général, le circuit s'est avéré assez simple, et toute la «magie» est implémentée dans le firmware du microcontrôleur. Cependant, après la fabrication du prototype, il s'est avéré que la capacité de câblage pour un fonctionnement fiable de la "sonde" n'est souvent pas suffisante. La différence de courant à travers le transformateur s'avère simplement comparable au niveau d'interférence et le fonctionnement du circuit devient peu fiable.

Par conséquent, j'ai dû abandonner l'anneau de ferrite suspendu librement aux fils et ajouter un circuit haute tension directement à la carte dans une nouvelle révision de l'appareil, afin de faciliter la tâche de sondage.

Le point ici est d'ajouter un condensateur dédié, allumé de sorte que le moyen le plus court de fermer le chemin du courant RF à travers les contacts du commutateur.


Le condensateur C10 doit être conçu pour une tension d'au moins kilovolts, et sa capacité doit être choisie selon un principe de compromis afin que la fiabilité de fonctionnement soit suffisante pour une utilisation pratique, et que le courant capacitif parasite à travers la lampe ne soit pas trop grand. En pratique, vous pouvez essayer de "jouer" avec cette dénomination, si nécessaire.

En tout état de cause, un interrupteur équipé d'un tel capteur ne peut plus être perçu comme idéal. Au contraire, il est similaire à un interrupteur avec un indicateur.Par conséquent, d'une part, il peut provoquer une lumière parasite ou un scintillement de lampes LED de faible qualité, et d'autre part, il peut provoquer un choc électrique, mais pas un fort. Par conséquent, vous n'avez jamais besoin de travailler avec le câblage d'éclairage, en vous appuyant uniquement sur l'interrupteur dans le mur, éteignez toujours l '«interrupteur» à l'entrée.

Et, comme je devais encore ajouter une partie du réseau AC à la carte, j'ai ajouté deux selfs d'arrêt là-bas, ce qui ne laissera pas le courant de sonde haute fréquence passer dans le câblage. La valeur pratique de la fréquence de la tension de sondage peut atteindre plusieurs MHz et moi, en tant que radio-amateur, j'en ai très marre de l'idée d'augmenter la quantité d'interférences dans le réseau de mes propres mains.

Les selfs L1 et L2 doivent être électriques, enroulés avec un fil d'une épaisseur notable sur les noyaux de type haltère ou anneau. Les inductances de signal dans la conception axiale de «résistance» ne peuvent pas être utilisées.

Le tour principal du transformateur de courant est maintenant un morceau de fil enfilé à travers l'anneau et soudé aux points TR3 et TR4 sur la carte. Il est préférable que ce fil soit blindé, tout en connectant l'écran à TR5 et TR6 des deux côtés de l'anneau.

TR6 , . - , . , .


Le code du micrologiciel et le fichier HEX assemblé sont joints à la fin de l'article avec le circuit et la disposition de la carte de circuit imprimé.

L'algorithme du détecteur accordé est simple. Toutes les trois secondes, le contrôleur se réveille d'un sommeil profond, prend des mesures et, si nécessaire, modifie l'état de la touche de commande dans une direction ou dans une autre. Ainsi, la réaction à un changement de position de l'interrupteur peut avoir un retard pouvant aller jusqu'à trois secondes. Pas très pratique, mais cela se fait, d'une part, pour économiser l'énergie de la source de secours, et d'autre part, pour réduire considérablement l'intervalle d'interrogation ne permet pas la durée des transitoires à différents stades de mesure. L'intervalle minimum peut être considéré comme égal à une seconde, mais le circuit sera alors en mode de consommation active presque tout le temps.

Eh bien, en conclusion, sur la configuration. En raison du fait que différents capteurs doivent fonctionner dans des conditions complètement différentes en fonction du courant consommé par la lampe, de la longueur et d'autres caractéristiques de câblage, du niveau d'interférence, etc., il était impossible de mettre un ensemble universel de paramètres adaptatifs dans le micrologiciel. Par conséquent, chaque capteur après l'installation nécessite un seul étalonnage sur site.

Le capteur passe en mode d'étalonnage à chaque mise sous tension, en l'absence de données d'étalonnage, ou après fermeture des contacts TP1 et TP2. L'entrée dans la première étape de l'étalonnage est indiquée par un voyant d'urgence clignotant cinq fois.

Après cinq clignotements, 7,5 secondes sont accordées pour régler l'interrupteur sur la position «off», s'il a été activé auparavant. Passé ce délai, le niveau d'interférence toujours présent dans le réseau AC est mesuré. La valeur obtenue est utilisée comme point de départ pour les mesures dans le rapport cyclique. Toujours à ce moment, le disjoncteur est détecté à différentes fréquences pour la sélection ultérieure de la fréquence la plus "contrastée".

Ensuite, la deuxième étape d'étalonnage commence et le voyant d'urgence clignote deux fois. 7,5 secondes de temps sont accordées pour mettre l'interrupteur en position «on» et après la temporisation, le programme mesure le courant consommé par la lampe. Si la lampe a plusieurs niveaux de luminosité, après avoir allumé, vous devez immédiatement la régler au minimum, afin qu'à l'avenir, le capteur fonctionne correctement avec l'un des niveaux disponibles.

Le début de la troisième et dernière étape d'étalonnage est marqué par un clignotement à trois reprises de la lampe de secours et nécessite que l'interrupteur reste en mode «marche» et que le réseau d'éclairage soit mis hors tension à un niveau supérieur (c'est-à-dire avec le disjoncteur principal ou secondaire sur le panneau) au plus tard à travers les mêmes 7,5 secondes Dans ce cas, un deuxième sondage du disjoncteur déjà activé à différentes fréquences est effectué et en tenant compte des valeurs obtenues au premier étage, la fréquence est choisie à laquelle la différence de courant à travers l'interrupteur marche / arrêt est maximale.

La réussite de l'étalonnage est indiquée par un simple clignotement de la lampe de secours et, si le réseau d'éclairage après la troisième phase est toujours hors tension, en allumant l'éclairage de secours lors du prochain cycle d'interrogation.

Si les valeurs mesurées des courants et des résistances dans des conditions différentes sont trop proches et ne peuvent pas être utilisées pour une détection fiable, l'étalonnage échoue. Dans ce cas, la lampe d'éclairage de secours clignote deux fois lorsque la position de l'interrupteur échoue, ou trois fois lorsque la consommation standard de la lampe d'éclairage est trop faible.

En cas de réticence persistante du capteur à calibrer avec un double clignotement au final, vous devriez essayer d'augmenter la capacité de C10.

Total


L'appareil s'est avéré être assez simple, assez compact pour tenir dans un boîtier de commutation, mais pour ne pas dire qu'il est très facile à configurer. Bien sûr, il ne s'appuie pas sur le composant d'une "maison intelligente" moderne, car il n'a pas de 5G, le contrôle du cloud, et même le WiFi banal avec GPS n'est pas fourni. Néanmoins, huit de ces appareils remplissent leur seule fonction, et rien d'autre n'est requis d'eux dans des conditions de panne d'électricité.

Code source du firmware (Atmel Studio 7)
#define F_CPU 9600000 //   (  : avrdude.exe -U lfuse:w:0x7a:m -U hfuse:w:0xff:m)

#include <avr/io.h>
#include <avr/wdt.h>
#include <avr/sleep.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include <avr/eeprom.h>

//#define PROTEUS

typedef unsigned char bool; //   
#define true  (0 == 0)
#define false (0 != 0)

#define MAX_U10BIT 0b0000001111111111 //      

#define INTERVAL         3   //  , 
#define CUR_MINIMAL_DIFF 50  //      , LSB
#define RES_MINIMAL_DIFF 50  //      , LSB
#define FREQ_DIV_OFFSET  2   //     
#define FREQ_MAXIMAL_DIV 6   //     

EEMEM unsigned int  EEPROM_cur_edge;
EEMEM unsigned int  EEPROM_res_edge; 
EEMEM unsigned char EEPROM_frequency_dividor;

unsigned int cur_edge, res_edge; //   ,   EEPROM    
unsigned char frequency_dividor; //   ,   EEPROM    
unsigned char clk = 0; //   watchdog
bool tp_reset = false; //   TP1  TP2

//   
static void init_vars(void) {
  if(MCUSR & (1 << EXTRF)) { // ,       TP1  TP2
    tp_reset = true;
    MCUSR &= ~(1 << EXTRF); //  EXTRF       ,   
  }
}

//  
static void init_pins(void) {
  DDRB |= (1 << PB0) | (1 << PB1) | (1 << PB2) | (1 << PB4); //       
}

//    watchdog
static void init_interrupts(void) {
  sleep_enable(); //   

  WDTCR = (1 << WDCE) | (1 << WDE); //  watchdog
  WDTCR = (1 << WDTIE) | WDTO_1S; // watchdog      ,  1 

  sei(); //  
}

//   
void init_settings(void) {
  cur_edge = eeprom_read_word(&EEPROM_cur_edge); //   
  res_edge = eeprom_read_word(&EEPROM_res_edge); //   
  frequency_dividor = eeprom_read_byte(&EEPROM_frequency_dividor); //   
}

//   
static void toggle_load(bool state) {
  if(state) {
    PORTB |= (1 << PB1);
  } else {
    PORTB &= ~(1 << PB1);
  }
}

//  
static void blink_load(unsigned char count) {
  for(unsigned char i = 0; i < count; ++i) {
    _delay_ms(200);
    toggle_load(true);
    _delay_ms(200);
    toggle_load(false);
  }
}

//   (   )
static void stop(void) {
  set_sleep_mode(SLEEP_MODE_PWR_DOWN);
  while(true) sleep_cpu();
}

//   
static void toggle_amp(bool state) {
  if(state) {
    PORTB |= (1 << PB4); //     PB4
    _delay_ms(250);      //       200 .
  } else {
    PORTB &= ~(1 << PB4);
  }
}

//  
static void toggle_lpf(bool state) {
  if(state) {
    DDRB |= (1 << PB3); //  PB3    (  "0")     C2
  } else {
    DDRB &= ~(1 << PB3); //  PB3    ( )   C2  
  }
}

//    
static void toggle_gen(bool state) {
  if(state) {
    TCCR0A |= (1 << COM0A0) | (1 << WGM01); //    ( )    OC0A      OCR0A
#ifndef PROTEUS
    TCCR0B |= (1 << CS00); //    1
#else
    TCCR0B |= (1 << CS00) | (1 << CS02); //    1024
#endif
    OCR0A = FREQ_DIV_OFFSET + frequency_dividor; //   ,         OC0A
  } else {
    TCCR0A = 0; //  
  }
}

//  
static void toggle_adc(bool state) {
  if(state) {
    DDRB &= ~(1 << PB2); //  PB2    ( )
    ADMUX = 0b01 | (1 << REFS0); // PB2, 1.1v reference
    ADCSRA = (1 << ADPS0) | (1 << ADPS1) | (1 << ADPS2) | //       = 128 (75 )
             (1 << ADIE) |  //    
             (1 << ADEN);   //  
  } else {
    ADCSRA = 0; //  
    DDRB |= (1 << PB2); //  PB2    (  "0")   C8
    _delay_ms(50); //      C8
  }
}

//  
static unsigned int do_adc(void) {
  set_sleep_mode(SLEEP_MODE_ADC); //   "" 
  do {
    sleep_cpu(); //      ,      ,   
  } while(ADCSRA & (1 << ADSC)); //        ,  

  return ADC;
}

/*
//  
static void blink_bin(unsigned int value, unsigned char count) {
  for(unsigned char i = 0; i < count; ++i) {
    _delay_ms(1000);
    toggle_load(true);
    if(value & (1 << (count - i - 1))) {
      _delay_ms(500);
    } else {
      _delay_ms(50);
    }
    toggle_load(false);
  }
}
*/

//   
static unsigned int get_current(void) {
  unsigned int cur;

  toggle_lpf(true); //  
  _delay_ms(150);
  toggle_adc(true); //  
  _delay_ms(50); //    C8
  cur = do_adc(); //  
  toggle_adc(false);
  toggle_lpf(false);

  return cur;
}

//    
static unsigned int get_resistance(void) {
  unsigned int res;

  toggle_gen(true); //  
  _delay_ms(150);
  toggle_adc(true); //  
  _delay_ms(50); //    C8
  toggle_gen(false); //   ,   C8     
  res = do_adc(); //     
  toggle_adc(false);

  return MAX_U10BIT - res; //      ,      
}

//   
static bool is_current(void) {
  return (get_current() >= cur_edge);
}

//   
static bool is_toggled_on(void) {
  return (get_resistance() <= res_edge);
}

//  
static void do_main(void) {
  toggle_amp(true); //  

  if(is_current()) {
    toggle_load(false); //  ,  
  } else {
    if(is_toggled_on()) {
      toggle_load(true); //  ,  
    } else {
      toggle_load(false); //  ,  
    }
  }

  toggle_amp(false); //  
}

//    
static bool first_on(void) {
  return (frequency_dividor == 0xff); //   EEPROM   0xFF,        FREQ_MAXIMAL_DIV
}

//  
static void calibrate(void) {
  unsigned int cur_off, cur_on, res_off, res_on, res_on_tmp, res_off_array[FREQ_MAXIMAL_DIV + 1], diff, max_diff, frequency_dividor_tmp;

  blink_load(5); //    ,    
  _delay_ms(7500); //      

  toggle_amp(true); //  

  cur_off = get_current(); //      ( )

  //      
  for(frequency_dividor = 0; frequency_dividor <= FREQ_MAXIMAL_DIV; ++frequency_dividor) {
    res_off_array[frequency_dividor] = get_resistance();
  }

  blink_load(2); //     
  _delay_ms(7500); //      

  cur_on = get_current(); //     

  blink_load(3); //     
  _delay_ms(7500); //      

  
  res_off = MAX_U10BIT;
  res_on = MAX_U10BIT;
  frequency_dividor_tmp = 0;
  max_diff = 0;
  //      
  for(frequency_dividor = 0; frequency_dividor <= FREQ_MAXIMAL_DIV; ++frequency_dividor) {
    res_on_tmp = get_resistance();

    //   ,      
    if(res_off_array[frequency_dividor] > res_on_tmp) {
      diff = res_off_array[frequency_dividor] - res_on_tmp;
      if(diff > max_diff) {
        res_off = res_off_array[frequency_dividor];
        res_on = res_on_tmp;
        frequency_dividor_tmp = frequency_dividor;
        max_diff = diff;
      }    
    }
  }
  frequency_dividor = frequency_dividor_tmp;

  toggle_amp(false); //  
  
  if(cur_on > cur_off + CUR_MINIMAL_DIFF) { 
    cur_edge = cur_off + (cur_on - cur_off) / 2; //    ,     
 
    if(res_on + RES_MINIMAL_DIFF < res_off) {
      res_edge = res_off - (res_off - res_on) / 2; //    ,      

      //   
      eeprom_write_word(&EEPROM_cur_edge, cur_edge);
      eeprom_write_word(&EEPROM_res_edge, res_edge);
      eeprom_write_byte(&EEPROM_frequency_dividor, frequency_dividor);
      
      blink_load(1); //  
    } else {
      blink_load(2); //    
      if(first_on()) stop();
    }
  } else {
    blink_load(3); //    
    if(first_on()) stop();
  }
}

ISR(WDT_vect) {
  WDTCR |= (1 << WDTIE); //    watchdog   ""    
}

EMPTY_INTERRUPT(ADC_vect); //     ,     

int main(void)
{
  init_vars();
  init_pins();       
  init_interrupts(); 
  init_settings();

  if(tp_reset || first_on()) {
    calibrate(); //          
  }

  //  
  while(true) {
    set_sleep_mode(SLEEP_MODE_PWR_DOWN);
    sleep_cpu(); //   watchdog

    if(++clk >= INTERVAL) {
      do_main(); //  
      clk = 0;
    }
  }
}


Archive avec schéma, câblage et le projet Atmel Studio 7 complet

All Articles