Table des matières:

Modèle de climatisation Arduino : 6 étapes
Modèle de climatisation Arduino : 6 étapes

Vidéo: Modèle de climatisation Arduino : 6 étapes

Vidéo: Modèle de climatisation Arduino : 6 étapes
Vidéo: Mini projet climatiseur ER4 2024, Juillet
Anonim
Modèle de climatisation Arduino
Modèle de climatisation Arduino

Dans le cadre d'une démonstration de la capacité de notre équipe à créer un modèle de dispositif de train intelligent à des fins de marketing, l'objectif était de créer un système dans lequel un capteur de température lit les données du circuit et convertit les informations en une valeur de température qui est à la fois affiché sur un écran éclairé et axé sur si un ventilateur s'allume ou s'éteint. L'objectif est d'aider à s'adapter aux conditions de conduite des passagers à l'aide d'un système automatisé qui agit également pour afficher la température à proximité immédiate.

En utilisant un kit de microcontrôleur Arduino et les versions MATLAB 2016b et 2017b, nous avons pu démontrer ces résultats avec un succès relatif.

Étape 1: Équipement

Équipement
Équipement

Kit de microcontrôleur avec les éléments suivants:

-Planche rouge Sparkfun

-Planche à pain Sparkfun

-Tableau LCD

-Potentiomètre

-Capteur de température

-Servo

-Adaptateur USB/Arduino

-Câbles de cavalier (25, minimum)

Ordinateur portable (Windows 10) avec entrée USB

Objet imprimé en 3D (facultatif)

Étape 2: Configuration du microcontrôleur

Configuration du microcontrôleur
Configuration du microcontrôleur
Configuration du microcontrôleur
Configuration du microcontrôleur
Configuration du microcontrôleur
Configuration du microcontrôleur
Configuration du microcontrôleur
Configuration du microcontrôleur

Considérez ceci: l'ensemble du système est composé d'unités uniques qui appliquent chacune un facteur significatif vers le résultat final. Pour cette raison, il est fortement recommandé de créer une image du circuit avant de fixer les fils dans un désordre compliqué.

Des images de chaque modèle individuel peuvent être trouvées dans le manuel du kit d'outils du microcontrôleur ou sur son site Web à l'adresse

Commencez par fixer le capteur de température, le potentiomètre, les connecteurs servo et l'écran LCD sur la carte. Il est recommandé qu'en raison de la taille de l'écran LCD et du nombre de fils requis, il soit placé sur sa propre moitié de la planche à pain avec les autres pièces sur l'autre moitié et que le potentiomètre soit dans une zone où quelqu'un puisse tourner facilement son bouton.

Pour référence:

ACL: c1-16

Servomoteur: i1-3 (GND + -)

Capteur de température: i13-15 (- GND +)

Potentiomètre: g24-26 (- GND +)

Ensuite, commencez à connecter des fils de liaison à chaque broche des unités de microcontrôleur; bien qu'arbitraire dans le grand schéma général, la conception a été créée avec ces connexions importantes:

Connexion du potentiomètre à l'écran LCD: f25 -- e3

Fil GND du servo: j1 -- Entrée numérique 9

Capteur de température GND: j14 -- Entrée analogique 0

Entrées LCD: e11-e15 -- Entrée numérique 2-5

e4 -- Entrée numérique 7

e6 -- Entrée numérique 6

(Remarque: en cas de succès, les deux voyants sur le bord de l'écran LCD doivent clignoter et le potentiomètre peut aider à régler sa luminosité une fois alimenté par l'adaptateur.)

Facultatif: un objet imprimé en 3D a été utilisé dans le cadre d'une exigence. Pour éviter d'endommager les parties les plus fragiles, un boîtier étendu a été placé comme un manchon autour de l'écran LCD. Les mesures de l'écran LCD se sont avérées être d'environ 2-13/16" x 1-1/16" x 1/4", et donc seule la hauteur a été modifiée de manière significative. Si une imprimante 3D est facilement disponible, envisagez d'ajouter un objet personnel, bien qu'inutile. Sachez également que les mesures peuvent différer.

Étape 3: configuration de MATLAB

Configuration de MATLAB
Configuration de MATLAB
Configuration de MATLAB
Configuration de MATLAB

Installez une version plus mise à jour de MATLAB (2016a et versions ultérieures), disponible sur le site Web de MathWorks https://www.mathworks.com/products/matlab.html?s_tid=srchtitle. Une fois ouvert, accédez à Modules complémentaires dans l'onglet Accueil et téléchargez "MATLAB Support Package for Arduino Hardware" pour que les commandes du microcontrôleur soient accessibles.

Une fois terminé, un test peut être effectué pour trouver la connectivité du microcontrôleur à son ordinateur/portable. Après les avoir connectés avec l'adaptateur USB de la boîte à outils, insérez la commande "fopen(serial('nada'))."

Un message d'erreur apparaîtra indiquant le connecteur comme "COM #", ce qui sera nécessaire pour créer un objet arduino tant qu'il s'agit de la même entrée à tout moment.

L'écran LCD n'ayant pas de connexion directe à la bibliothèque Arduino, une nouvelle bibliothèque doit être créée afin d'afficher les messages. Une recommandation est de créer un fichier LCDAddon.m à partir de l'exemple LCD trouvé dans la fenêtre d'aide de MATLAB après avoir recherché "Arduino LCD" et l'avoir placé dans le dossier + arduinoioaddons, ou utiliser le dossier compressé joint et copier tout son contenu dans le dossier susmentionné. dossier.

En cas de succès, le code pour créer un objet Arduino dans MATLAB est comme indiqué ci-dessous.

