Le forum a migré vers l'adresse suivante:

Forum

Masquer ce message

Simple-Duino Forum Index



Besoin d'être guidé


 
Post new topic   Reply to topic    Simple-Duino Forum Index -> Arduino & Électronique -> Questions
Previous topic :: Next topic  
Author Message
FlyBoy37
Débutant

Offline

Joined: 26 Jun 2014
Posts: 6
Masculin
Niveau d'éléctronique: Intermédiaire

PostPosted: Fri 18 Jul - 16:16 (2014)    Post subject: Besoin d'être guidé Reply with quote

PublicitéSupprimer les publicités ?
Bonjour


Je suis en train d'écrire un petit programme de régulation de température d'une serre, En gros, toutes les 10 mn, comparaison de la température ambiante par rapport a une consigne  et si la température dépasse la consigne, cela doit commander un moteur qui ouvrira/fermera une porte.
J'ai écris le début du programme de mesure de température(DS18B20), des mini/maxi, du module horloge(DS1307) et de l'affichage graphique(12864) .
Mais, je ne sais pas trop comment m'y prendre pour réaliser cette partie ;   le contrôle doit s'effectuer toutes les 10 mn et une seule fois pendant ces 10 mn. 


Je pensais aux interruptions, mais t-on déclencher une interruption de manière "logicielle" (rien trouvé sur ce point) ? (par exemple, a chaque changement de la valeur d'une variable ; ici une variable qui est la recopie des dizaines de minutes)


Comment feriez-vous ?


(Je suis sur une carte Mega 2560)

D'avance Merci.
Back to top
FlyBoy37
Débutant

Offline

Joined: 26 Jun 2014
Posts: 6
Masculin
Niveau d'éléctronique: Intermédiaire

PostPosted: Sun 20 Jul - 14:23 (2014)    Post subject: Besoin d'être guidé Reply with quote

Personne ne peut m'aider ?
Back to top
Admin
Fondateur

Offline

Joined: 12 Apr 2012
Posts: 860
Masculin
Niveau d'éléctronique: Pro

PostPosted: Sun 20 Jul - 15:05 (2014)    Post subject: Besoin d'être guidé Reply with quote

Bonjour,
Pourquoi ne pas relever les minutes grâce au DS1307 et, toutes les 10 min, effectuer votre relevé ?
Par exemple:
- Premier relevé à 7h04 --> On fera la prochain à h + 10min --> 7h14
____________________________
http://simple-duino.com
Back to top
abuche
Débutant

Offline

Joined: 25 Jul 2014
Posts: 17
Masculin
Niveau d'éléctronique: Intermédiaire

PostPosted: Sun 27 Jul - 07:27 (2014)    Post subject: Besoin d'être guidé Reply with quote

 
Quote:
 Mais, je ne sais pas trop comment m'y prendre pour réaliser cette partie ;   le contrôle doit s'effectuer toutes les 10 mn et une seule fois pendant ces 10 mn.


Il faut intégrer les secondes pour déclencher 1 fois , le passage des 10 minutes .
Méga dispose de 4 ( 18,19,20,21 )+ 2 pattes interruption ( uno que 2 : 0,2 )
Back to top
FlyBoy37
Débutant

Offline

Joined: 26 Jun 2014
Posts: 6
Masculin
Niveau d'éléctronique: Intermédiaire

PostPosted: Sun 27 Jul - 07:58 (2014)    Post subject: Besoin d'être guidé Reply with quote

Bonjour,
abuche wrote:
 
Quote:
 Mais, je ne sais pas trop comment m'y prendre pour réaliser cette partie ;   le contrôle doit s'effectuer toutes les 10 mn et une seule fois pendant ces 10 mn.




Il faut intégrer les secondes pour déclencher 1 fois , le passage des 10 minutes .
Méga dispose de 4 ( 18,19,20,21 )+ 2 pattes interruption ( uno que 2 : 0,2 )


Ok merci, je vais réfléchir a cette méthode.


Moi, je cherchais a faire en sorte que cette fonction soit réalisée qu'au changement de dizaines avec une interdiction de répéter cette fonction tant qu'un autre changement de dizaine n'intervienne.


Pas très simple pour moi, c'est mon premier programme...


Sinon, pour les interruptions ; OK pour les interruptions "Hardwares" sur pins ; mais visiblement impossible en arduino de  déclencher une interruption "Software" ; enfin je n'ai pas trouvé ; si cela est possible, je veux bien un exemple


Merci.
Back to top
abuche
Débutant

Offline

Joined: 25 Jul 2014
Posts: 17
Masculin
Niveau d'éléctronique: Intermédiaire

PostPosted: Sun 27 Jul - 09:58 (2014)    Post subject: Besoin d'être guidé Reply with quote

 
Code:

 void loop () {
    DateTime now = RTC.now();
    mois=now.month(), DEC;
    jour=now.day(), DEC;
    heure=now.hour(), DEC;
    minu=now.minute(), DEC;
    sec=now.second(), DEC;
    
    Serial.println(minu);
    
    if ((minu==0||minu==5||minu==10||minu==15||minu==20||minu==25) && sec<6) {
       Serial.println("....");
       //delay(3000);
    }
    



Voici un comptage de 5 en 5 dans une fenêtre de 6 secondes .
delay ajoute une tempo variable qui dépend de la suite du programme .
L'étape suivante est de créer une fonction qui ne dépendra pas de la suite du programme .

http://arduino.cc/en/Reference/FunctionDeclaration
Back to top
FlyBoy37
Débutant

Offline

Joined: 26 Jun 2014
Posts: 6
Masculin
Niveau d'éléctronique: Intermédiaire

PostPosted: Sun 27 Jul - 10:39 (2014)    Post subject: Besoin d'être guidé Reply with quote

Merci, je vais regarder ça
Back to top
Contenu Sponsorisé






PostPosted: Today at 06:56 (2019)    Post subject: Besoin d'être guidé

Back to top
Display posts from previous:   
Post new topic   Reply to topic    Simple-Duino Forum Index -> Arduino & Électronique -> Questions All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  

Index | Xooit.com free forum | Free support forum | Free forums directory | Report a violation | Conditions générales d'utilisation
Powered by phpBB
Propulsé par Simple-Duino