Pages: [1]   Go Down
Author Topic: Condition IF  (Read 356 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo I have a problem. How does work condition IF with keyboard?
I want condition for example IF BUTTON_UP is pressed do cas++ and I don´t know how to do it.
Please answear



    #include <LiquidCrystal.h>   // include LCD library
    /*--------------------------------------------------------------------------------------
      Defines
    --------------------------------------------------------------------------------------*/
    // Pins in use
    #define BUTTON_ADC_PIN           A0  // A0 is the button ADC input
    #define LCD_BACKLIGHT_PIN         3  // D3 controls LCD backlight
    // ADC readings expected for the 5 buttons on the ADC input
    #define RIGHT_10BIT_ADC          252  // right
    #define UP_10BIT_ADC            497  // up
    #define DOWN_10BIT_ADC          676  // down
    #define LEFT_10BIT_ADC          860  // left
    #define SELECT_10BIT_ADC        0  // right
    #define BUTTONHYSTERESIS         10  // hysteresis for valid button sensing window
    //return values for ReadButtons()
    #define BUTTON_NONE               0  //
    #define BUTTON_RIGHT              1  //
    #define BUTTON_UP                 2  //
    #define BUTTON_DOWN               3  //
    #define BUTTON_LEFT               4  //
    #define BUTTON_SELECT             5  //
    //some example macros with friendly labels for LCD backlight/pin control, tested and can be swapped into the example code as you like
    #define LCD_BACKLIGHT_OFF()     digitalWrite( LCD_BACKLIGHT_PIN, LOW )
    #define LCD_BACKLIGHT_ON()      digitalWrite( LCD_BACKLIGHT_PIN, HIGH )
    #define LCD_BACKLIGHT(state)    { if( state ){digitalWrite( LCD_BACKLIGHT_PIN, HIGH );}else{digitalWrite( LCD_BACKLIGHT_PIN, LOW );} }
    /*--------------------------------------------------------------------------------------
      Variables
    --------------------------------------------------------------------------------------*/
    byte buttonJustPressed  = false;         //this will be true after a ReadButtons() call if triggered
    byte buttonJustReleased = false;         //this will be true after a ReadButtons() call if triggered
    byte buttonWas          = BUTTON_NONE;   //used by ReadButtons() for detection of button events
    int cas = 0;
    int doba = 0;
    int interval = 0;
    int oneskorenie = 0;
    int i = 0;
    int x = 0;
   // char* Vyber[]={"Casovy interval", "nastavenie otacok", " nastavenie inter"
   
    /*--------------------------------------------------------------------------------------
      Init the LCD library with the LCD pins to be used
    --------------------------------------------------------------------------------------*/
    LiquidCrystal lcd( 8, 9, 4, 5, 6, 7 );   //Pins for the freetronics 16x2 LCD shield. LCD: ( RS, E, LCD-D4, LCD-D5, LCD-D6, LCD-D7 )
    /*--------------------------------------------------------------------------------------
      setup()
      Called by the Arduino framework once, before the main loop begins
    --------------------------------------------------------------------------------------*/
    void setup()
    {
       //button adc input
       pinMode( BUTTON_ADC_PIN, INPUT );         //ensure A0 is an input
       digitalWrite( BUTTON_ADC_PIN, LOW );      //ensure pullup is off on A0
       //lcd backlight control
       digitalWrite( LCD_BACKLIGHT_PIN, HIGH );  //backlight control pin D3 is high (on)
       pinMode( LCD_BACKLIGHT_PIN, OUTPUT );     //D3 is an output
       //set up the LCD number of columns and rows:
       lcd.begin( 16, 2 );
       //Print some initial text to the LCD.
       lcd.setCursor( 0, 0 );   //top left
       //          1234567890123456
       lcd.print( "Vitajte" );
       //
       lcd.setCursor( 0, 1 );   //bottom left
       //          1234567890123456
       lcd.print( "Stlacte tlacitko" );
    }
    /*--------------------------------------------------------------------------------------
      loop()
      Arduino main loop
    --------------------------------------------------------------------------------------*/
    void loop()
    {
       byte button;
     
       
     //  byte timestamp;
       
       //get the latest button pressed, also the buttonJustPressed, buttonJustReleased flags
       button = ReadButtons();
       





      if( buttonJustPressed )
          buttonJustPressed = false;
       if( buttonJustReleased )
          buttonJustReleased = false;
    }
    /*--------------------------------------------------------------------------------------
      ReadButtons()
      Detect the button pressed and return the value
      Uses global values buttonWas, buttonJustPressed, buttonJustReleased.
    --------------------------------------------------------------------------------------*/
    byte ReadButtons()
    {
       unsigned int buttonVoltage;
       byte button = BUTTON_NONE;   // return no button pressed if the below checks don't write to btn
       
       //read the button ADC pin voltage
       buttonVoltage = analogRead( BUTTON_ADC_PIN );
       //sense if the voltage falls within valid voltage windows
       if( buttonVoltage < ( RIGHT_10BIT_ADC + BUTTONHYSTERESIS ) )
       {
          button = BUTTON_RIGHT;
       }
       else if(   buttonVoltage >= ( UP_10BIT_ADC - BUTTONHYSTERESIS )
               && buttonVoltage <= ( UP_10BIT_ADC + BUTTONHYSTERESIS ) )
       {
          button = BUTTON_UP;
       }
       else if(   buttonVoltage >= ( DOWN_10BIT_ADC - BUTTONHYSTERESIS )
               && buttonVoltage <= ( DOWN_10BIT_ADC + BUTTONHYSTERESIS ) )
       {
          button = BUTTON_DOWN;
       }
       else if(   buttonVoltage >= ( LEFT_10BIT_ADC - BUTTONHYSTERESIS )
               && buttonVoltage <= ( LEFT_10BIT_ADC + BUTTONHYSTERESIS ) )
       {
          button = BUTTON_LEFT;
       }
       else if(   buttonVoltage >= ( SELECT_10BIT_ADC - BUTTONHYSTERESIS )
               && buttonVoltage <= ( SELECT_10BIT_ADC + BUTTONHYSTERESIS ) )
       {
          button = BUTTON_SELECT;
       }
       //handle button flags for just pressed and just released events
       if( ( buttonWas == BUTTON_NONE ) && ( button != BUTTON_NONE ) )
       {
          //the button was just pressed, set buttonJustPressed, this can optionally be used to trigger a once-off action for a button press event
          //it's the duty of the receiver to clear these flags if it wants to detect a new button change event
          buttonJustPressed  = true;
          buttonJustReleased = false;
       }
       if( ( buttonWas != BUTTON_NONE ) && ( button == BUTTON_NONE ) )
       {
          buttonJustPressed  = false;
          buttonJustReleased = true;
       }
       
       //save the latest button value, for change event detection next time round
       buttonWas = button;
       
       return( button );
    }


Logged

Croatia
Offline Offline
God Member
*****
Karma: 13
Posts: 524
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Use code tags (# icon).

Code:
else if(   buttonVoltage >= ( UP_10BIT_ADC - BUTTONHYSTERESIS )
               && buttonVoltage <= ( UP_10BIT_ADC + BUTTONHYSTERESIS ) )
       {
          button = BUTTON_UP;
          cas++;
       }
Logged

Pages: [1]   Go Up
Jump to: