Table des matières:

Minuterie programmable à 8 canaux : 13 étapes
Minuterie programmable à 8 canaux : 13 étapes

Vidéo: Minuterie programmable à 8 canaux : 13 étapes

Vidéo: Minuterie programmable à 8 canaux : 13 étapes
Vidéo: COMMENT UTILISER UN PROGRAMMATEUR ÉLECTRIQUE 2024, Juillet
Anonim
Minuterie programmable à 8 canaux
Minuterie programmable à 8 canaux
Minuterie programmable à 8 canaux
Minuterie programmable à 8 canaux
Minuterie programmable à 8 canaux
Minuterie programmable à 8 canaux

introduction

J'utilise la gamme de microcontrôleurs PIC de Microchip pour mes projets depuis 1993 et j'ai effectué toute ma programmation en langage assembleur, à l'aide de l'IDE Microchip MPLab. Mes projets allaient des simples feux de circulation et LED clignotantes aux interfaces de joystick USB pour les modèles R/C et aux analyseurs d'appareillage utilisés dans l'industrie. Le développement a pris plusieurs jours, et parfois des milliers de lignes de code assembleur.

Après avoir reçu Matrix Multimedia Flowcode 4 Professional, j'étais assez sceptique quant au logiciel. Cela semblait trop facile à croire. J'ai décidé de l'essayer et j'ai testé toutes les différentes macros de composants, toutes avec un grand succès. La meilleure partie de l'utilisation de Flowcode était que des projets simples pouvaient être codés en une seule nuit. Après avoir joué avec l'I²C et une horloge temps réel DS1307, j'ai décidé de concevoir la minuterie 8 canaux en utilisant Flowcode. N'étant pas un petit projet facile, je pensais que ce serait un excellent projet pour m'apprendre Flowcode.

Sélection d'un microprocesseur et d'autres composants

En raison du nombre de broches d'E/S requises, il était clair qu'un périphérique à 40 broches serait nécessaire. Le PIC 18F4520 a été choisi, principalement pour sa mémoire programme de 32K et ses 1536 octets de mémoire de données. Tous les composants utilisés sont des dispositifs à trous traversants standard, permettant de construire le circuit sur la carte Vero si nécessaire. Cela a également aidé au développement sur une maquette.

Étape 1: Objectifs du projet

Objectifs du projet
Objectifs du projet

Objectifs

- Chronométrage précis, avec batterie de secours.

- Tous les programmes et données doivent être conservés, même après une coupure de courant.

- Interface utilisateur simple.

- Flexibilité de programmation.

Chronométrage

Vivant dans une zone sujette aux pannes de courant, le 50/60 Hz standard des lignes électriques ne sera pas suffisant pour un chronométrage précis. Une horloge temps réel était indispensable, et après avoir testé plusieurs puces RTC, j'ai opté pour le DS1307 en raison de sa configuration simple d'oscillateur et de batterie de secours. Un chronométrage assez précis a été obtenu en utilisant uniquement un cristal de 32,768 kHz connecté au DS1307. La précision était de moins de 2 secondes sur une période d'essai de 2 mois en utilisant 4 marques différentes de cristaux.

La conservation des données

Toutes les données du programme de minuterie doivent être conservées, même en cas de panne de courant. Avec jusqu'à 100 programmes différents et diverses données de configuration, il est devenu clair que les 256 octets d'EEPROM embarquée du PIC ne seront pas assez volumineux. Une EEPROM 24LC256 I²C est utilisée pour stocker toutes les informations de programmation.

Interface utilisateur simple

L'interface utilisateur se compose de seulement 2 éléments, d'un écran LCD 16 x 4 lignes avec rétroéclairage LED et d'un clavier 4 x 3. Toute la programmation peut être effectuée en appuyant sur quelques boutons seulement. Les ajouts à l'interface sont un buzzer piézo audible et un rétroéclairage LCD visuel clignotant.

Étape 2: Flexibilité de programmation

