Monitor serial

Hola buenas noches a todos! estoy arrancando con arduino y estoy realizando un ejercicio. Lo que quiero hacer es que al presionar un boton, en el monitor serial me salga la palabra que yo quiera. Lo que estoy haciendo yo es esto (les escribo la parte del void loop nada mas):

while (digitalRead(pulsador)==HIGH)
{
Serial.println("Gaseosa Llena");
}

Tengo entendido que poniendo eso al estar presionado el boton me tendria que salir "Gaseosa Llena" pero algo esta fallando por que me sale "Gaseosa Llena" sin tener presionado el boton y no se que es lo que estoy haciendo mal.

Tengo un arduino mega 2560

Gracias

que circuito estas usando en el pulsador? pon el codigo completo para ver como esta inicializando el pin pulsador

int led = 13;
int pulsador = 10;
int pulsador1 = 9;

void setup(){

pinMode(led, OUTPUT);
pinMode(pulsador, INPUT);
pinMode(pulsador1, INPUT);
Serial.begin(9600);
}

void loop(){

while (digitalRead(pulsador)==HIGH)
{
Serial.println("Gaseosa Llena");
}

}

Este es el codigo completo, el ejercicio se trata de que al presionar el primer boton me salga un mensaje, y al presionar el otro boton me salga otro mensaje y al finalizar que prenda el led.

Lo que me esta pasando es que el mensaje "Gaseosa Llena" me sale sin que yo presione el boton y encima sale cada milisegundos y no para de salir, deja de salir cuando yo presiono el boton y tendria que ser al revez, tendria que salir al presionarlo.

Gracias

Esta claro el fallo aquí, pero debes poner un esquema de conexionado para poder explicartelo.

Normalmente se iniciativa con INPUT_PULLUP y se pone el pulsador hacia gdn.

Así lo tengo conectado.

Le estas metiendo un gnd o negativo a las entradas .en lugar de a gnd ,conecta los botones al pin 5v de la placa y el retorno de los botones tal como lo tienes ,a los pines de entrada.luego como te dice el compañero arriba ,o usas resistencias pulldown (son de 10 k), o si no tienes puedes activar las de pullup que lleva la placa incorporada,pero deberas cambiar la logica ,cuando presiones el boton tendras LOW y cuando lo sueltes tendras HIGH. Aqui,como activar la resistencia pullup:

Ahi pude hacerlo! muchisimas gracias, ahora tengo que ver como hacer que el arduino al detectar que ya presione los 2 botones se encienda el led y diga otro mensaje, tienen alguna idea? Gracias

Tu dime como lo harías, la solucion esta en el algebra de bool
O sea.. si presionas un pulsador y tambien esta presionado el segundo entonces?

cambia tu forma de programar que no esta mal pero ahora será de ayuda que lo hagas asi.
yo modifico tu codigo actual y luego tu en base a mi sugerencia sigues con el problema de los dos botones.

void loop(){
 int estadoP1;   // tambien lo podrias definir como global antes del setup y no hacerlo aca.

 estadoP1 = digitalRead(pulsador);
 
 if (estadoP1 == HIGH) {

   Serial.println("Gaseosa Llena");
 }

}

Ahora repite agregando otro pulsador, definiendo pin y leyendo su estado estadoP2 como corresponda y luego preguntas por ambos presionados.

El problema de los botones lo pude solucionar, lo que tengo que hacer ahora es que de alguna forma el arduino prenda el led y diga "Gaseosa bien empacada" una vez que ya haya presionado los botones. El led se tiene que prender y tiene que salir el mensaje luego de que se hayan apretado los 2 botones.

EDIT: Lo pude hacer, estoy a un pasito. El problema que estoy teniendo ahora es que sin tener pulsados los botones el monitor serial me manda igual las palabras que tendrian que mandarse al ser pulsado el boton, saben por que sera?

Gracias

Postea el codigo completo ,usando los tags adecuados para ello(lee las normas del foro si no sabes como postear codigo)

int led = 13;
int pulsador = 10;
int pulsador1 = 9;
boolean s1 = false;
boolean s2 = false;

void setup() {

pinMode (led, OUTPUT);
pinMode (pulsador, INPUT_PULLUP);
pinMode (pulsador1, INPUT_PULLUP);
Serial.begin(9600);

}

void loop() {

while (digitalRead(pulsador)==LOW)
{
delay(300);
Serial.println("Gaseosa Llena");

}

while (digitalRead(pulsador1)==LOW)
{
delay(300);
Serial.println("Gaseosa Tapada");

}

while (digitalRead(s1) == false && digitalRead(s2) == false)
{

digitalWrite(led, HIGH);
Serial.println ("Gaseosa bien empacada");

}

Lo que me faltaria es poder activar el led luego de que los 2 botones se presionen, primero S1 y luego S2

Si cambio el estado de pulsador y pulsador1 a HIGH el programa funciona pero el unico error es que en el monitor serial me sale "Gaseosa Llena" sin que yo presione el boton.

Tendrias que cambiar el while por if:
http://www.arduino.cc/en/Reference/Else
Luego tienes que evaluar :
Si boton1 pulsado y s1 es falso (el boton no se habia pulsado) entonces s1 es verdadero y
Imprimes por serial gaseosa llena
Si boton2 pulsado y s1 es falso (se ha pulsado boton2 antes que el 1) imprimir por serial boton2
Pulsado antes que boton1
si boton2 pulsado y s1 es verdadero(se ha pulsado boton2 y ya se habia pulsado el 1)
Enciendes led e imprimes ciclo completo o lo que sea .si quieres aqui puedes hacer un delay
de un par de segundos y apagar el led y poner las dos booleanas a false para volver a empezar.

Ahora traducelo tu a codigo que tengo la impresion de que te estamos haciendo los deberes....

pero si te dije que usaras if y sigues con el while?
No comprendo!

while ejecuta las cosas mientras se cumpla la acción indicada, si usas parte de la acción para algo y luego para otra cosa, dime como se da cuenta a cual atender.
Solo te pongo el loop

void loop(){

 s1 = digitalRead(pulsador);
 s2 = digitalRead(pulsador1);  // define pulsador2 con el pin que gustes antes del setup
 if (s1 == LOW) {
   Serial.println("Gaseosa Llena");
 }

 if (s2 == LOW) {
   Serial.println("Gaseosa Tapada");
 }
 if (s1== LOW&& s2 == LOW) {
    Serial.println ("Gaseosa  bien empacada");
 }
}