Lulius21:
Hola!!! alguien que me ayude a corregir mi código porque no lo puedo compilar quiero activar los sensores vía bluetooth hc-06 , tengo arduino uno .El de vibración ya me corrio con el boton a, pero el ultrasonico no tengo 4 botones a(activar lo programado por sensor vibracion),b(apagar),c(activar lo programado en el ultrasonico),d(apagar)
Gracias!!
les dejo el codigo
#include <pitches.h>
#include <pitches.h>
#include <Ultrasonic.h>
#include "Ultrasonic.h" //Libreria del sonar
Ultrasonic ultrasonic(6,7); //Trigger, Echo
// Señal acustica
#include "pitches.h" //Libreria que contiene las notas musicales
//int sensePin=3; //led13=13
char estado=0; // variable Bluetooth a,b,c,d
// VARIABLES ULTRASONICO
int sonidoultra = NOTE_C8; //Declaramos la nota musical elegida como el sonido
int sonarultra(8); //Declaramos la variable sonar
//VARIABLES VIBRACION
int GroundPin= 2;
int sensePin= 3;
int sonido = NOTE_C7;
int sonar(8);
//defines normal and threshold voltage levels
int threshold= 500;
void setup()
{
//Serial.begin(9600); //Inicio de la comunicacion serie a 9600 baudios
Serial.begin(9600);
pinMode(GroundPin, OUTPUT);
digitalWrite(GroundPin, HIGH);
pinMode(sonar, OUTPUT);
pinMode(sensePin,OUTPUT);
}
void loop()
{
sonar = sensePin;
Serial.println(sonar);
int reading= analogRead(sensePin);
if(Serial.available()>0){
estado = Serial.read();
}
if (estado =='a'){
digitalWrite(sensePin,HIGH);
digitalWrite(GroundPin,HIGH);
pinMode(sonar, OUTPUT);
pinMode(sensePin,OUTPUT);
if (reading > threshold)
{
sonar=sensePin;
tone(8,sonido);
delay(5500);
noTone(8);
delay(1000);
digitalWrite(sonar, LOW);
digitalWrite(sensePin, LOW);
}
if(estado =='b'){
digitalWrite(sensePin,LOW);
digitalWrite(GroundPin,LOW);
pinMode(sonar, OUTPUT);
pinMode(sensePin,OUTPUT);
}
if (estado =='c'){
sonarultra = ultrasonic.Ranging(CM); //Leemos la distancia del sonar
//La funcion ultrasonic.ranging() viene declarada en la libreria del sonar
//Calcula la distancia a la que rebota una señal enviada basandose en el
//tiempo que tarda en recorrer dicha distancia, devolviendonos la distancia
//en centimetros, lista para utilizar en casos de medicion por ultrasonidos.
while (sonarultra > 6) //Mientras que la distancia sea menor a 60 cm
{
noTone(8); //Mantenemos el sonido apagado
//Delay dependiente del valor del sonar. Si la distancia se reduce
//el delay es menor y la señal acustica sonara con mayor frecuencia.
//Si la distancia aumenta, el delay aumenta, disminuyendo la frecuencia
//con la que suenan los pitidos.
tone(8, sonidoultra); //Señal acustica de aviso
delay(100); //Delay para mantener la señal acustica 0,1 segundos minimo
noTone(8); //Apagamos el sonido
while (sonarultra < 8) //Si la distancia del sonar es menor que 10 cm
{
tone(8, sonidoultra); //Suena sin interrupciones indicando la proximidad del objeto
sonarultra = ultrasonic.Ranging(CM); //Distancia del sonar
}
sonarultra = ultrasonic.Ranging(CM); //Leemos la distancia del sonar para volver a empezar
}
}