Les Tutos d'Enzo #06 Distributeur de croquette

Retrouvez sur cette page tous les tutos d' Enzo Image
Avatar de l’utilisateur
miaouss
Messages : 10
Inscription : 09 juil. 2018, 22:23

Les Tutos d'Enzo #06 Distributeur de croquette

Message par miaouss » 18 déc. 2018, 03:13

Comment je passe de ça :

Image

à ça :


Image

J'ai pris une branche de buis, un bois noble qui à la propriété de ne pas éclater en séchant. Et qui devient sublime en le travaillant.

Je coupe une rondelle
Image


Je trace et perce
Image


Image


Je coffre et coule de la résine époxy avec une led verte ( le vert n'est pas anodin, entre RVB les chats sont plus sensible au verte qu'au deux autres couleurs)
Et un bouton poussoir qui n'est pas sur la photo

Image


Je décoffre et ponce
Image

Je cache
Image

Peinture / Vernis
Image

Premier test dans le noir
Image

Code : Tout sélectionner

//Pin sortie
int led1 = 13 ; // Sortie pin 13 pour led
int vis = 7 ; // Sortie pin 7 pour vis sans fin (relais1)


//Pin entré numérique
int bp1 = 2 ; // Entrée pin 2
int bp2 = 4 ; // Entrée pin 4

//Pin entré Analogique
int pot1 = A0; //Potentiometre 1 pour modifier la récurance entre les repas de 1 à 6 x/jour dont 0=jamais ; 1023=infini 
int pot2 = A1; //Potentiometre 2 pour modifier le temps de rotation de la vis sans fin

//Variable
int drapeau ;//se met à 1 quand le temps entre les repas et passé. donc ok pour donner à manger
int tempsRotation ;//Temps de rotation de la vis sans fin (relai1)
int temps ;// ??
int bp1State ;//Bouton pour l'animale (si il appuis la vis tourne,mais que si le drapeau est à 1)
int bp2State ;//Bouton pour Humain marche forcé de la vis)
int pot1State; // Valeur du potentiometre 1
int pot2State; // Valeur potentiometre 2
int ledState = LOW;             // ledState used to set the LED
unsigned long previousMillis = 0;        // will store last time LED was updated
long OnTime = 50;           // milliseconds of on-time
long OffTime = 10000; 
unsigned long interval = 1; //temps entre les repas
unsigned long vingQuantreHeures = 86400000 ; // 24H en millisecondes 
//******SETUP*****

void setup() {
//Déclaration des Entrée / Sorties  
  pinMode (bp1, INPUT_PULLUP);
  pinMode (bp2, INPUT_PULLUP);
  pinMode (pot1, INPUT);
  pinMode (pot2, INPUT);
  pinMode (led1, OUTPUT);
  pinMode (vis, OUTPUT);

//Ouverture liéson serie
  Serial.begin (9600);

//Initialisation des sorties et Variable
  digitalWrite (led1 ,LOW);
  digitalWrite (vis, HIGH);

  
  drapeau = 1;
  
}


//*****LOOP*****
void loop() {

 interval = ( vingQuantreHeures / pot1State);
 Serial.print ("temps d'interval ");
 Serial.println (interval);
 
  unsigned long currentMillis = millis();
  
  
  
  if(currentMillis - previousMillis > interval) 
  {

     drapeau = 1 ;
  }
     
      //Lecture potentiometre1 pour récurance
  Lecturepot1();
  
      //lecture potentiomettre2 pour le temps de rotation de la vis sans fin(relai1)
  Lecturepot2();

      //Test bp1 Humain
  BoutonPoussoir1();

      //led();
  ClignoteLed1();
  



//si bp1 est enfoncé alors programme humain
if (bp1State == 0) {
  ActiveRelais();  
  previousMillis = currentMillis;
  drapeau = 0;
  Serial.print ("currentMillis = ");
  Serial.println (currentMillis);
  Serial.print ("previousMillis = ");
  Serial.println (previousMillis);
  }
  
  Serial.print("drapeau = ");
  Serial.println(drapeau);
      
      //drapeau = 1 ;
  if(drapeau == 1){
      //buz();
      


  //test du bp2
  
  BoutonPoussoir2();

  

//si bp2 est enfoncé alors; progrmme animal
  if (bp2State == 0) {
  ActiveRelais();
  previousMillis = currentMillis;
  drapeau = 0;
  Serial.print ("currentMillis = ");
  Serial.println (currentMillis);
  Serial.print ("previousMillis = ");
  Serial.println (previousMillis);
  }

  
  }
  else {
  //sinon drapeau =0
 // Tempsentrerepas();
  //si temps entre repas ok mettre le drapeau a 1;
  //sinon rien
  }
  delay(10);

}

//****FIN LOOP*****


///**** LES FONCTIONS*****

void Lecturepot1() { //Récurance (determine le temps entre les repas)
  pot1State = analogRead(pot1) ;
  pot1State = map(pot1State, 0, 1023, 0, 6); // de 0 à 6 fois par jour (6 = tout le temps
  Serial.print ("Récurance ");
  Serial.print (pot1State);
  Serial.println (" fois par jour. ");
  delay(5);
  
}