Flexibilité de programmation
Flexibilité de programmation

Pour assurer une flexibilité de programme suffisante, la minuterie dispose de 100 programmes qui peuvent être réglés individuellement. Pour chaque programme, l'heure d'activation, l'heure d'arrêt, les canaux de sortie et le jour de la semaine peuvent être définis. Chaque programme a trois modes:

- Auto: l'heure d'activation, l'heure d'arrêt, le canal de sortie et le jour de la semaine sont définis.

- Off: Le programme individuel peut être désactivé, sans supprimer les réglages. Pour réactiver le programme, sélectionnez simplement un autre mode.

- Jour/Nuit: l'heure d'activation, l'heure d'arrêt, le canal de sortie et le jour de la semaine sont définis. Fonctionne de la même manière que le mode Auto, mais

n'activez les sorties qu'entre les heures d'activation et de désactivation lorsqu'il fait sombre. Cela permet un contrôle complet jour/nuit, ainsi

comme la flexibilité supplémentaire pour allumer les lumières au coucher du soleil et les éteindre au lever du soleil.

Exemple 1: Allumera la lumière après 20h00 et éteindra la lumière au lever du soleil.:

Le: 20:00, Off:12:00, Exemple 2: Allumera la lumière au coucher du soleil et éteindra la lumière à 23h00.

Le: 12:00

Éteint: 23h00

Exemple 3: Allumera la lumière au coucher du soleil et éteindra la lumière au lever du soleil.

Le: 12:01

Désactivé: 12h00

Options supplémentaires disponibles, toutes fonctionnant indépendamment des 100 programmes On/Off.

Canaux de programme actifs: Au lieu de désactiver plusieurs programmes, les canaux de sortie individuels peuvent être désactivés sans qu'il soit nécessaire de modifier les programmes.

Entrées auxiliaires: Deux entrées numériques sont disponibles, pour permettre à certains canaux de sortie d'être activés pendant une durée spécifique. Il peut par exemple être utilisé pour allumer certaines lumières lorsque vous arrivez à la maison tard dans la nuit, lorsqu'un bouton d'une télécommande est enfoncé, ou pour allumer une série de lumières différente lorsque l'alarme de la maison est déclenchée.

Sorties auxiliaires: Deux sorties supplémentaires (en dehors des 8 canaux de sortie) sont disponibles. Ils peuvent être programmés pour s'allumer avec certains canaux de sortie ou avec les entrées numériques. Dans mon installation, j'ai des sorties 6-8 contrôlant mon arrosage, qui fonctionne en 24V. J'utilise les canaux 6-8 pour activer l'une des sorties auxiliaires, pour allumer une alimentation 24V pour le système d'irrigation.

Manual On: Dans l'écran principal, les boutons 1 à 8 peuvent être utilisés pour activer ou désactiver manuellement les canaux.

Étape 3: Matériel

Matériel
Matériel

Alimentation: L'alimentation se compose d'un redresseur, d'un condensateur de lissage et d'un fusible de 1 A pour la protection contre les surcharges. Cette alimentation est ensuite régulée par un régulateur 7812 et 7805. L'alimentation 12V est utilisée pour piloter les relais de sortie, et tous les autres circuits sont alimentés par l'alimentation 5V. Comme le régulateur 7805 est connecté à la sortie du régulateur 7812, le courant total doit être limité à 1 A via le régulateur 7812. Il est conseillé de monter ces régulateurs sur un dissipateur thermique adapté.

Bus I²C: Bien que Flowcode permette un contrôle I²C matériel, j'ai décidé d'utiliser la configuration I²C logicielle. Cela permet plus de flexibilité dans l'affectation des broches. Bien que plus lent (50 kHz), il fonctionne toujours très bien par rapport au bus I²C matériel. DS1307 et 24LC256 sont connectés à ce bus I²C.

