Le forum a migré vers l'adresse suivante:

Forum

Masquer ce message

Simple-Duino Index du Forum



Problème entre IF et TIME


 
Poster un nouveau sujet   Répondre au sujet    Simple-Duino Index du Forum -> Arduino & Électronique -> Questions
Sujet précédent :: Sujet suivant  
Auteur Message
Geuldeclav
Débutant

Hors ligne

Inscrit le: 04 Nov 2013
Messages: 4
Masculin
Niveau d'éléctronique: Débutant

MessagePosté le: Lun 4 Nov - 21:41 (2013)    Sujet du message: Problème entre IF et TIME Répondre en citant

PublicitéSupprimer les publicités ?
Bonjour,


L'objectif de mon projet arduino est de déverser des croquettes aux chats à 6 heures du matin, pour me laisser dormir un peu plus longtemps.
Je me suis amusé à adapter un gobelet sur un petit servo moteur "Tiny S".
D'un autre côté. J'ai un RTC qui (après test) donne parfaitement l'heure.
Le tout relié à une carte Arduino Leonardo.
Je suis parti de l'exemple de code "Sweep" que j'ai adapté.
Voici le code :


// Sweep 3
//
// This example code is in the public domain.
#include <DS1307RTC.h>
#include <Servo.h>
#include <Time.h>
#include <Wire.h>
Servo myservo;  // create servo object to control a servo        
int pos = 0;    // variable to store the servo position
void setup()
{
  myservo.attach(9); // attaches the servo on pin 9 to the servo object
  myservo.write(pos);
  setSyncProvider(RTC.get);   // the function to get the time from the RTC
}
void loop()
{
  tmElements_t tm;
  if (tm.Minute=16)
      {
         for(pos = 0; pos < 180; pos += 1)  // goes from 0 degrees to 180 degrees
           {                                  // in steps of 1 degree
             myservo.write(pos);              // tell servo to go to position in variable 'pos'
             delay(15);                       // waits 15ms for the servo to reach the position
           }
         delay(6000); 
         for(pos = 180; pos>=1; pos-=1)     // goes from 180 degrees to 0 degrees
           {                               
             myservo.write(pos);              // tell servo to go to position in variable 'pos'
             delay(15);                       // waits 15ms for the servo to reach the position
           }
      }
      myservo.detach();
}


Je teste mon IF sur minute pour tester.


Mon problème.


Mon moteur se met bien en route. IL effectue la rotation souhaitée pour déverser les croquettes des chats.
Mais il le fait dès que je branche la carte. Or, je souhaiterai qu'il ne le fasse qu'à une certaine heure.


Avez déjà conditionner l'exécution d'une séquence, ou programme, avec TIME ?


Il y a t'il un moyen (or DELAY) de retenir la mise en action d'un moteur ?


Merci d'avoir tout lu.


J'espère pouvoir dormir un peu plus longtemps dimanche prochain. 





Cordialement


Geuldeclav
Revenir en haut
arnaud39
Débutant

Hors ligne

Inscrit le: 01 Avr 2013
Messages: 378
Masculin
Niveau d'éléctronique: Dieu vivant

MessagePosté le: Mar 5 Nov - 22:10 (2013)    Sujet du message: Problème entre IF et TIME Répondre en citant

"Retenir la mise an action d'un moteur" tu veux dire attendre x secondes avant d'actionner le moteur ? Si c'est la cas oui bien sur tu dois avoir une fonction sleep
____________________________
Ancien admin du forum, co-fondateur tutoarduino.com
Revenir en haut
Geuldeclav
Débutant

Hors ligne

Inscrit le: 04 Nov 2013
Messages: 4
Masculin
Niveau d'éléctronique: Débutant

MessagePosté le: Mer 6 Nov - 22:09 (2013)    Sujet du message: Problème entre IF et TIME Répondre en citant

Je voudrais simplement :


SI il est 6H00 alors "moteur" met toi en route.


Mais le moteur se met en route sans même tenir compte du si.
J'ai essayé While et Do...while. Sans succès.
De plus, pourquoi "tm.Minute" fonctionne et pas "tm.Hour"  Evil or Very Mad
Revenir en haut
Geuldeclav
Débutant

Hors ligne

Inscrit le: 04 Nov 2013
Messages: 4
Masculin
Niveau d'éléctronique: Débutant

MessagePosté le: Jeu 7 Nov - 21:28 (2013)    Sujet du message: Problème entre IF et TIME Répondre en citant

J'ai trouvé  Very Happy




  if (hour() == 06 && minute() == 45 && second() == 01)  // between 6:45:01 and 6:45:02
      {
         myservo.attach(9); // attaches the servo on pin 9 to the servo object
         
         for(pos = 0; pos < 270; pos += 1)  // goes from 0 degrees to 180 degrees 
           {                                  // in steps of 1 degree 
             myservo.write(pos);              // tell servo to go to position in variable 'pos' 
             delay(15);                       // waits 15ms for the servo to reach the position 
           } 
         delay(6000);  
         for(pos = 270; pos>=1; pos-=1)     // goes from 180 degrees to 0 degrees 
           {                                
             myservo.write(pos);              // tell servo to go to position in variable 'pos' 
             delay(15);                       // waits 15ms for the servo to reach the position 
           }
       myservo.detach();
      } 




Revenir en haut
arnaud39
Débutant

Hors ligne

Inscrit le: 01 Avr 2013
Messages: 378
Masculin
Niveau d'éléctronique: Dieu vivant

MessagePosté le: Sam 9 Nov - 16:05 (2013)    Sujet du message: Problème entre IF et TIME Répondre en citant

Bien joué tu peux dormir maintenant Wink
____________________________
Ancien admin du forum, co-fondateur tutoarduino.com
Revenir en haut
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 00:25 (2017)    Sujet du message: Problème entre IF et TIME

Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Simple-Duino Index du Forum -> Arduino & Électronique -> Questions Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  

Index | creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB
Propulsé par Simple-Duino