To start thigns off this is my code:
#include "Bounce2.h"
#include "usToDE.h"
const int pin1 = 2;
const int pin2 = 3;
int value = 0;
Bounce debouncer = Bounce();
void setup()
{
Serial.begin(9600);
pinMode(pin1, INPUT_PULLUP);
pinMode(pin2, INPUT_PULLUP);
}
void loop()
{
debouncer.attach(pin1);
debouncer.interval(5);
debouncer.update();
value = debouncer.read();
if (value == debouncer.fell())
{
Serial.write ('w');
}
if (value == debouncer.rose())
{
Serial.write ('w');
}
debouncer.attach(pin2);
debouncer.interval(5);
value = debouncer.read();
if (value == debouncer.fell())
{
Serial.write ('a');
}
if (value == debouncer.rose())
{
Serial.write ('a');
}
}
I am working with an Arduino UNO and connect the pin1/pin2 with ground.
I want to get a single w or a every time I connect a pin with ground but instead I am now getting endless w's or a's if I connect a pin with ground.
In the end it should send a single w or a to the connected hardware.
Since i can't find my mistake alone I am seeking help here. Thanks in advance.
These lines are only supposed to be executed once in setup and not for each loop:
debouncer.attach(pin1);
debouncer.interval(5);
You need one debouncer for each pin.
And if you send a character both on .fell() and .rose() you're definitely going to get more than one.
Steve
If I do it like this
void setup()
{
Serial.begin(9600);
pinMode(pin1, INPUT_PULLUP);
pinMode(pin2, INPUT_PULLUP);
debouncer.attach(pin1);
debouncer.attach(pin2);
debouncer.interval(5);
}
void loop()
{
debouncer.update();
value = debouncer.read();
if (value == debouncer.fell())
{
Serial.write ('w');
}
if (value == debouncer.rose())
{
Serial.write ('w');
}
if (value == debouncer.fell())
{
Serial.write ('a');
}
if (value == debouncer.rose())
{
Serial.write ('a');
}
}
it responds with nothing 
and I want it to write once at the start and once at the end. Sorry that I was'nt clear..
You still need two debouncers, one for each pin - you are only using one and that cannot work. Look at an example
So I now changed my code to this:
#include "Bounce2.h"
#include "usToDE.h"
const int pin1 = 2;
const int pin2 = 3;
int value1 = 0;
int value2 = 0;
Bounce debouncer1 = Bounce();
Bounce debouncer2 = Bounce();
void setup()
{
Serial.begin(9600);
pinMode(pin1, INPUT_PULLUP);
pinMode(pin2, INPUT_PULLUP);
debouncer1.attach(pin1);
debouncer1.interval(5);
debouncer2.attach(pin2);
debouncer2.interval(5);
}
void loop()
{
debouncer1.update();
debouncer2.update();
value1 = debouncer1.read();
value2 = debouncer2.read();
if (value1 == debouncer1.fell())
{
Serial.write ('w');
}
if (value1 == debouncer1.rose())
{
Serial.write ('w');
}
if (value2 == debouncer2.fell())
{
Serial.write ('a');
}
if (value2 == debouncer2.rose())
{
Serial.write ('a');
}
}
and now I am getting endless w's/a's again if I connect the pin to ground. 
Is it possible that there is a problem with the board?
Have you looked at any of the library examples? You don't need the read()s and all those ifs. Isn't it a lot easier just to do something like
if (debouncer1.fell() || debouncer1.rose()) // when switch 1 is pressed or released
{
Serial.write ('w');
}
if (debouncer2.fell() || debouncer2.rose()) // when switch 2 is pressed or released
{
Serial.write ('a');
}
I don't know why but it fixed the problem. THANK YOU!
Now you need to work out why it is fixed (reading the examples for Bounce2 should help). Otherwise you won't have learned anything and you'll only get it wrong again the next time you try to do something like this.
Steve