Pages: [1]   Go Down
Author Topic: noTone  (Read 1805 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 18
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Buenas tardes:

Estoy haciendo un  sketch para arduino que se trata del control de un semáforo, tanto el de vehículos como el de peatones, este punto lo tengo resuelto, pero le quiero añadir sonido para invidentes, para generarlo, no tengo problema , lo hago con tone (speaker), pero no consigo pararlo. "noTone" no funciona. ¿Que hago mal?.

En espera de vuestros comentarios.

Saludos
Albert
« Last Edit: April 29, 2012, 06:13:20 pm by coleoptero » Logged

0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 52
Enginyeria Geek
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola Albert.

Cuelga el codigo para ayudarte. Si no es dificil de imaginar.

Salut!
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 18
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Aqui lo tienes:


class Button extends com.muvium.compatibility.arduino.Arduino{//Automatically Added VBB Framework Code - do not remove
int ledPin1 = 1; // LED en el pin digital 1
int ledPin2 = 2; // LED en el pin digital 2
int ledPin3 = 3; // LED en el pin digital 3
int ledPin4 = 4; // LED en el pin digital 4
int ledPin5 = 5; // LED en el pin digital 5
int speaker = 8;




void setup() // configura los pines de salida
{
   pinMode(ledPin1, OUTPUT); // configura el pin 1 como salida
   pinMode(ledPin2, OUTPUT); // configura el pin 2 como salida
   pinMode(ledPin3, OUTPUT); // configura el pin 3 como salida
   pinMode(ledPin4, OUTPUT); // configura el pin 4 como salida
   pinMode(ledPin5, OUTPUT); // configura el pin 5 como salida
   pinMode(speaker, OUTPUT);
}
void loop() // inicia el bucle del programa
{
   
   digitalWrite(ledPin3, LOW); // desactiva el LED ROJO
   digitalWrite(ledPin1, HIGH); // activa el LED VERDE
   digitalWrite(ledPin5, HIGH); // activa el LED ROJO PEATONES
   delay(9000); // espera 9 segundos
   digitalWrite(ledPin1, LOW); // desactiva el LED VERDE
   digitalWrite(ledPin2, HIGH); // activa el LED AMBAR
   delay(3000); // espera 3 segundos
   digitalWrite(ledPin2, LOW); // desactiva el LED AMBAR
   digitalWrite(ledPin3,HIGH); // activa el LED ROJO
   delay(1000); // espera 1 segundo
   digitalWrite(ledPin5, LOW); // desactiva el LED ROJO PEATONES
   delay(250);   // espera  1/4 degundo
   digitalWrite(ledPin4, HIGH); // activa el LED VERDE PEATONES
   tone (speaker, 5000);       
   delay(9000); // espera 9 segundos
   noTOne(speaker);
   
      
for (int i = 0; i<=5; i++) // repetir bucle 5 veces
{      
   digitalWrite(ledPin4, LOW); //parpadeo LUZ VERDE peatones
   delay(500); // espera 1/2 segundo
   digitalWrite(ledPin4, HIGH); // parpadeo LUZ VERDE peatones
   delay(250); // espera 1/2 segundo

}
   
   digitalWrite(ledPin3, LOW); // desactiva el LED ROJO
    digitalWrite(ledPin4, LOW); // desactiva LUZ VERDE peatones
   digitalWrite(ledPin5, HIGH); // activa el LED ROJO PEATONES   
   digitalWrite(ledPin3, HIGH); // activa el LED ROJO   
   delay(1000); // espera 1 segundo
}
   
}
Logged

0
Offline Offline
Full Member
***
Karma: 2
Posts: 105
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ojo con las mayúsculas:
no es lo mismo
    noTOne(speaker);
    noTone(speaker);
a ver si el fallo es ese.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 18
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

No, el problema no es la "O", fue un error al copiar. Deber ser otro.
Agradecería si alguien pudiese darme alguna solución.

Saludos
Albert
Logged

0
Offline Offline
Edison Member
*
Karma: 8
Posts: 1040
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


Si solamente quieres usarlo 9 segundos puedes definirlo en el tone, quitando el noTone
tone (speaker, 5000, 9000);   
Logged

Trabajando en ...

    * Control Domotico (En montaje ...)
    http://casitadomotica.blogspot.com/
 

[url=https://bitbucket.org/fmalpartida

0
Offline Offline
Newbie
*
Karma: 0
Posts: 18
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Buenas tardes:

En primer lugar, gracias por la respuesta. En segúndo lugar, no quiero usar el tone solo los 9 segundos, esta allí, como prueba, en realidad lo que necesito es que allí donde está, haga sonido intermitente durante esos nueve segundos, después, en otra parte del sketch el ritmo del "pitido" cambia, pero primero debo solucionar el como detener esa instrucción "tone".

En espera de vuestros comentarios".

Saludos
Albert
Logged

Donostia - Spain
Offline Offline
Newbie
*
Karma: 0
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Si quieres que luego haga otro pitido porque no lo defines después?¿ esto es en programación si estas ejecutando un comando a través de un pin y le reasignas otro comando a ese pin se sobrescribe y se ejecuta el segundo comando.
y al segundo si quieres ya le defines un tiempo como te sugirió
flico
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 18
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Buenos dias:

Mas o menos lo entiendo, y a mi modo, entiendo que no estoy reasignando otro sonido a ese mismo pin. Lo que pretendo es que dentro de un for me genere ese pitido. Se trata de que el pitido vaya al mismo tiempo que el parpadeo de la luz verde de peatones, y lo que me ocurre es que solo suena una vez, en lugar de repetir cinco veces.

for (int i = 0; i<=5; i++) // repetir bucle 5 veces
{     
   digitalWrite(ledPin4, LOW); //parpadeo LUZ VERDE peatones
   delay(500); // espera 1/2 segundo
  tone (speaker, 1000, 500);
   digitalWrite(ledPin4, HIGH); // parpadeo LUZ VERDE peatones
   delay(250); // espera 1/2 segundo

}
Logged

Pages: [1]   Go Up
Jump to: