Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ####################################################################################################################################################################################
- // CLAUDE DUFOURMONT BAL_CVGE3
- // °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° claude.dufourmont@laposte.net °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
- // °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° https://www.youtube.com/results?search_query=claude+dufourmont °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
- // ####################################################################################################################################################################################
- // Créé le 03/06/20
- // Fonctionne en mode deep sleep logiciel
- // Alimentation unique en 5V, le courant de sommeil est de 0,51µA
- // 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
- // Le pont diviseur a été modifié pour bien discriminer les 2 BP
- // Testé et fonctionne le 03/06/20 avec schéma BAL_CVGE2
- // Utilisation de sous programme pour rouge, bleu et down
- // Activation memo1 et 2 et leurs adresses et EEPROM.h sans déjà les utiliser dans cette version
- // #####################################################################################################################################################################################
- //
- // "Une entrée ANA pour déterminer 2 états logiques"
- //
- //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- //
- // Ici le code a été considéré comme du setup, (un seul démarrage, pas de bouclage)
- // **************************Fonctionne en mode sleep logiciel, il fallait lire Val en début de boucle*********************************************************************************
- //
- //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- #include <EEPROM.h> //ULTERIEUREMENT POUR MEMORISER ETATS BPs
- #include<avr/sleep.h>
- #define adc_disable()(ADCSRA &=~(1<<ADEN))
- bool memo1; // Memoire etat BAL avant interrogation
- bool memo2; // Memoire etat BAL après interrogation
- int LedRouge = 1; //ATtiny85
- int LedBleue = 0; //ATtiny85
- int LedVerte = 4; //ATtiny85
- uint8_t AdresseEEPROM1 = 131; // Adresse memo1
- uint8_t AdresseEEPROM2 = 132; // Adresse memo2
- boolean etatBP1 = HIGH;
- boolean etatBP2 = HIGH;
- int Val;
- void setup()
- {
- Val = analogRead (3); // Lecture en 0 - 1022 points de la tension BP
- digitalWrite(LedVerte, HIGH); // Led verte visualise que ATtiny réveillé
- pinMode (LedRouge, OUTPUT); // BP ROUGE
- pinMode (LedBleue, OUTPUT); // BP BLEU
- pinMode (LedVerte, OUTPUT); // ATTINY REVEILLé
- digitalWrite (LedBleue, LOW);
- digitalWrite (LedRouge, LOW);
- adc_disable();
- set_sleep_mode(SLEEP_MODE_PWR_DOWN);
- //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- //***************************************************************** DEBUT DETERMINATION des ETATS BP *********************************************************************************//
- if (Val > 860)
- {
- etatBP1 = HIGH;
- etatBP2 = HIGH;
- }
- if (790 <= Val && Val <= 860)
- {
- etatBP1 = LOW;
- etatBP2 = HIGH;
- }
- if (700 <= Val && Val < 790)
- {
- etatBP1 = HIGH;
- etatBP2 = HIGH;
- }
- if (495 <= Val && Val < 700)
- {
- etatBP1 = HIGH;
- etatBP2 = LOW;
- }
- if ( Val < 495)
- {
- etatBP1 = HIGH;
- etatBP2 = HIGH;
- }
- //******************************************************************* FIN DETERMINATION des ETATS BP *********************************************************************************//
- //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- //********************************************* DEBUT RENVOI VERS FONCTIONS WRITE LEDS EN FONCTIONdes ETATS BP ***********************************************************************//
- if (etatBP1 == LOW && etatBP2 == HIGH)
- {
- rouge ();
- }
- if (etatBP2 == LOW && etatBP1 == HIGH)
- {
- bleu ();
- }
- if (etatBP1 == HIGH && etatBP2 == HIGH )
- {
- digitalWrite (LedBleue, LOW);
- digitalWrite (LedRouge, LOW);
- }
- if (etatBP1 == LOW && etatBP2 == LOW)
- {
- digitalWrite (LedBleue, LOW);
- digitalWrite (LedRouge, LOW);
- }
- //********************************************** FIN RENVOI VERS FONCTIONS WRITE LEDS EN FONCTIONdes ETATS BP *************************************************************************//
- //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- //************************************************************* DEBUT RENVOI VERS FONCTION DEEP SLEEP *********************************************************************************//
- down ();
- //*************************************************************** FIN RENVOI VERS FONCTION DEEP SLEEP *********************************************************************************//
- //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- } // Accolade de fermeture void setup
- //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- //***************************************************************** DEBUT FONCTION ALLUMAGE LED ROUGE *********************************************************************************//
- void rouge (){
- digitalWrite (LedRouge, HIGH);
- digitalWrite (LedBleue, LOW);
- }
- //******************************************************************** FIN FONCTION ALLUMAGE LED ROUGE *********************************************************************************//
- //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- //******************************************************************* DEBUT FONCTION ALLUMAGE LED BLEU *********************************************************************************//
- void bleu (){
- digitalWrite (LedRouge, LOW);
- digitalWrite (LedBleue, HIGH);
- }
- //********************************************************************** FIN FONCTION ALLUMAGE LED BLEU *********************************************************************************//
- //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- //*************************************************************************** DEBUT FONCTION DEEP SLEEP *********************************************************************************//
- void down (){
- delay(10000); // Preparation SLEEP : passage à zero des sorties annexxes
- digitalWrite (LedBleue, LOW);
- digitalWrite (LedRouge, LOW);
- delay(2000); // Passage à zéro automaintien (en principe ne sert pas sur un deep sleep soft)
- digitalWrite(LedVerte,LOW);
- delay(100); // Activation deep sleep
- sleep_enable();
- sleep_cpu();
- }
- //***************************************************************************** FIN FONCTION DEEP SLEEP *********************************************************************************//
- //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- void loop () {}
- //***************************************************************************************************************************************************************************************
- // VOLONTAIREMENT PAS DE BOUCLE
- //***************************************************************************************************************************************************************************************
Add Comment
Please, Sign In to add comment