Horloge temps réel (DS1307): lors du démarrage, les registres RTC 0 et 7 sont lus pour déterminer s'ils contiennent des données d'heure et de configuration valides. Une fois la configuration correcte, l'heure RTC est lue et l'heure chargée dans le PIC. C'est la seule fois que l'heure est lue à partir du RTC. Après le démarrage, une impulsion de 1 Hz sera présente sur la broche 7 du RTC. Ce signal 1 Hz est connecté à RB0/INT0, et via une routine de service d'interruption, l'heure PIC est mise à jour toutes les secondes.

EEPROM externe: Toutes les données et options du programme sont stockées sur l'EEPROM externe. Les données EEPROM sont chargées au démarrage et une copie des données est stockée dans la mémoire PIC. Les données EEPROM ne sont mises à jour que lorsque les paramètres du programme sont modifiés.

Capteur jour/nuit: Une résistance standard dépendante de la lumière (LDR) est utilisée comme capteur jour/nuit. Comme les LDR se présentent sous de nombreuses formes et variétés, toutes avec des valeurs de résistance différentes dans les mêmes conditions d'éclairage, j'ai utilisé un canal d'entrée analogique pour lire le niveau d'éclairage. Les niveaux Jour et Nuit sont réglables et permettent une certaine flexibilité pour différents capteurs. Pour configurer une certaine hystérésis, des valeurs individuelles pour le jour et la nuit peuvent être définies. L'état ne changera que si le niveau d'éclairage est inférieur aux points de consigne de jour, ou au-dessus des points de consigne de nuit, pendant plus de 60 secondes.

Écran LCD: un écran à 4 lignes et 16 caractères est utilisé, car toutes les données ne peuvent pas être affichées sur un écran à 2 lignes. Le projet comprend des caractères personnalisés, définis dans la macro LCD_Custom_Char.

Entrées auxiliaires: les deux entrées sont tamponnées avec un transistor NPN. +12v et 0V sont également disponibles sur le connecteur, permettant des connexions plus flexibles aux connexions externes. A titre d'exemple, un récepteur de télécommande peut être connecté à l'alimentation.

Sorties: Toutes les sorties sont isolées électriquement du circuit au moyen d'un relais 12V. Les relais utilisés sont calibrés pour 250V AC, à 10 ampères. Les contacts normalement ouverts et normalement fermés sont amenés aux bornes.

Clavier: Le clavier utilisé est un clavier matriciel 3 x 4, et est connecté au PORTB:2..7.

Étape 4: interruptions du clavier

Interruptions du clavier
Interruptions du clavier
Interruptions du clavier
Interruptions du clavier
Interruptions du clavier
Interruptions du clavier

Je voulais utiliser l'interruption PORTB sur l'interruption de changement sur n'importe quelle touche. Pour cela, une interruption personnalisée a dû être créée dans Flowcode, pour s'assurer que la direction et les données du PORTB sont correctement configurées avant et après chaque interruption du clavier. Une interruption est générée chaque fois qu'un bouton est enfoncé ou relâché. La routine d'interruption ne répond que lorsqu'une touche est enfoncée.

INTERRUPTION PERSONNALISÉE

Activer le code

portb = 0b00001110;trisb = 0b11110001;

intcon. RBIE = 1;

intcon2. RBIP = 1;

intcon2. RBPU = 1;

rcon. IPEN = 0;

Code du gestionnaire

si (intcon & (1 << RBIF))

{ FCM_%n();

portb = 0b00001110;

trisb = 0b11110001;

wreg= portb;

clear_bit(intcon, RBIF);

}

Problèmes trouvés

Lors d'une interruption, la routine de service d'interruption ne doit, dans AUCUNE condition, appeler toute autre macro qui pourrait être utilisée quelque part dans le reste du programme. Cela entraînera éventuellement des problèmes de débordement de pile, car l'interruption peut se produire en même temps que le programme principal se trouve également dans le même sous-programme. Ceci est également identifié comme une ERREUR GRAVE par Flowcode lorsque le code est compilé.

