ultra_so_basic_4b
Aquest exercici consisteix en crear dues zones i fer que soni un mp3 en funció si estas a una zona o a l'altre.
S'ha creat una variable que és "dis" a la que se li ha posat un valor 20. Per programació diferenciem una zona des de 20 fins al sensor i una altra a partir de 20 fins a 50. Al codi podeu veure els detalls.
Hem assignat un so "read" i una ltra "green" per fer-los coincidir amb les zones marcades amb cartolines dels dos colors.
Codi per copiar
/***************************************************/
//Joan Gelabert i Jesús Arbués. www.sacosta.org
//està feta per comprovar que la shield mp3 d'elechouse funciona activada per un sensor de ultrasons HC-SR04.
//activa un só si estàs aprop i un altre só i si estàs lluny, el límit ho fixa la variable dis
//els sons són el de la carpeta sons animals. So "green" i so "read"
#define trigPin 2 //hem modificat els pins del sensor d'ultrasons per no coincidir amb els pins de l'elechouse
#define echoPin 3 //en els dos aparells originàriament empraven el 7 i 8
#include <SoftwareSerial.h>
#include <MP3.h>
SoftwareSerial Geno(7,8); // Rx , Tx
/** defineix mp3 class */
MP3 mp3;
int dis = 20; // distància de comprovació
// Llibreria per a ultrasons
#include "Ultrasonic.h"
Ultrasonic ultrasonido(trigPin,echoPin);
void setup() {
Serial.begin (9600);
pinMode(trigPin, OUTPUT); // Establim el pin trig com sortida
pinMode(echoPin, INPUT); // Establim el pin echo com entrada
//so
delay (2000); //s'ha de deixar uns segons per estabilitzar shield
mp3.begin(MP3_SOFTWARE_SERIAL); // selecciona software serial
/** fixa volum de sortida de so */
mp3.volume(0x1F);
/** selecciona MP3 Shield SINGLE mode */
mp3.set_mode(MP3::SINGLE);
// fi so
}
void loop() {
int distancia;
distancia = ultrasonido.Ranging(CM);
if (distancia < dis){
Serial.print("Distancia: ");
Serial.print(ultrasonido.Ranging(CM));
Serial.println(" cm");
so_1();//so english read
delay(1500);
}
else if(distancia >= dis && distancia < 30){
Serial.print("Distancia: ");
Serial.print(ultrasonido.Ranging(CM));
Serial.println(" cm");
so_2();//so english green
delay(1500);
}
}
void so_1(){
mp3.volume(0x1F);
mp3.play_spi_flash(0x0001);//so en english read
delay (1500);//durada so read
}
void so_2(){
mp3.volume(0x1F);
mp3.play_spi_flash(0x0002);//so en english green
delay (1500);//durada del so green
}
Obra publicada con Licencia Creative Commons Reconocimiento Compartir igual 4.0