Ajuda Botão Temporizado

Olá a todos,

Sou iniciante em programação e preciso de ajuda para fazer um programa da seguinte forma:

1 - Quando o Botao for pressionado com um único click irá colocar a saida 13 do arduino em nível lógico alto e após uns 200 milissegundos retorna esta saída para nível lógico baixo.

2 - Se este mesmo Botão for pressionado por um tempo superior a 2 segundos irá colocar uma outra saída no caso a 14 em nível lógico alto, a saída 14 só voltará para o nível lógico baixo se o botão for pressionado novamente por um tempo superior a 2 segundos.

Se alguém tiver alguma dica e agradeço.

O que é que já experimentaste para resolver esse problema?

Para fazer o botão click eu usei este código abaixo e funcionou:

const int LED_pin = 4;
const int S1_pin = 3;

#define N_leituras 18
#define T_leituras 10

void setup()
{
pinMode(LED_pin, OUTPUT);
pinMode(S1_pin, INPUT_PULLUP);

}

void loop()
{
unsigned char contador = N_leituras;

for(;:wink:
{
if(digitalRead(S1_pin) == 0)
{
if(contador == 0)
{
digitalWrite(LED_pin, HIGH);

}else
{
contador--;
delayMicroseconds(T_leituras);
}
}else
{
contador = N_leituras;
digitalWrite(LED_pin, LOW
);
}
}
}

Porem nao consegui fazer a parte do botão pressionado por 2 segundos.