Dans le code personnalisé du clavier sous GetKeyPadNumber, il y a un tel appel à la macro Delay_us, ce qui provoquera un débordement de pile. Pour surmonter cela, j'ai supprimé la commande Delay_us (10) et l'ai remplacée par 25 lignes de « wreg = porta; » commandes. Cette commande lit PORTA et place sa valeur dans le registre W, juste pour obtenir un certain délai. Cette commande sera compilée en une seule instruction similaire à l'assembleur movf porta, 0. Pour l'horloge 10MHz utilisée dans le projet, chaque instruction sera de 400ns, et pour obtenir un délai de 10us, j'avais besoin de 25 de ces instructions.

Notez sur la deuxième ligne de la figure 3: GetKeypadNumber Custom Code, que la commande delay_us(10) d'origine a été désactivée avec « // ». En dessous, j'ai ajouté mon 25 "wreg = porta;" commandes pour obtenir un nouveau délai de 10us. En l'absence d'appels à des macros dans le code personnalisé Keypad_ReadKeypadNumber, la macro Keypad peut désormais être utilisée dans une routine de service d'interruption.

Il convient de noter que les composants Flowcode Keypad et eBlocks n'utilisent pas les résistances pull-up standard sur les lignes d'entrée. Au lieu de cela, il utilise des résistances pull-down de 100K. En raison de certaines interférences trouvées sur le clavier pendant le développement, les résistances 100K ont toutes été remplacées par 10K et toutes les résistances 10K remplacées par 1K5. Le clavier a été testé pour fonctionner correctement avec des fils de 200 mm.

Étape 5: Utilisation de la minuterie

Utilisation de la minuterie
Utilisation de la minuterie
Utilisation de la minuterie
Utilisation de la minuterie
Utilisation de la minuterie
Utilisation de la minuterie

Tous les écrans sont configurés pour indiquer toutes les informations requises pour que l'utilisateur puisse apporter des modifications rapides aux paramètres. La ligne 4 est utilisée pour faciliter la navigation dans les menus et les options du programme. Au total, 22 écrans sont disponibles en fonctionnement normal.

LIGNE 1: Heure et statut

Affiche le jour et l'heure actuels, suivis des icônes d'état:

A – Indique que l'entrée Aux A a été déclenchée et que la minuterie de l'entrée Aux A est en cours d'exécution.

B – Indique que l'entrée Aux B a été déclenchée et que la minuterie de l'entrée Aux B est en cours d'exécution.

C – Indique que la sortie Aux C est activée.

D – Indique que la sortie Aux D est activée.

} – État du capteur Jour/Nuit. S'il est présent, indique qu'il fait nuit.

LIGNE 2: Sorties du programme

Affiche les chaînes qui ont été activées par les différents programmes. Les canaux sont affichés dans leurs numéros de sortie et un « - » indique que la sortie spécifique n'est pas activée. Les canaux qui ont été désactivés dans « Sorties de programme actives » seront toujours indiqués ici, mais les sorties réelles ne seront pas définies.

LIGNE 3: Sorties réelles

Affiche les canaux activés par les différents programmes, les entrées Aux A et B ou les sorties manuelles définies par l'utilisateur. Appuyez sur 0 pour désactiver toutes les sorties activées manuellement et réinitialiser les minuteries des sorties auxiliaires A et B.

LIGNE 4: Menu et options des touches (sur tous les menus)

Indique la fonction des touches "*" et "#".

La partie centrale indique quelles touches numériques (0-9) sont actives pour l'écran sélectionné.

L'état d'entrée des entrées Aux A et B est également affiché au moyen d'une icône de commutateur Ouvert ou Fermé.

Les sorties peuvent être activées/désactivées manuellement en appuyant sur la touche correspondante du clavier.

