Skip to main content
added 278 characters in body
Source Link
Gerben
  • 11.3k
  • 3
  • 22
  • 34

You should just not call the releaseKey function, until the button is released.

int oldVal1 = 0;
int oldVal2 = 0;

void loop() 
{
    val1 = digitalRead(inpin1);
    if( val1!=oldVal1 )
    {
        oldVal1 = val1;
        if(val1 != HIGH)
        {
            buf[2] = 80; // Left Arrow
            Serial.write(buf, 8);
        }
        else
        {
            releaseKey();
        }
    }

    val2 = digitalRead(inpin2);
    if( val2!=oldVal2 )
    {
        oldVal2 = val2;
        if(val2 != HIGH)
        {
            buf[2] = 79; // Right Arrow
            Serial.write(buf, 8);
        } 
        else 
        {
            releaseKey();
        }
    }

}

You should just not call the releaseKey function, until the button is released.

void loop() 
{
    val1 = digitalRead(inpin1);
    if(val1 != HIGH)
    {
        buf[2] = 80; // Left Arrow
        Serial.write(buf, 8);
    }
    else
    {
        releaseKey();
    }

    val2 = digitalRead(inpin2);
    if(val2 != HIGH)
    {
        buf[2] = 79; // Right Arrow
        Serial.write(buf, 8);
    } 
    else 
    {
        releaseKey();
    }

}

You should just not call the releaseKey function, until the button is released.

int oldVal1 = 0;
int oldVal2 = 0;

void loop() 
{
    val1 = digitalRead(inpin1);
    if( val1!=oldVal1 )
    {
        oldVal1 = val1;
        if(val1 != HIGH)
        {
            buf[2] = 80; // Left Arrow
            Serial.write(buf, 8);
        }
        else
        {
            releaseKey();
        }
    }

    val2 = digitalRead(inpin2);
    if( val2!=oldVal2 )
    {
        oldVal2 = val2;
        if(val2 != HIGH)
        {
            buf[2] = 79; // Right Arrow
            Serial.write(buf, 8);
        } 
        else 
        {
            releaseKey();
        }
    }

}
Source Link
Gerben
  • 11.3k
  • 3
  • 22
  • 34

You should just not call the releaseKey function, until the button is released.

void loop() 
{
    val1 = digitalRead(inpin1);
    if(val1 != HIGH)
    {
        buf[2] = 80; // Left Arrow
        Serial.write(buf, 8);
    }
    else
    {
        releaseKey();
    }

    val2 = digitalRead(inpin2);
    if(val2 != HIGH)
    {
        buf[2] = 79; // Right Arrow
        Serial.write(buf, 8);
    } 
    else 
    {
        releaseKey();
    }

}