claudiusmarius

Untitled

Jun 3rd, 2020
31
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