Tout au long des menus, les touches Star et Hash sont utilisées pour naviguer dans les différentes options du programme. Les touches 0-9 sont utilisées pour définir les options. Lorsque plusieurs options sont disponibles sur un seul écran ou menu de programmation, la touche Dièse est utilisée pour parcourir les différentes options. L'option actuellement sélectionnée sera toujours indiquée par le caractère « > » sur la gauche de l'écran.

0-9 Entrer les valeurs de temps

1-8 Changer la sélection de canal

14 36 Programmes pas à pas, 1 pas en arrière, 4 pas en arrière 10 programmes, 3 pas en avant, 6 pas en avant 10

programmes

1-7 Réglez les jours de la semaine. 1=dimanche, 2=lundi, 3=mardi, 4=mercredi, 5=jeudi, 6=vendredi, 7=samedi

0 Dans l'écran principal, effacez toutes les dérogations manuelles et les minuteries d'entrée A et d'entrée B. Dans d'autres menus, les modifications

options sélectionnées

# Dans l'écran principal, désactivera toutes les dérogations manuelles, les minuteries d'entrée A et d'entrée B et les sorties de programme, jusqu'à ce que

le prochain événement.

* et 1 Redémarrez la minuterie

* et 2 Effacez tous les programmes et options, restaurez les paramètres par défaut.

* et 3 Mettre la minuterie en veille. Pour réactiver la minuterie, appuyez sur n'importe quelle touche.

Lors d'entrées incorrectes de n'importe quelle valeur temporelle, le rétroéclairage LCD clignote 5 fois pour indiquer une erreur. Dans le même temps, le buzzer retentira. Les commandes Quitter et Suivant ne fonctionneront que si l'entrée actuelle est correcte.

LCD rétro-éclairage

Au démarrage initial, le rétroéclairage LCD s'allumera pendant 3 minutes, sauf si:

- Il y a une panne matérielle (EEPROM ou RTC introuvable)

- Heure non réglée dans le RTC

Le rétroéclairage LCD s'allumera à nouveau pendant 3 minutes sur n'importe quelle entrée utilisateur sur le clavier. Si le rétroéclairage de l'écran LCD est éteint, toute commande du clavier allumera d'abord le rétroéclairage de l'écran LCD et ignorera la touche qui a été enfoncée. Cela garantit que l'utilisateur pourra lire l'écran LCD avant d'utiliser le clavier. Le rétroéclairage LCD s'allumera également pendant 5 secondes si l'entrée Aux A ou l'entrée Aux B est activée.

Étape 6: Captures d'écran du menu

Captures d'écran du menu
Captures d'écran du menu
Captures d'écran du menu
Captures d'écran du menu
Captures d'écran du menu
Captures d'écran du menu

À l'aide du clavier, chacune des options peut être programmée facilement. Les images donnent des informations sur ce que fait chaque écran.

Étape 7: Conception du système

Conception du système
Conception du système

Tout le développement et les tests ont été effectués sur une maquette. En regardant toutes les sections du système, j'ai décomposé le système en trois modules. Cette décision était principalement due aux limitations de la taille du PCB (80 x 100 mm) de la version gratuite d'Eagle.

Module 1 - Alimentation

Module 2 - Carte CPU

Module 3 - Carte relais

J'ai décidé que tous les composants devaient être facilement accessibles et que je ne voulais pas utiliser de composants à montage en surface.

Passons en revue chacun d'eux.

Étape 8: Alimentation

Source de courant
Source de courant
Source de courant
Source de courant
Source de courant
Source de courant
Source de courant
Source de courant

L'alimentation est simple et alimente les cartes CPU et relais en 12V et 5V.

J'ai monté les régulateurs de tension sur des dissipateurs thermiques décents et j'ai également utilisé des condensateurs surévalués pour l'alimentation.

Étape 9: Carte CPU

Carte CPU
Carte CPU
Carte CPU
Carte CPU
Carte CPU
Carte CPU
Carte CPU
Carte CPU

Tous les composants, à l'exception de l'écran LCD, du clavier et des relais, sont montés sur la carte CPU.

