claudiusmarius

CLAUDE DUFOURMONT BAL_CVGE3.1

Jun 3rd, 2020
89
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ####################################################################################################################################################################################
  2. //                                                                 CLAUDE DUFOURMONT BAL_CVGE3
  3. // °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°     claude.dufourmont@laposte.net    °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
  4. // °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°     https://www.youtube.com/results?search_query=claude+dufourmont    °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
  5. // ####################################################################################################################################################################################
  6. //                                              Créé le 03/06/20
  7. // Fonctionne en mode deep sleep logiciel
  8. // Alimentation unique en 5V, le courant de sommeil est de 0,51µA
  9. // Le bouton poussoir "résistif" permet également de se subsituer au bouton bleu (reste à bien paraméter la résistance de Gate, et trouver un bon bouton pour le doigt
  10. // Le pont diviseur a été modifié pour bien discriminer les 2 BP
  11. // Testé et fonctionne le 03/06/20 avec schéma BAL_CVGE2
  12. // Utilisation de sous programme pour rouge, bleu et down
  13. // Activation memo1 et 2 et leurs adresses et EEPROM.h sans déjà les utiliser dans cette version
  14. // #####################################################################################################################################################################################
  15. //
  16. //                                        "Une entrée ANA pour déterminer 2 états logiques"
  17. //  
  18. //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  19. //
  20. // Ici le code a été considéré comme du setup,  (un seul démarrage, pas de bouclage)
  21. // **************************Fonctionne en mode sleep logiciel, il fallait lire Val en début de boucle*********************************************************************************
  22. //
  23. //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  24.  
  25.  
  26.   #include <EEPROM.h>                                                   //ULTERIEUREMENT POUR MEMORISER ETATS BPs
  27.   #include<avr/sleep.h>
  28.   #define adc_disable()(ADCSRA &=~(1<<ADEN))      
  29.    
  30.   bool memo1;                                                           // Memoire etat BAL avant interrogation
  31.   bool memo2;                                                           // Memoire etat BAL après interrogation
  32.  
  33.   int LedRouge = 1; //ATtiny85
  34.  
  35.   int LedBleue = 0; //ATtiny85
  36.  
  37.   int LedVerte = 4; //ATtiny85
  38.  
  39.   uint8_t AdresseEEPROM1 = 131;                                         // Adresse memo1
  40.   uint8_t AdresseEEPROM2 = 132;                                         // Adresse memo2
  41.  
  42.  
  43.   boolean etatBP1 = HIGH;                                              
  44.   boolean etatBP2 = HIGH;                                              
  45.  
  46.   int Val;
  47.    
  48.  
  49.   void setup()
  50.   {
  51.   Val = analogRead (3);                                                   // Lecture en 0 - 1022 points de la tension BP
  52.   digitalWrite(LedVerte, HIGH);                                           // Led verte visualise que ATtiny réveillé
  53.   pinMode (LedRouge, OUTPUT);                                             // BP ROUGE
  54.   pinMode (LedBleue, OUTPUT);                                             // BP BLEU
  55.   pinMode (LedVerte, OUTPUT);                                             // ATTINY REVEILLé
  56.   digitalWrite (LedBleue, LOW);
  57.   digitalWrite (LedRouge, LOW);
  58.  
  59.   adc_disable();
  60.   set_sleep_mode(SLEEP_MODE_PWR_DOWN);
  61.  
  62.  
  63.   //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------    
  64.   //***************************************************************** DEBUT DETERMINATION des ETATS BP *********************************************************************************//  
  65.   if (Val > 860)
  66.   {
  67.   etatBP1 = HIGH;
  68.   etatBP2 = HIGH;
  69.   }
  70.    
  71.   if (790 <= Val  && Val <= 860)
  72.   {
  73.   etatBP1 = LOW;
  74.   etatBP2 = HIGH;
  75.   }
  76.  
  77.   if (700 <=  Val  && Val < 790)
  78.   {
  79.   etatBP1 = HIGH;
  80.   etatBP2 = HIGH;
  81.   }
  82.  
  83.  
  84.   if (495 <=  Val  && Val < 700)
  85.   {
  86.   etatBP1 = HIGH;
  87.   etatBP2 = LOW;
  88.   }
  89.  
  90.   if ( Val < 495)
  91.   {
  92.   etatBP1 = HIGH;
  93.   etatBP2 = HIGH;
  94.   }
  95.   //******************************************************************* FIN DETERMINATION des ETATS BP *********************************************************************************//
  96.   //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  97.  
  98.  
  99.  
  100.  
  101.   //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  102.   //********************************************* DEBUT RENVOI VERS FONCTIONS WRITE LEDS EN FONCTIONdes ETATS BP ***********************************************************************//
  103.   if (etatBP1 == LOW && etatBP2 == HIGH)
  104.   {
  105.  
  106.   rouge ();
  107.  
  108.   }
  109.  
  110.   if (etatBP2 == LOW && etatBP1 == HIGH)
  111.   {
  112.  
  113.   bleu ();
  114.  
  115.   }
  116.  
  117.   if (etatBP1 == HIGH && etatBP2 == HIGH )
  118.   {
  119.  
  120.   digitalWrite (LedBleue, LOW);
  121.   digitalWrite (LedRouge, LOW);
  122.   }
  123.  
  124.   if (etatBP1 == LOW && etatBP2 == LOW)
  125.   {
  126.  
  127.   digitalWrite (LedBleue, LOW);
  128.   digitalWrite (LedRouge, LOW);
  129.   }
  130.    //********************************************** FIN RENVOI VERS FONCTIONS WRITE LEDS EN FONCTIONdes ETATS BP *************************************************************************//
  131.   //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  
  132.  
  133.  
  134.    
  135.    
  136.    //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  
  137.    //************************************************************* DEBUT RENVOI VERS FONCTION DEEP SLEEP *********************************************************************************//
  138.  
  139.   down ();
  140.    //*************************************************************** FIN RENVOI VERS FONCTION DEEP SLEEP *********************************************************************************//  
  141.    //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  142.  
  143.   }                                                               // Accolade de fermeture void setup
  144.  
  145.    
  146.    //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  
  147.    //***************************************************************** DEBUT FONCTION ALLUMAGE LED ROUGE *********************************************************************************//
  148.   void rouge (){
  149.   digitalWrite (LedRouge, HIGH);
  150.   digitalWrite (LedBleue, LOW);
  151.   }
  152.    //******************************************************************** FIN FONCTION ALLUMAGE LED ROUGE *********************************************************************************//
  153.    //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------    
  154.    
  155.  
  156.  
  157.  
  158.    //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  
  159.    //******************************************************************* DEBUT FONCTION ALLUMAGE LED BLEU *********************************************************************************//
  160.  
  161.   void bleu (){
  162.   digitalWrite (LedRouge, LOW);
  163.   digitalWrite (LedBleue, HIGH);
  164.   }
  165.   //********************************************************************** FIN FONCTION ALLUMAGE LED BLEU *********************************************************************************//
  166.   //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  167.  
  168.  
  169.  
  170.  
  171.   //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  
  172.   //*************************************************************************** DEBUT FONCTION DEEP SLEEP *********************************************************************************//
  173.   void down (){
  174.   delay(10000);                       // Preparation SLEEP : passage à zero des sorties annexxes
  175.   digitalWrite (LedBleue, LOW);
  176.   digitalWrite (LedRouge, LOW);
  177.   delay(2000);                        // Passage à zéro automaintien (en principe ne sert pas sur un deep sleep soft)
  178.   digitalWrite(LedVerte,LOW);
  179.   delay(100);                         // Activation deep sleep
  180.   sleep_enable();
  181.   sleep_cpu();
  182.   }
  183.   //***************************************************************************** FIN FONCTION DEEP SLEEP *********************************************************************************//  
  184.   //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------  
  185.  
  186.  
  187.  
  188.  
  189.   void loop () {}
  190. //***************************************************************************************************************************************************************************************
  191. //                                                                                  VOLONTAIREMENT PAS DE BOUCLE  
  192. //***************************************************************************************************************************************************************************************
RAW Paste Data