Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Coded by PtitJean
- * Version : 1
- * YouTube "Petit Jean s'éVape" : https://www.youtube.com/channel/UC9zN-UWnURGglR0BpOrwDVw
- * Facebook : https://www.facebook.com/PetitJeanCVape/
- *
- * Firmware de démonstration pour la gestion d'une cigarette electronique avec un arduino Nano/Pro mini.
- */
- /**
- * Arduino PIN
- */
- const byte inputPotentiometer = 1;
- const byte inputSwitch = 8;
- const byte outputPWM = 5;
- const byte outputLed = 9;
- /**
- * Variables
- */
- int fire;
- int previous;
- int clicks;
- int pwm;
- int lock;
- unsigned long int time;
- const int pause = 100;
- /**
- * Lit la valeur envoyée par le potard et converti le résultat en un nombre utilisable
- * par le PWM interne du CPU
- */
- int getPWMValue() {
- return map( analogRead( inputPotentiometer ), 0, 1023, 0, 255 );
- }
- /**
- * Coupe le PWM et eteint la led
- */
- void cutOff() {
- digitalWrite( outputLed, LOW );
- analogWrite( outputPWM, 0 );
- }
- /**
- * Fait clignoter la led 3 fois pour indiquer qu'on est rentré dans le menu de verrouillage.
- * Suivant l'état du chipset, verrouille ou deverrouille le switch
- */
- void enterMenu() {
- digitalWrite( outputLed, LOW );
- delay( pause );
- digitalWrite( outputLed, HIGH );
- delay( pause );
- digitalWrite( outputLed, LOW );
- delay( pause );
- digitalWrite( outputLed, HIGH );
- delay( pause );
- digitalWrite( outputLed, LOW );
- delay( pause );
- digitalWrite( outputLed, HIGH );
- delay( pause );
- digitalWrite( outputLed, LOW );
- delay( pause );
- lock = !lock;
- clicks = 0;
- time = millis();
- }
- /**
- * Setup execution
- */
- void setup() {
- // Declaration des pin utilisée par la board
- pinMode( inputPotentiometer, INPUT );
- pinMode( inputSwitch, INPUT_PULLUP );
- pinMode( outputPWM, OUTPUT );
- pinMode( outputLed, OUTPUT );
- // Initialisation
- fire = 1;
- previous = 0;
- clicks = 0;
- pwm = 0;
- lock = 1;
- time = millis();
- }
- /**
- * Main
- */
- void loop() {
- // Lecture input
- pwm = getPWMValue();
- fire = digitalRead( inputSwitch );
- // Par mesure de précaution
- if ( fire == 0 )
- cutOff();
- /*
- * Gestion switchs
- */
- if ( (fire == 0) && (previous == 1) )
- { clicks++; }
- else if ( fire == 1 ) {
- if ( (millis() - time) > 1500 ) {
- clicks = 0;
- time = millis();
- }
- }
- /*
- * Gestion Vape
- */
- if ( (clicks == 1) && (lock == 0) ) {
- digitalWrite( outputLed, HIGH );
- analogWrite( outputPWM, pwm );
- } else if ( clicks == 3 )
- { enterMenu(); }
- else
- { cutOff(); }
- // Sauvegarde derniere action switch
- previous = fire;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement