- Qu'est-ce qu'une commande d'angle de phase CA et comment fonctionne-t-elle?
- Défis du contrôle de l'angle de phase
- Matériel requis pour le circuit de commande d'angle de phase CA
- Schéma du circuit de commande d'angle de phase CA
- Circuit de commande d'angle de phase CA - Fonctionnement
- Conception de PCB pour le circuit de commande d'angle de phase CA
- Code Arduino pour le contrôle d'angle de phase AC
- Test du circuit de commande d'angle de phase CA
- Autres améliorations
Les systèmes domotiques gagnent de plus en plus en popularité de jour en jour, et de nos jours, il est devenu facile d'allumer et d'éteindre certains appareils en utilisant un mécanisme de contrôle simple comme un relais ou un interrupteur, nous avons déjà construit de nombreux projets domotiques basés sur Arduino à l'aide de relais. Mais il existe de nombreux appareils électroménagers qui nécessitent le contrôle de cette alimentation secteur plutôt que de simplement l'allumer ou l'éteindre. Maintenant, entrez dans le monde du contrôle de l'angle de phase AC, c'est une technique simple grâce à laquelle vous pouvez contrôler l'angle de phase AC. Cela signifie que vous pouvez contrôler la vitesse de votre ventilateur de plafond ou de tout autre ventilateur AC ou même vous pouvez contrôler l'intensité d'une LED ou d'une ampoule à incandescence.
Bien que cela semble simple, le processus de mise en œuvre est très difficile, donc dans cet article, nous allons construire un simple circuit de contrôle d'angle de phase AC à l'aide d'une minuterie 555, et à la fin, nous utiliserons un Arduino pour générer un simple signal PWM pour contrôler l'intensité d'une ampoule à incandescence. Comme vous pouvez maintenant l'imaginer clairement, avec ce circuit, vous pouvez construire un système domotique simple où vous pouvez contrôler le ventilateur et les gradateurs de lumière AC avec un seul Arduino.
Qu'est-ce qu'une commande d'angle de phase CA et comment fonctionne-t-elle?
Le contrôle de l'angle de phase AC est une méthode par laquelle nous pouvons contrôler ou hacher une onde sinusoïdale AC. L' angle de déclenchement du dispositif de commutation varie à la suite d'une détection de passage par zéro, ce qui entraîne une sortie de tension moyenne qui change proportionnellement avec l'onde sinusoïdale modifiée, l'image ci-dessous en décrit plus.
Comme vous pouvez le voir, nous avons d'abord notre signal d'entrée CA. Ensuite, nous avons le signal de passage à zéro, qui génère une interruption toutes les 10 ms. Ensuite, nous avons le signal de déclenchement de la porte, une fois que nous obtenons un signal de déclenchement, nous attendons un certain temps avant de donner l'impulsion de déclenchement, plus nous attendons, plus nous pouvons réduire la tension moyenne et vice versa. Nous discuterons plus du sujet plus tard dans l'article.
Défis du contrôle de l'angle de phase
Avant de jeter un œil au schéma et à toutes les exigences matérielles, parlons de certains problèmes associés à ce type de circuit et de la façon dont notre circuit les résout.
Notre objectif ici est de contrôler l'angle de phase d'une onde sinusoïdale AC à l'aide d'un microcontrôleur, pour tout type d'application domotique. Si nous regardons l'image ci-dessous, vous pouvez voir qu'en jaune, nous avons notre onde sinusoïdale, et en vert, nous avons notre signal de passage par zéro.
Vous pouvez voir que le signal de passage à zéro arrive toutes les 10 ms car nous travaillons avec une onde sinusoïdale de 50 Hz. Dans un microcontrôleur, il génère une interruption toutes les 10 ms. si nous devions mettre un autre code à part cela, l'autre code pourrait ne pas fonctionner en raison d'une interruption. Comme nous savons que la fréquence de ligne en Inde est de 50 Hz, nous travaillons donc avec une onde sinusoïdale de 50 Hz et, pour contrôler le secteur, nous devons allumer et éteindre le TRIAC dans un certain laps de temps. Pour ce faire, le circuit de commande d'angle de phase basé sur un microcontrôleur utilise le signal de passage à zéro comme une interruption, mais le problème avec cette méthode est que vous ne pouvez pas exécuter d'autre code que le code de commande d'angle de pas, car d'une certaine manière, il se cassera le cycle de boucle et l'un de ces codes ne fonctionnera pas.
Permettez-moi de clarifier avec un exemple, supposons que vous deviez faire un projet où vous devez contrôler la luminosité de l'ampoule à incandescence, vous devez également mesurer la température en même temps. Pour contrôler la luminosité d'une ampoule à incandescence, vous avez besoin d'un circuit de contrôle d'angle de phase, vous devez également lire les données de température avec lui, si tel est le scénario, votre circuit ne fonctionnera pas correctement car le capteur DHT22 prend un certain temps à donner ses données de sortie. Pendant cette période, le circuit de commande d'angle de phase cessera de fonctionner, c'est-à-dire si vous l'avez configuré en mode d'interrogation, mais si vous avez configuré le signal de passage à zéro en mode interruption, vous ne pourrez jamais lire les données DHT. car la vérification CRC échouera.
Pour résoudre ce problème, vous pouvez utiliser un microcontrôleur différent pour un circuit de contrôle d'angle de phase différent mais cela augmentera le coût de la nomenclature, une autre solution consiste à utiliser notre circuit qui est composé de composants génériques comme le minuteur 555 et coûte également moins cher.
Matériel requis pour le circuit de commande d'angle de phase CA
L'image ci-dessous montre les matériaux utilisés pour construire le circuit, car il est fait avec des composants très génériques, vous devriez pouvoir trouver tout le matériel listé dans votre magasin de loisirs local.
J'ai également répertorié les composants dans un tableau ci-dessous avec le type et la quantité, puisqu'il s'agit d'un projet de démonstration, j'utilise un seul canal pour le faire. Mais le circuit peut être facilement mis à l'échelle selon les besoins.
Sl.Non |
les pièces |
Type |
Quantité |
1 |
Borne à vis 5,04 mm |
Connecteur |
3 |
2 |
Embase mâle 2,54 mm |
Connecteur |
1X2 |
3 |
56 K, 1 W |
Résistance |
2 |
4 |
1N4007 |
Diode |
4 |
5 |
0,1 uF, 25 V |
Condensateur |
2 |
6 |
100 uF, 25 V |
Condensateur |
2 |
sept |
LM7805 |
Régulateur de tension |
1 |
8 |
1K |
Résistance |
1 |
9 |
470R |
Résistance |
2 |
dix |
47R |
Résistance |
2 |
11 |
82 000 |
Résistance |
1 |
12 |
10K |
Résistance |
1 |
13 |
PC817 |
Optocoupleur |
1 |
14 |
NE7555 |
IC |
1 |
12 |
MOC3021 |
Entraînement OptoTriac |
1 |
13 |
IRF9540 |
MOSFET |
1 |
14 |
3,3 uF |
Condensateur |
1 |
15 |
Connexion des fils |
Fils |
5 |
16 |
0,1uF, 1KV |
Condensateur |
1 |
17 |
Arduino Nano (pour test) |
Microcontrôleur |
1 |
Schéma du circuit de commande d'angle de phase CA
Le schéma du circuit de commande d'angle de phase AC est montré ci-dessous, ce circuit est très simple et utilise des composants génériques pour réaliser un contrôle d'angle de phase.
Circuit de commande d'angle de phase CA - Fonctionnement
Ce circuit est composé de composants très soigneusement conçus, je vais parcourir chacun d'eux et expliquer chaque bloc.
Circuit de détection de passage à zéro:
Tout d'abord, dans notre liste, le circuit de détection de passage à zéro est composé de deux résistances 56K, 1W associées à quatre diodes 1n4007 et un optocoupleur PC817. Et ce circuit est chargé de fournir le signal de passage à zéro au circuit intégré de minuterie 555. De plus, nous avons enregistré la phase et le signal neutre pour les utiliser davantage dans la section TRIAC.
Régulateur de tension LM7809:
Le régulateur de tension 7809 est utilisé pour alimenter le circuit, le circuit est chargé de fournir l'alimentation à l'ensemble du circuit. De plus, nous avons utilisé deux condensateurs de 470 uF et un condensateur de 0,1 uF comme condensateur de découplage pour le LM7809 IC.
Circuit de commande avec minuterie NE555:
L'image ci-dessus montre le circuit de commande de la minuterie 555, le 555 est configuré dans une configuration monostable, donc lorsqu'un signal de déclenchement du circuit de détection de passage à zéro frappe la gâchette, la minuterie 555 commence à charger le condensateur à l'aide d'une résistance (en général), mais notre circuit a un MOSFET à la place d'une résistance, et en contrôlant la grille du MOSFET, nous contrôlons le courant allant au condensateur, c'est pourquoi nous contrôlons le temps de charge donc nous contrôlons la sortie des 555 minuteries. Dans de nombreux projets, nous avons utilisé le circuit intégré de minuterie 555 afin de réaliser notre projet.Si vous souhaitez en savoir plus sur ce sujet, vous pouvez consulter tous les autres projets.
TRIAC et le circuit TRIAC-Driver:
Le TRIAC agit comme l'interrupteur principal qui s'allume et s'éteint réellement, contrôle ainsi la sortie du signal CA. Le moteur du TRIAC est le lecteur optotriac MOC3021, il ne pilote pas seulement le TRIAC, mais il fournit également une isolation optique, le condensateur haute tension 0,01 uF 2KV et la résistance 47R forme un circuit d'amortissement, qui protège notre circuit des pics de haute tension qui se produisent lorsqu'il est connecté à une charge inductive, la nature non sinusoïdale du signal CA commuté est responsable des pointes. En outre, il est responsable des problèmes de facteur de puissance, mais c'est un sujet pour un autre article. De plus, dans divers articles, nous avons utilisé le TRIAC comme appareil préféré, vous pouvez les vérifier si cela vous intéresse.
Filtre passe-bas et MOSFET à canal P (agissant comme résistance dans le circuit):
La résistance 82K et le condensateur 3,3uF forment le filtre passe-bas qui est responsable du lissage du signal PWM haute fréquence généré par l'Arduino. Comme mentionné précédemment, le MOSFET à canal P agit comme la résistance variable, qui contrôle le temps de charge du condensateur. Le contrôle est le signal PWM qui est lissé par le filtre passe-bas. Dans l'article précédent, nous avons clarifié le concept de filtres passe-bas, vous pouvez consulter l'article sur le filtre passe-bas actif ou le filtre passe-bas passif si vous souhaitez en savoir plus sur le sujet.
Conception de PCB pour le circuit de commande d'angle de phase CA
Le circuit imprimé de notre circuit de contrôle d'angle de phase est conçu dans une carte unilatérale. J'ai utilisé Eagle pour concevoir mon PCB mais vous pouvez utiliser n'importe quel logiciel de conception de votre choix. L'image 2D de la conception de ma carte est présentée ci-dessous.
Un remplissage de sol suffisant est utilisé pour établir des connexions de terre appropriées entre tous les composants. L'entrée 12V DC et l'entrée 220 Volt AC sont peuplées sur le côté gauche, la sortie est située sur le côté droit du PCB. Le fichier de conception complet pour Eagle avec le Gerber peut être téléchargé à partir du lien ci-dessous.
- Téléchargez les fichiers PCB Design, GERBER et PDF pour le circuit de commande d'angle de phase AC
PCB à la main:
Pour plus de commodité, j'ai fait ma version artisanale du PCB et c'est illustré ci-dessous.
Code Arduino pour le contrôle d'angle de phase AC
Un simple code de génération PWM est utilisé pour faire fonctionner le circuit, le code et son explication sont donnés ci-dessous. Vous pouvez également trouver le code complet au bas de cette page. Tout d'abord, nous déclarons toutes les variables nécessaires, const int analogInPin = A0; // Broche d'entrée analogique à laquelle le potentiomètre est attaché à const int analogOutPin = 9; // Broche de sortie analogique à laquelle la LED est attachée à int sensorValue = 0; // valeur lue depuis le pot int outputValue = 0; // sortie de valeur vers le PWM (sortie analogique)
Les variables doivent déclarer la broche analogique, la broche analogOut et les autres variables doivent stocker, convertir et imprimer la valeur mappée. Ensuite, dans la section setup () , nous initialisons l'UART avec 9600 bauds afin de pouvoir surveiller la sortie et c'est ainsi que nous pouvons découvrir quelle plage PWM a pu contrôler totalement la sortie du circuit.
void setup () {// initialise les communications série à 9600 bps: Serial.begin (9600); }
Ensuite, dans la section loop () , nous lisons la broche analogique A0 et stockons la valeur dans la variable de valeur du capteur, puis nous mappons la valeur du capteur sur 0-255 car le minuteur PWM de l'atmega n'est que de 8 bits, ensuite nous réglez le signal PWM avec une fonction analogWrite () de l'Arduino. et enfin, nous imprimons les valeurs dans la fenêtre du moniteur série pour connaître la portée du signal de commande, si vous suivez ce tutoriel, la vidéo à la fin vous donnera une idée plus claire du sujet.
sensorValue = analogRead (analogInPin); // lire l'analogique en valeur: outputValue = map (sensorValue, 0, 1023, 0, 255); // mappez-le à la plage de la sortie analogique: analogWrite (analogOutPin, outputValue); // change la valeur de la sortie analogique: Serial.print ("sensor ="); // imprime les résultats sur le moniteur série: Serial.print (sensorValue); Serial.print ("\ t output ="); Serial.println (outputValue);
Test du circuit de commande d'angle de phase CA
L'image ci-dessus montre la configuration de test du circuit. L'alimentation 12V est fournie par un circuit SMPS 12V, la charge est une ampoule dans notre cas, elle peut être facilement remplacée \ par une charge inductive comme un ventilateur. Aussi comme vous pouvez voir que j'ai attaché un potentiomètre afin de contrôler la luminosité de la lampe mais il peut être remplacé par n'importe quelle autre forme de contrôleur, si vous zoomez sur l'image, vous pouvez voir que le pot est connecté au La broche A0 de l'Arduino et le signal PWM proviennent de la broche 9 de l'Arduino.
Comme vous pouvez le voir sur l'image ci-dessus, la valeur de sortie est de 84 et la luminosité de l'ampoule à incandescence est très faible,
Sur cette image, vous pouvez voir que la valeur est de 82 et que la luminosité de l'ampoule à incandescence augmente.
Après de nombreuses tentatives infructueuses, j'ai pu trouver un circuit qui fonctionne correctement. Vous êtes-vous déjà demandé à quoi ressemble un banc de test lorsqu'un circuit ne fonctionne pas? Laissez-moi vous dire que ça a l'air très mauvais
C'est un circuit précédemment conçu sur lequel je travaillais. J'ai dû le jeter complètement et en faire un nouveau car le précédent ne fonctionnait pas un peu.
Autres améliorations
Pour cette démonstration, le circuit est fait sur un PCB fait à la main mais le circuit peut être facilement construit dans un PCB de bonne qualité, dans mes expériences, la taille du PCB est vraiment grande en raison de la taille du composant, mais dans un environnement de production, il peut être réduit en utilisant des composants SMD bon marché.Dans mes expériences, j'ai trouvé que l'utilisation d'une minuterie 7555 au lieu d'une minuterie 555 augmentait considérablement le contrôle, en outre, la stabilité du circuit augmentait également.