Le forum a migré vers l'adresse suivante:

Forum

Masquer ce message

Simple-Duino Forum Index



Problème entre IF et TIME


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

Offline

Joined: 04 Nov 2013
Posts: 4
Masculin
Niveau d'éléctronique: Débutant

PostPosted: Mon 4 Nov - 21:41 (2013)    Post subject: Problème entre IF et TIME Reply with quote

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
Back to top
arnaud39
Débutant

Offline

Joined: 01 Apr 2013
Posts: 378
Masculin
Niveau d'éléctronique: Dieu vivant

PostPosted: Tue 5 Nov - 22:10 (2013)    Post subject: Problème entre IF et TIME Reply with quote

"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
Back to top
Geuldeclav
Débutant

Offline

Joined: 04 Nov 2013
Posts: 4
Masculin
Niveau d'éléctronique: Débutant

PostPosted: Wed 6 Nov - 22:09 (2013)    Post subject: Problème entre IF et TIME Reply with quote

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
Back to top
Geuldeclav
Débutant

Offline

Joined: 04 Nov 2013
Posts: 4
Masculin
Niveau d'éléctronique: Débutant

PostPosted: Thu 7 Nov - 21:28 (2013)    Post subject: Problème entre IF et TIME Reply with quote

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();
      } 




Back to top
arnaud39
Débutant

Offline

Joined: 01 Apr 2013
Posts: 378
Masculin
Niveau d'éléctronique: Dieu vivant

PostPosted: Sat 9 Nov - 16:05 (2013)    Post subject: Problème entre IF et TIME Reply with quote

Bien joué tu peux dormir maintenant Wink
____________________________
Ancien admin du forum, co-fondateur tutoarduino.com
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 | Cookies | Charte | Conditions générales d'utilisation
Powered by phpBB
Propulsé par Simple-Duino