Des borniers ont été ajoutés pour simplifier les connexions entre l'alimentation, les deux entrées numériques et le capteur de lumière.

Les broches/prises d'en-tête permettent des connexions faciles à l'écran LCD et au clavier.

Pour les sorties vers les relais, j'ai utilisé l'ULN2803. Il contient déjà toutes les résistances de pilotage et diodes flyback requises. Cela a permis de garantir que la carte CPU peut toujours être fabriquée à l'aide de la version gratuite d'Eagle. Les relais sont connectés aux deux ULN2803. L'ULN2803 du bas est utilisé pour les 8 sorties, et l'ULN2803 du haut pour les deux sorties auxiliaires. Chaque sortie auxiliaire a quatre transistors. Les connexions aux relais se font également via des broches/prises d'en-tête.

Le PIC 18F4520 était équipé d'une prise de programmation, afin de permettre une programmation aisée via le programmateur PicKit 3.

REMARQUE:

Vous remarquerez que la carte contient un CI supplémentaire à 8 broches. Le circuit intégré supérieur est un PIC 12F675 et connecté à une entrée numérique. Cela a été ajouté lors de la conception du PCB. Cela facilite le prétraitement de l'entrée numérique. Dans mon application, l'une des entrées numériques est connectée à mon système d'alarme. Si l'alarme sonne, certaines lumières sont allumées dans ma maison. L'armement et le désarmement de mon système d'alarme émettent différents bips sur la sirène. En utilisant le PIC 12F675, je peux maintenant distinguer entre armer/désarmer et une vraie alarme. Le 12F675 est également équipé d'une prise de programmation.

J'ai également prévu un port I2C via une broche/prise d'en-tête. Cela sera utile plus tard avec les cartes relais.

La carte contient quelques cavaliers, qui doivent être soudés avant d'installer les sockets IC.

Étape 10: Conclusion du code de flux

Conclusion du code de flux
Conclusion du code de flux
Conclusion du code de flux
Conclusion du code de flux
Conclusion du code de flux
Conclusion du code de flux

Comme j'ai l'habitude de travailler au niveau des registres en assembleur, il était parfois difficile et frustrant d'utiliser les macros des composants. Cela était principalement dû à mon manque de connaissance de la structure de programmation de Flowcode. Les seuls endroits où j'ai utilisé les blocs C ou ASM étaient d'activer les sorties dans une routine d'interruption et dans la routine Do_KeyPressed pour désactiver/activer l'interruption du clavier. Le PIC est également placé dans SLEEP à l'aide d'un bloc ASM, lorsque l'EEPROM ou le RTC n'est pas trouvé.

L'aide concernant l'utilisation des différentes commandes I²C a toutes été obtenue à partir des fichiers d'aide de Flowcode. Il est nécessaire de savoir exactement comment fonctionnent les différents appareils I²C, avant que les commandes puissent être utilisées avec succès. La conception d'un circuit nécessite que le concepteur dispose de toutes les fiches techniques pertinentes. Ce n'est pas un défaut de Flowcode.

Flowcode a vraiment résisté au test et est fortement recommandé pour les personnes souhaitant commencer à travailler avec la gamme de microprocesseurs Microchip.

La programmation et la configuration du Flowcode pour le PIC ont été définies selon les images

Étape 11: Carte relais I2C en option

Carte relais I2C en option
Carte relais I2C en option
Carte relais I2C en option
Carte relais I2C en option
Carte relais I2C en option
Carte relais I2C en option

La carte CPU a déjà des connexions d'en-tête pour 16 relais. Ces sorties sont des transistors à collecteur ouvert via les deux puces ULN2803. Celles-ci peuvent être utilisées pour alimenter directement les relais.