void Lecturepot2() { //Temps rotation vis sans fin (relais)
  pot2State = analogRead(pot2) ;
  pot2State = map(pot2State, 0, 1023, 0, 10000);
  Serial.print ("La vis sans Fin tourne ");
  Serial.print (pot2State);
  Serial.println (" millisecondes ");
  delay(5);

}

void BoutonPoussoir1() { //Bouton pour humain
bp1State = digitalRead(bp1);
Serial.print("BP1 = ");
Serial.println(bp1State);  
delay (50);
}

void BoutonPoussoir2() { //Bouton pour animal
bp2State = digitalRead(bp2);
Serial.print("BP2 = ");
Serial.println(bp2State);  
delay (50);
}

void ClignoteLed1() { //Comportement de la led témoin

//*******Programme pour que la led clignote en millis*******  

  // check to see if it's time to change the state of the LED
 // unsigned long currentMillis = millis();
 
//  if((ledState == HIGH) && (currentMillis - previousMillis >= OnTime))
 // {
  //  ledState = LOW;  // Turn it off
   // previousMillis = currentMillis;  // Remember the time
   // digitalWrite(led1, ledState);  // Update the actual LED
 // }
 // else if ((ledState == LOW) && (currentMillis - previousMillis >= OffTime))
 // {
  //  ledState = HIGH;  // turn it on
   // previousMillis = currentMillis;   // Remember the time
  //  digitalWrite(led1, ledState);    // Update the actual LED
 // }
//*************************************************************

//                          OU

//**********Programme pour que la led reste allumé*************

if (drapeau == 1) {

digitalWrite(led1, HIGH);

}

else {
  digitalWrite(led1,LOW);
  }
//*************************************************************
 
}

void ActiveRelais() { //Mise en route du relais
  digitalWrite (vis,LOW);
  Serial.print ("Vis sans fin tourne pendant ");
  Serial.print (pot2State);
  Serial.println ("secondes");
  delay (pot2State);
  digitalWrite (vis,HIGH);
  Serial.println ("Vis sans fin arrétée");
  
}

void SonnerieBuz() {
  //milis 
  //bip
  //bip 
  //stop
  //1h
}




à suivre
Code arduino/ Vis sans fin/visseuse/ reservoir/ croquette /imprimante 3D


Miaouss Image
Avatar de l’utilisateur
ricola
Messages : 767
Inscription : 01 juil. 2018, 23:11

Re: Les Tutos d'Enzo #06 Distributeur de croquette

Message par ricola » 18 déc. 2018, 07:12

ça tue :o
Le monde se compose en 10 catégories : ceux qui comprennent le binaire et les autres :lol:
Avatar de l’utilisateur
Lom Atra
Messages : 3
Inscription : 15 juil. 2018, 07:35

Re: Les Tutos d'Enzo #06 Distributeur de croquette

Message par Lom Atra » 30 déc. 2018, 10:20

:o wouahh..hâte de voir la suite..
Avatar de l’utilisateur
Steflin
Administrateur
Messages : 1355
Inscription : 01 juil. 2018, 20:19

Re: Les Tutos d'Enzo #06 Distributeur de croquette

Message par Steflin » 30 déc. 2018, 10:47

Il me semble qu'il a posté tout ça sur facebook >> Enzo Gallego
Avatar de l’utilisateur
Lom Atra
Messages : 3
Inscription : 15 juil. 2018, 07:35

Re: Les Tutos d'Enzo #06 Distributeur de croquette

Message par Lom Atra » 14 févr. 2019, 04:32

Slt,sans faire mon espion j'ai parcouru le Facebook a Enzo mais pas trouvé :( j'espère que la suite viendra 1jour ;))
Avatar de l’utilisateur
Steflin
Administrateur
Messages : 1355
Inscription : 01 juil. 2018, 20:19

Re: Les Tutos d'Enzo #06 Distributeur de croquette

Message par Steflin » 17 mars 2019, 07:13

La question est est ce que enzo viendra ajouter la suite un jour ? (si il y en a une, car j'en sais rien)
possible mais j'en doute.
tu as des chances de le contacter sur facebook,
mais ici je suis pas certain qu'il se connecte ou qu'il lise quoi que ce soit régulièrement..
Avatar de l’utilisateur
miaouss
Messages : 10
Inscription : 09 juil. 2018, 22:23

Re: Les Tutos d'Enzo #06 Distributeur de croquette

Message par miaouss » 18 mars 2019, 22:50

Salut Lom Atra,

Enfait j'ai fini le code, j'ai tout assemblé mais j'ai eu un problème de puissance pour le moteur. J'ai laisser un peu de coté ce truc. J'ai pas d'alime à y mettre au cul pour le moment. Mais tkt pas des que ça fonctionne, je penserai poursuivre ce tuto.

Mon FB si tu veux https://www.facebook.com/profile.php?id=100009359904615

Salut
Répondre