a=arduino('com#', 'uno', 'Bibliothèques', 'ExampleLCD/LCDAddon');

Étape 4: Fonctions

Les fonctions
Les fonctions
Les fonctions
Les fonctions

Créez une fonction MATLAB. Pour les entrées, nous utilisons les variables "eff" et "T_min"; pour les sorties, bien qu'inutiles dans la conception globale, nous avons utilisé la variable « B » comme moyen de contenir les données des résultats. L'entrée "eff" permet de gérer la vitesse maximale du servo, et l'entrée "T_min" contrôle la température minimale souhaitée. La valeur "B" devrait donc produire une matrice qui contient trois colonnes pour l'heure, la température et l'efficacité du ventilateur. De plus, en prime, le code répertorié ci-dessous contient également une instruction if telle que la vitesse du ventilateur sera réduite de cinquante pour cent lorsqu'elle se rapprochera de la température minimale souhaitée.

Si toutes les entrées et les cavaliers sont placés exactement et en supposant que le port de la connexion arduino est COM4 et que le nom de la fonction est "fanread", le code suivant devrait suffire:

fonction [B] = fanread(Tmin, eff)

effacer un; clear lcd;a=arduino('com4', 'uno', 'Bibliothèques', 'ExampleLCD/LCDAddon');

t=0; t_max=15; % temps en secondes

lcd=addon(a, 'ExampleLCD/LCDAddon', {'D7', 'D6', 'D5', 'D4', 'D3', 'D2'});

initializeLCD(lcd, 'Lignes', 2, 'Colonnes', 2);

si eff>=1 || e<0

error('Le ventilateur ne s'activera que si eff est réglé entre 0 et 1.')

finir

pour t=1:10 % nombre de boucles/intervalles

clair c; % empêcher la répétition d'erreur

v=lireTension(a, 'A0');

TempC=(v-0,5)*100; % estimation pour les plages de tension 2,7-5,5 V

si TempC>Tmin si TempC

c=['Temp', num2str(TempC, 3), 'C On'];

writePMWDutyCycle(a, 'D9', eff/2); % activer le servo à mi-vitesse

vitesse=50;

autre

c=['Temp', num2str(TempC, 3), 'C On'];

writePMWDutyCycle(a, 'D9', eff); % d'activation du servo à la vitesse donnée

vitesse=100;

finir

autre

c=['Temp', num2str(TempC, 3), 'C Off'];

écrirePWMDutyCycle(a, 'D9', 0); % d'arrêt si déjà activé

vitesse=0;

finir

printLCD(lcd, c);

pause(3); % trois secondes écoulées par boucle

temps(t)=t.*3;

tempplot(t)=TempC;

act(t)=spd;

sous-intrigue(2, 1, 1)

plot(time, tempplot, 'b-o') % graphique linéaire

axe([0 33 0 40])

xlabel('Temps (secondes)')

ylabel('Température (C)')

attendez

plot([0 33], [Tmin Tmin], 'r-')

attendez

plot([0 33], [Tmin+2 Tmin+2], 'g-')

sous-intrigue(2, 1, 2)

bar(temps, acte) % graphique à barres

xlabel('Temps (secondes)')

ylabel('Efficacité (%)')

finir

B=transposer([time;tempplot;act]);

finir

Maintenant que la fonction est terminée, il est temps de tester.

Étape 5: Tester

Essai
Essai
Essai
Essai

Testez maintenant la fonction dans la fenêtre de commande en insérant "function_name(input_value_1, input_value_2)" et regardez. Assurez-vous qu'aucun objet Arduino n'existe déjà; si c'est le cas, utilisez la commande "clear a" pour le supprimer. Si des erreurs se produisent, vérifiez et voyez si des connecteurs sont au mauvais endroit ou si les mauvaises entrées numériques ou analogiques sont utilisées. On s'attend à ce que les résultats varient, bien que cela puisse être causé par le placement de certains cavaliers et du capteur de température.

Les attentes des résultats devraient produire des changements dans les performances du servo et les données sur l'écran LCD. À chaque intervalle de trois secondes, une ligne de texte doit afficher la température en degrés Celsius et si le ventilateur est actif ou non pendant qu'il fonctionne à pleine vitesse, à mi-vitesse ou à aucune vitesse. Les données ne devraient probablement pas être cohérentes, mais si vous souhaitez des résultats plus variés, placez la valeur "Tmin" près de la température moyenne produite par le circuit.

Étape 6: Conclusion

Conclusion
Conclusion

Bien qu'il s'agisse d'une tâche ardue à accomplir par essais et erreurs, les résultats finaux se sont avérés plutôt intéressants et satisfaisants. Un système en tant que tel aide à illustrer combien de machines compliquées, ou même certaines de leurs pièces, peuvent être considérées comme un ensemble de pièces indépendantes placées ensemble pour atteindre un objectif spécifique.

En raison de la conception plutôt simpliste du projet final, ceux qui ont intérêt à améliorer ses performances peuvent apporter des ajustements et des modifications au produit final qui peuvent rendre le projet meilleur et plus élaboré. Cependant, cela révèle des faiblesses dans le circuit telles que l'activation du servo entraînant des fluctuations sporadiques dans la lecture de la tension du circuit, ce qui peut amener le système à ne jamais produire des résultats identiques. En outre, il y a eu des problèmes avec un changement de vitesse d'asservissement lorsque "eff" est défini sur 0,4 et plus. Si un capteur de température et d'humidité avait été utilisé, le modèle final serait plus compliqué mais présenterait des valeurs plus cohérentes. Néanmoins, c'est une expérience qui montre qu'une machine complexe peut fonctionner comme une combinaison de ses pièces simples.

Conseillé: