Contrôle de la température de la cabane.[Résolu]

Bonjour à tous,
Je suis Caroline. le robot n'a pas voulu de mon: "i", j'ai donc mis un: "y". Et voila.
J'ai 17 ans. Je suis toulousaine ( le pays où on coupe la saucisse en 44 000 rondelles pour en faire de la musique.)
Je ne suis pas novice en électronique (niveau ???), ni en informatique: Basic + Python; mais pas en "C" ...Snif !
Et donc, j'utilise: "ArduBlock".
La question est: Mon projet est-il réalisable ?
Il s'agirait de:
T1: Tester une sonde de Th° --> Stocker dans une variable: V1
Temporiser: 5 mn.
Tester la sonde Th° --> Stocker dans: V2
Tempo: 5 mn.
Tester Th° --> Stocker V3 --> Comparer V1 / V3 --> Agir si....
Tempo: 5 mn.
Tester Th° --> Stocker V4 --> Comparer V2 / V4 --> Agir si....
Tempo: 5 mn.
Retour à T1.
J'ai la "Duemilove" Atmega 328, ArduBlock (inside), des kilos de composants bien rangés (CTN's et LM35's entre autres), et un fer à souder qui n'attends que vos bons conseils.
Si un "mordu" de "C" me pondait un code "qui va bien", mon ArduBlock" n'y verrait pas outrage, et il serait payé de milles bisous baveux.
Merci d'avance.
PS: Je n'ai pas trop pigé comment fonctionne le forum, quand je vais dans la rubrique " présentation", il n'y a pas le bouton "New Topic" ?!?
Je n'ai aucune idée de l'endroit où va atterrir ce message tant que je ne l'aurai pas envoyé.
Et donc......Je......pOst !!...

La section générale eut été bien. Le topic Présentation est commun à tout le monde.

Bonjour et bienvenue. Vu ton âge et deux trois infos lues dans ton post, j'aurais tendance à te demander s'il s'agit d'un TPE...

Quoiqu'il en soit, je te propose de fouiller un peu dans les fonctions arduino (http://arduino.cc/en/Reference/HomePage), et de regarder les exemples "basics/blink" et "analog/analogInput". avec ces deux exemples, tu trouveras tout ton bonheur. Tu n'as pas besoin de grosses bases en C pour ce que tu veux faire.

Il semble qu'ardublock n'ait même pas besoin de C, juste d'une souris...

Donc je ne serai pas couvert de bisous baveux, je t'encourage juste à trouver ton code par toi même, on apprend bien plus comme ça! (et puis le C est le langage le plus... répandu).

bon courage!

PS : googl est le meilleur ami du développeur, une recherche genre "arduino LM35" et les 3/4 de ton truc est fini.

Salut Super_Cinci, et merci pour le lien.
Ce n'est pas un tpe, c'est pour protéger les batteries PV que mon père va laisser cet hiver dans une petite cabane.
Comme il m'a dit qu'il ne fallait pas lésiner sur le haut-parleur (il dort bien.)
Je vais lui mettre un klaxon (vu la taille, ça doit être un de camion) avec un relais Lol. J'ai trouvé une grosse boite plexo qui va être impec pour bourrer des CdNi et tout le bazar.
J'espère qu'avec du 2.5 pour aller jusqu'à la sonde , ça va le faire. Y'a moins de 10 m.
J'en suis morte de rire à l'avance. Pourvu qu'il gèle !!
J'ai eu peu regardé ; finalement, ça n'a pas l'air si compliqué ce "C"
Enfin....hum...Pour faire marcher une Arduino...
J'espère qu'on peut faire des boucles imbriquées ? La doc est plutôt sommaire.

PS: Ben ouais, les nouveaux, ils postent n'importe où...Que fait la police ?!! .......à+.

un conseil, au lieu de prendre une mesure toutes les 5 minutes, prends-en une toutes les 4687ms, que tu additionnes (ça en fait 64 sur 5 minutes), ça te donnera une mesure sur 16 bits qui sera la moyenne des 64 mesures... c'est pas dur à faire et c'est bien plus précis (si tu choppes un parasite sur une mesure, ça risque de faire pouet pour rien, alors qu'en faisant une moyenne, ça épongera un peu).

le 2.5, c'est pas nécessaire : il n'y a pas de courant. une simple paire blindée genre telecom fera parfaitement l'affaire.

qu'appelle-tu boucle imbriquée? un while dans un for? du moment que tu penses à sortir de temps en temps de tes boucles, je ne vois pas le problème...

Carolyne:
Bonjour à tous,
Je suis Caroline. le robot n'a pas voulu de mon: "i", j'ai donc mis un: "y". Et voila.
J'ai 17 ans. Je suis toulousaine ( le pays où on coupe la saucisse en 44 000 rondelles pour en faire de la musique.)
...
Et donc......Je......pOst !!...

[HUM]
:grin: :grin:
Tres jolie présentation miss , mais il t'en manque un centaine 8)

[Serieux]

Je lis plus sérieusement demain 8)

Artouste:
mais il t'en manque un centaine 8)

Je voulais en parler aussi, mais j'ai oublié... Tout le monde sait que la musique toulousaine n'est pas comme les autres...

Je déplace dans la partie générale du forum, édite ton titre par rapport au sujet.

Si tu regarde bien le pseudo-code de mon premier post, je prends une mesure, 3 ou 5 mn après j'en prends une autre ; et je compare les deux.
Si "mesur2" < "mesur1" et "mesur1" > "mesur2" (avec ArduBlock" y'a que le double test de dispo; c'est: "Et" ou "Ou")
Bon, alors j'envoie 255 sur une sortie, et avec un transistor j'alimente le relais qui balance le 24 V des CdNi dans le klaxon; et......
Je me barre en courant !
Je pense que 255 ça doit être le +5V...Non ? puisque le 0 c'est 0V.
Mince ! je sais plus pourquoi je fais 2 prises de mesures qui se chevauchent en décalé !
ça me paraissait pourtant évident. Il faut que j'y re- refléchiiiisse (je fais souvent des trucs inutiles; surtout en prog.)
Si quelqu'un a une explication...
Pour le blindé, j'en ai, mais le blindage ??? c'est du papier de chocolat (espèce d'alu bleuté), avec un fil de fer.
La question: Qu'est que je fais du fil de fer ? si je le branche sur la "ground" de la carte j'ai peur qu'avec la ligne électrique qui n'est pas loin ça fasse "antenne" et que ça envoie du mauvais jus sur la carte.
je mets le code qu'a généré l'AruBlock;y'a des trucs que je pige pas:
Quézaquo que ces: "ABVAR" ? qu'il y a un peu partout ?. Y'a un Th12 qui sort de nulle part.

int _ABVAR_1_Th1;

int _ABVAR_5_Th12;
int _ABVAR_4_Th4;
int _ABVAR_3_Th3;
int _ABVAR_2_Th2;

void setup()
{
_ABVAR_2_Th2 = 0;
_ABVAR_4_Th4 = 0;
_ABVAR_5_Th12 = 0;
_ABVAR_1_Th1 = 0;
pinMode( 13 , OUTPUT);
_ABVAR_3_Th3 = 0;
}

void loop()
{
_ABVAR_1_Th1 = analogRead(A1) ;
delay( 60000 );
delay( 60000 );
delay( 60000 );
_ABVAR_2_Th2 = analogRead(A1) ;
delay( 60000 );
delay( 60000 );
delay( 60000 );
_ABVAR_3_Th3 = analogRead(A1) ;
if (( ( ( _ABVAR_1_Th1 ) > ( _ABVAR_3_Th3 ) ) && ( ( _ABVAR_3_Th3 ) < ( _ABVAR_1_Th1 ) ) ))
{
analogWrite(13 , 255);
}
delay( 60000 );
delay( 60000 );
delay( 60000 );
_ABVAR_4_Th4 = analogRead(A1) ;
if (( ( ( _ABVAR_2_Th2 ) > ( _ABVAR_4_Th4 ) ) && ( ( _ABVAR_4_Th4 ) < ( _ABVAR_5_Th12 ) ) ))
{
analogWrite(13 , 255);
}
delay( 60000 );
delay( 60000 );
delay( 60000 );
}

[/quote]

PS: Les cent rondelles qui manquent ? Bah! C'est bien du travail de "barbus" ça; pouvaient pas faire un compte rond ?
Re-PS: j'ai eu la mauvaise idée de dérouler le pop-up en bas à droite.....J'ai failli m'évanouir..!
Z'avez mis le monde entier sur le même forum ?!?!?!!!!!!!!!
Y va falloir de la chance pour s'y retrouver là-dedans. Bon, je ferme...Et je la ferme.... ...à+.

Salut caro !

Alors ... Le nom _ABvar_th1 ... C'est le nom de la variable, tu peux le modifier (partout) dans le programme ça ne changera rien, sinon améliorer la lisibilité !

Petites choses, le premier test if ... Fait if (t1>t3 et t3<t1) ... C'est deux fois le même test ... If (t1>t3) suffit

Est ce que la sortie 13 est une sortie analogique, pas avec une carte UNO ou MEGA (c'est digitalWrite(13,HIGH) pour commander un transistor...)

Ensuite à chaque fois que t3 sera plus faible que t1, ça va sonner ! Même si c'est 21.0° contre 21.1° (Ou rien ne risque de geler) ...je mettrai donc une condition sur un seuil du genre : if (t1<0.0°) on sonne !

Ca veut aussi dire qu'il faut 'étalonner' ta sonde de température ... De quel type tu l'as choisie ? Car les entrées analogiques lisent des tensions ... Qu'il faut convertir en température en fonction du capteur que tu utilises et du montage électronique ...

Le programme est finalement simple ... Une seule variable pour stocker la température suffit, quand on arrive à la fin du loop, on recommence

Ce qui donne dans la boucle loop :
Lire la tension analogique : int mesure = analogRead(pin)
Convertir la tension en température : float temperature = a x mesure + b
Comparer la température à un seuil et faire l'action si la condition est vérifiée : if temperature < seuil ... Action !
Faire une pause ... Faire clignoter la Led pour faire joli ... Et montrer que le système est vivant
Ca suffit !

Bon courage !

On parlait des codes arduino qui n'étaient pas très optimisés, je vois qu'arduiblock n'est pas mieux... Le code qu'il t'a pondu est horrible (il marche, mais ...). N'essaie pas d'apprendre à programmer en C à partir de ce code, tu vas prendre de très mauvaises habitudes :wink:

Je pense que 255 ça doit être le +5V...Non ? puisque le 0 c'est 0V.

non. Comme l'a précisé B83s, dans le cas d'un simple marche arrêt, en sortie, c'est HIGH = 5V, LOW = 0V.

Pour enfoncer le clou sur les mesures, sur une carte arduino, deux mesures analogiques d'une même tension renvoient rarement la même valeur. C'est un gros défaut de conception matérielle, il faut faire avec... Du coup, la température lue sera toujours différente à chaque coup, et ça risque de biper toutes les 6 ou 9 minutes. C'est pour ça que je te propose de réfléchir à prendre plusieurs mesures et en faire la moyenne, par exemple :

uint_16t temperature;


void setup{
  pinMode(13, OUTPUT);  // pin 13 en sortie
}
(...)
// mesure de la température sur 5 minutes
temperature = 0;
for (uint_8t i=0; i<64; i++) {  // répéter 64 fois :
  temperature += analogRead(A1);  // relever la température et l'additionner
  delay(4680);  // attendre 4,68 secondes
  digitalWrite(13, !digitalRead(13));  // petit effet joli, la led 13 changera d'état toutes les 4,[i]brouettes[/i] secondes...
}
// maintenant, temperature contient la valeur de la température moyenne sur 5 minutes

après, il y a un petit calcul à faire si tu veux retrouver la valeur en degrés C, un bon exercice pour un dimanche, non?

amuse-toi bien!

J'ai édité ton titre, mais j'ai un doute, tu veux mesurer quoi, la tension de batterie ou la température ?

Salut tous,
Quelle gourde...! Je me suis aperçue de ma c........ie ce matin.
à: B83s: "C'est deux fois le même test ... If (t1>t3) suffit"
Ban oui, mais mais ce c...n d'Ardublock, c'est ça sinon rien.
Je vois bien qu'il va falloir étalonner la sonde. Je pense que je vais d'abord faire avec une CTN, j'ai vu que quelqu'un ici avait fait un barbecue avec un LM35.
à: Super_Cinci: Ah.. Ok bien reçu pour le high/low. Tu a raison pour l'ArduBlock. Je vais plutôt pomper sur tous les bouts de code que j'ai ramassé avec Google. Et sur le tien; dont je te remercie.
Dommage...C'était bien joli cette interface., mais comme il faut que je fasse un autre montage (toujours pour ces p....n de batteries) genre compteur de consommation; il vaut mieux que je me rencarde sérieusement sur le "C". Les mauvaises habitudes; c'est terrrrriiiible!
à: Jean-François: C'est bien la température qu'il me faut.
Juste un truc: J'ai cru comprendre qu'on ne pouvait pas envoyer des infos: carte-->pc en passant par l'USB . Mais qu'il fallait passer par le port"série".
Faut-il ajouter des composants (modules), à par l'adaptateur (la prise) que j'ai vu sur des photos.
Qu'est-ce qu'il y a au juste dans cet adaptateur ? (l'USB c'est déjà de la "série".)(protocole différent ???)

PS: Pour les modos: Si vous déplacez mon post, ça serait sympa de mettre un lien ici (enfin...je ne sais pas comment marche votre forum intersidéral; mais bon, ne m'envoyez pas dans la 4ième dimension. j'ai voulu visiter..Je me suis retrouvée chez les italiens!§)
Bon Dimanche. (Modos.., pensez à éteindre la lumière en remontant de la cave....Facile: Il suffit de coincer la deuxième bouteille sous le bras pour avoir une main libre.) Loooool!

à: Super_Cinci: dans ton code, après avoir additionné 64 fois, il faut diviser par 64 pour avoir la moyenne.
Mais je vois bien de quoi tu parle.
Hey...!--> for (uint_8t i=0; i<64; i++) C'est quand même pas du gâteau la syntaxe ! (c'est du compact de chez "compact")

Carolyne:
Je vois bien qu'il va falloir étalonner la sonde. Je pense que je vais d'abord faire avec une CTN, j'ai vu que quelqu'un ici avait fait un barbecue avec un LM35.
à: Super_Cinci: Ah.. Ok bien reçu pour le high/low. Tu a raison pour l'ArduBlock. Je vais plutôt pomper sur tous les bouts de code que j'ai ramassé avec Google. Et sur le tien; dont je te remercie.
Dommage...C'était bien joli cette interface., mais comme il faut que je fasse un autre montage (toujours pour ces p....n de batteries) genre compteur de consommation;

bonjour
qq remarques
-attention si tu dois mesurer des temp negatives en C° comme il semble dans la description.
il faut prevoir de l'alim negative pour le LM35

  • attention aussi au LM35 il est tres "chatouilleux du cablage"
  • tu dois aussi verifier les consos , y a til un systeme de recharge prevu sur place ?
  • quelle capacité les batteries ? parce qu'un arduino c'est aussi un consommateur.

Carolyne:
PS: Pour les modos: Si vous déplacez mon post, ça serait sympa de mettre un lien ici (enfin...je ne sais pas comment marche votre forum intersidéral; mais bon, ne m'envoyez pas dans la 4ième dimension. j'ai voulu visiter..Je me suis retrouvée chez les italiens!§)

T'inquiètes, ton sujet est vissé-collé dans cette section du forum
XD

Carolyne:
(Modos.., pensez à éteindre la lumière en remontant de la cave....Facile: Il suffit de coincer la deuxième bouteille sous le bras pour avoir une main libre.) Loooool!

Les caves à pinard ou à houblon, c'est pas mon truc.... :grin:

Jean-François:
Les caves à pinard ou à houblon, c'est pas mon truc.... :grin:

Je t'imagine bien avec deux meules d'appenzeller sous le bras...

for (uint_8t i=0; i<64; i++) C'est quand même pas du gâteau la syntaxe !

Traduire par "Pour un entier non signé 8 bits i = 0, tant que i < 64, en incrémentant i, faire { ... } ". Le for...next existe aussi en basic, non?

Super_Cinci:
Je t'imagine bien avec deux meules d'appenzeller sous le bras...

à: Artouste: Ah noooon ! Please...Pas du négatif ; à 2°C j'envoie la corne de brume.
Pour la conso, y'a pas de pétard, c'est sur des CdNi à part.
Mais tu a raison d'en parler, mon père parle de mettre une chaufferette ! je vais lui faire: Wh = P * t, ça va le calmer.
Quand il aura tâté une fois de mon klaxon, je pense que les batteries, elles vont pas y rester longtemps dans la cabane.

Carolyne:
à: Artouste: Ah noooon ! Please...Pas du négatif ; à 2°C j'envoie la corne de brume.
Pour la conso, y'a pas de pétard, c'est sur des CdNi à part.
Mais tu a raison d'en parler, mon père parle de mettre une chaufferette ! je vais lui faire: Wh = P * t, ça va le calmer.
Quand il aura tâté une fois de mon klaxon, je pense que les batteries, elles vont pas y rester longtemps dans la cabane.

Bonsoir
De la CdNi c'est assez obsolète comme techno
Ces batteries sont destinées à gerer primairement quoi dans la cabane ?

c'est une hutte de chasse ou une cabane à sucre ? :grin:

un séchoir à saucisses?

XD ==>[]