Après les premiers tests du système, je n'ai pas aimé tous les fils entre la CM et les relais. Comme j'ai inclus un port I2C sur la carte CPU, j'ai décidé de concevoir la carte relais pour se connecter au port I2C. À l'aide d'une puce d'extension de port d'E/S MCP23017 à 16 canaux et d'un réseau de transistors ULN2803, j'ai réduit les connexions entre le processeur et les relais à 4 fils.

Comme je ne pouvais pas installer 16 relais sur un PCB de 80 x 100 mm, j'ai décidé de faire deux cartes. Chaque MCP23017 n'utilise que 8 de ses 16 ports. La carte 1 gère les 8 sorties et la carte 2 les deux sorties auxiliaires. La seule différence sur les tableaux est l'adresse de chaque tableau. Ceci est facilement réglé avec un mini cavalier. Chaque carte a des connecteurs pour fournir l'alimentation et les données I2C à l'autre carte.

REMARQUE:

Si nécessaire, le logiciel prévoit une seule carte pouvant utiliser les 16 ports. Toutes les données de relais de sortie sont disponibles sur la première carte.

Comme le circuit est optionnel et très simple, je n'ai pas créé de schéma. S'il y a assez de demande, je peux l'ajouter plus tard.

Étape 12: Lien RF en option

Lien RF en option
Lien RF en option
Lien RF en option
Lien RF en option
Lien RF en option
Lien RF en option

Une fois le projet terminé, je me suis vite rendu compte que je devais tirer beaucoup de câbles 220 V CA sur la minuterie. J'ai développé une liaison RF utilisant des modules standards à 315MHz qui permettaient de placer la minuterie à l'intérieur d'un placard, et les cartes relais à l'intérieur du toit, à proximité de tout le câblage 220V.

Le lien utilise un AtMega328P cadencé à 16MHz. Le logiciel pour l'émetteur et le récepteur est le même, et le mode est sélectionné par un mini cavalier.

Émetteur

L'émetteur est simplement branché sur le port CPU I2C. Aucune configuration supplémentaire n'est requise, car l'AtMega328P écoute les mêmes données que les cartes relais I2C.

Les données sont mises à jour une fois par seconde sur le port I2C et l'émetteur envoie ces informations sur la liaison RF. Si l'émetteur ne reçoit pas de données I2C pendant environ 30 secondes, l'émetteur transmettra en continu les données pour désactiver tous les relais vers le récepteur.

L'alimentation du module émetteur peut être sélectionnée entre 12V et 5V avec un mini cavalier sur la carte PC. J'alimente mon émetteur en 12V.

Destinataire

Le récepteur écoute les données codées de l'émetteur et place les données sur un port I2C. La carte relais se branche simplement sur ce port et fonctionne de la même manière qu'elle était branchée sur la carte CPU.

Si le récepteur ne reçoit pas de données valides pendant 30 secondes, le récepteur enverra en continu des données sur le port I2C pour désactiver tous les relais sur les cartes relais.

Schémas

Un jour, s'il y a une demande. L'esquisse Arduino contient toutes les informations nécessaires pour construire le circuit sans schéma de circuit.

Varier

Dans mon installation, l'émetteur et le récepteur sont distants d'environ 10 mètres. La minuterie est à l'intérieur d'un placard, et l'unité de relais au-dessus du plafond.

Étape 13: Produit final

Produit final
Produit final
Produit final
Produit final
Produit final
Produit final

L'unité principale a été installée dans une ancienne boîte de projet. Il contient les éléments suivants:

- Transformateur 220V/12V

- Carte d'alimentation

- Carte CPU

- Affichage LCD

- Clavier

- Émetteur de liaison RF

- Récepteur domestique supplémentaire pour me permettre d'allumer/éteindre les lumières via la télécommande

L'unité de relais se compose des éléments suivants:

- Transformateur 220V/12V

- Carte d'alimentation

- Récepteur de liaison RF

- 2 x cartes relais I2C

Toutes les planches ont été conçues avec la même dimension, ce qui permet de les empiler facilement les unes sur les autres avec des entretoises de 3 mm.

Conseillé: