Premier projet !

Merci rjnc38 je suis vraiment trop nul, malgré toutes mes lectures j’ai même pas percuté que cette ligne s’exécute a chaque boot de la carte et donc normal qu’elle aille chercher l’heure…
C’est le début faut persévérer !
Merci on est tout les deux de l’Isère je t’offre un coup :stuck_out_tongue:

Zorro encore merci a toi je vais aller relire ça, même en supprimant mes Delay ca s’affiche seconde par seconde mais c’est pas fluide ya desfois ca va plus vite qu’une seconde pour afficher chaque seconde et apres ca ralenti puis ca ré-accélère, malgré tout ca, ça reste a la bonne heure.

Pour les accolades inutile, ca peut bouffer des ressources CPU inutile ou faire buger le prog ? J’etais persuadé d’avoir fait un truc bien clean :frowning:

Bon de ce que j'ai compris,

Delay ca met tout le programme en pause donc normal que mon affichage s'accade il semblerait que la fonction Temps Millis ppur rafraîchir ma sonde ph peut être plus approprié pour que le programme continue de tourner sans Delay.

Correct ?

Etternell:
Bon de ce que j'ai compris,

Delay ca met tout le programme en pause donc normal que mon affichage s'accade il semblerait que la fonction Temps Millis ppur rafraîchir ma sonde ph peut être plus approprié pour que le programme continue de tourner sans Delay.

Correct ?

oui, correct, maintenant il faut utiliser millis (si t'en as besoin) :wink:

Hello, alors j'ai supprimé mes Delays() au niveau du DS3231. Plus de soucis de ca côté la par contre si je supprime le Delay() de la sonde PH elle perd ses repères et m'affiche un résultat qui fluctue sans cesse. Il y a que en remettant un Delay(10) qu'elle retrouve son chemin.
J'ai pas encore bien compris toute les subtilités de la fonction Millis() parce que j'ai pas reussi a l'intégrer pour remplacer le Delay().

tu sais donc déjà ce qui te reste à faire : relire la page concernant la gestion du temps du tuto d'eskimon que je t'ai indiqué pour comprendre ce que tu dois faire pour attendre 10ms (ou plus) en utilisant millis() plutôt que delay().

Si tu veux t'as un tout petit résumé ici, mais le tuto d'eskimon est beaucoup mieux expliqué !

Hello Êtrenell,

Ton projet m'intéresse énormément !
Aquariophile moi-même, je suis au début d'un projet d'automatisation d'apport d'engrais et de nourriture...
Jaimerai finir avec automatisation et synchronisation de la lumière et de l'apport de co2...
Ce qui semble finir de rejoindre ton projet car il pour y avoir un asservissement du ci2 par la sonde pH...
Je vais suivre ton sujet avec gd intérêt !

(Quel matos/prix pour ta sonde pH ?)

Hello, la sonde PH c'est une H-101 interface SEN0169 branchement en BNC avec la carte avec le module fourni avec. Je la trouve super précise et en plus ! Elle est déjà calibrée d'usine. Sinon ta les sonde en verre de JBL en BMC aussi mais faut trouver le module pour communiquer sur arduino. Elle sont plutôt faite pour se brancher sur le panel gestion PH/CO2 de JBL.

Niveau tarif tes a 65 euros sur Gotronic.

Hello, tout fonctionne a merveille.

Mon relais s'active bien quand la température descend donnant ainsi la permission au chauffage de s'allumer.

J'ai des témoins lumineux (vert/rouge) qui m'indique si les temp/ph sont ok lorsque l'écran est éteint.

Un buzzer qui hurle si mon eau ou mon ph atteigne des niveau critique.

Bon maintenant je me heurte a un problème prévu... j'ai plus assez de sorties pour gérer le reste de mon matos.

Me reste un relais pour Co2 a branché avec témoin lumineux de fonctionnement.

Un relais pour contrôle de pompe de vidage et de remplissage pour le changement régulier d'eau.

L'entrée du capteur de niveau d'eau en complément de la pompe de vidage et remplissage.

L'entrée du débitmètre avec témoin pour l'entretien du filtre si le débit descend au dessous d'un seuil défini.

Du coup deux/trois questions:

  1. Peut t'on augmenter considérablement le nombre d'entrée sortie d'une UNO ?

  2. Ayant acheté une marque tierce pour débuter je veux finir mon projet sur une carte officielle pour soutenir les développeurs, peut être investir dans la MEGA serait plus intelligent ?

  3. L'intérêt d'une MEGA ADK par rapport a la MEGA CLASSIQUE ? Seulement la connectique USB/ANDROID ?

  4. Je veux prendre un écran plus grand pour afficher toutes mes infos. Le 20x4 est il aussi simple a utiliser que le 16x4 ?

Marci

1°) il est possible d'augmenter les I/O de la UNO par des circuits externes (par ex PCF8574 offre 8 I/O en I2C) mais cela t'oblige a faire un circuit imprimé , de plus tes ressources (Flash et RAM) vont diminuer au fur et a mesure que tu intègre de nouvelles fonctionnalités ....
2°) une MEGA résoud les pb évoqués au 1°, pour la source d'appro c'est toi qui voit ..... mais les clones fonctionnent parfaitement

Pour le circuit c'est pas un soucis j'ai la graveuse et l'insoleuse mais bon de toute façon j'étais parti pour la MEGA question ressources donc ca sera la plus simple et la plus intelligente des solutions de pense.

Pour la marque c'et juste que je trouve le concept Arduino tellement énorme que j'ai envie de soutenir les développeurs voila pourquoi je veut prendre de l'officiel ;).

Premier test sur plusieurs heures (1 nuit).
Au couché affichage impec mais ce matin l'affichage avait planté, plein de caractère bizarre partout et la carte ne répondais plus...

Un reset et ca repare j'ai remis en route a 6h30 je vais voir quand je rentre tout a l'heure mais si ca rebug je miserais sur un soucis avec le DS3231. Et vous ?

Je pense pas que se soit un soucis électrique physique sinon ca planterais tout de suite j'imagine.

Hello,

Petit soucis sur mon sketch…

Ca tourne impec pendant des heures et d’un coup l’affichage disparaît, par contre la carte continue de tourner derrière.

Problème de code ou matériel?

Si vous avez des idées…

Merci

Etternell:
Si vous avez des idées...

il y a des choses bizarres comme ceci

const int PHMAX = 8.20;                    // PIN PH MAXIMUM
const int PHMIN = 6.80;                    // PIN PH MINIMUM

un entier initialisé avec un nombre a virgule .....

as tu essayé de mettre un delay (1 ou 2s) dans ta loop pour ralentir les mesures et mises à jour de l'affichage ?

Mhhh j'ai pas fait gaffe mais pour du virgule je dois mettre en Float non ?

Tu devrais utiliser la librairie "DallasTemperature" plutôt que ta fonction qui contient un "delay(800);", ça ne m'inspire pas vraiment confiance...
Sinon, vu que seulement ton LCD semble planter, vérifie quand même que son câblage est bon, qu'il n'y a pas de mauvaise soudure ou une source d'interférences forte ou à défaut que les contacts sont "francs" (pas de jeu anormal)

Zorro_X:
Tu devrais utiliser la librairie “DallasTemperature” plutôt que ta fonction qui contient un “delay(800);”, ça ne m’inspire pas vraiment confiance…

le delay(800) est nécessaire pour une résolution maxi cf tableau ci dessous
config_ds18b20.jpg
mais il est possible de travailler avec une moins bonne résolution cf

Un truc tout bête mais je vais tester de brancher mon lcd direct sur la carte avec un simple code pour l'ecran qui affiche 4 mots et faire tourner comme ca pour voir.

Tu peux ne pas utiliser delay() mais millis() pour éviter que ton programme ne tourne qu'une fois par seconde (900ms exactement car 800ms de température + 10x10ms =100ms de PH). Ça commence à faire beaucoup...
Sinon ton idée de tester l'écran LCD tout seul se défend, au moins t'ecarteras tout souci physique de son ressort.

Millis() j'ai testé, relu et relu le tuto mais je n'arrive pas a le mettre a exécution.
Pas encore assez d'exp avec le C mais je progresse je code quasiement tout a la main sans copier coller ca me permet d'apprendre et comprendre ce que j'écris.

Par contre c'est sur que si mon programme bug a cause de ca va sérieusement faloir que je m'en serve.

Et pas bêtement en recopiant du code mais intelligemment en fesant des essais de sketch etccc.

pour l'utilisation de millis() ce n'est pas le C/C++ qu'il faut comprendre mais le principe.