Pages: [1]   Go Down
Author Topic: Mini Project: Ultrasounduino  (Read 288 times)
0 Members and 1 Guest are viewing this topic.
Milano
Offline Offline
Full Member
***
Karma: 7
Posts: 179
W8
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Buonasera, volevo pubblicare il mio primo progetto, ho preso spunto da un progetto simile. Non è un gran che ma è un inizio. Lo pubblico principalmente per ricevere consigli e magari ampliarlo.
Ho allegato lo schema fatto con Fritzing e un immagine del progetto, ho messo una fotoresistenza che per ora non uso.

Materiale:

Arduino Uno rev 3
Speaker
Ultrasuoni HC-SR04
Potenziometro 10k
Pulsante
2 Led
2 Resistenze 330k ohm
Resistenza 220 ohm
Fotoresistenza(per ora non utilizzata)


Code:

Code:
//Ultrasounduino v0.3
//Alessandro Todisco
//06.10.13

#define echoPin 11  // Echo Pin
#define trigPin 12  // Trigger Pin
#define speaker 8   //speaker
#define button 7    //pulsante
#define led_r 6     //led rosso
#define led_g 5     //led verde
#define pot A1      //potenziometro
//#define fot A0      //fotoresistenza

int note[200];   
int i;
int x=100;
int maximumRange = 400;    // range massimo
int minimumRange = 0;      // range minimo
long duration, distance;   // tempo per calcolare la distanza
int comodo;
long lastDebounceTime = 0; 
long debounceDelay = 200;   

void setup(){
//  pinMode(fot,INPUT);  //inizializzo fotoresistenza
  pinMode(pot,INPUT);     //inizializzo potenziometro
  pinMode(button,INPUT);  //inizializzo bottone
  pinMode(led_r,OUTPUT);  //led red
  pinMode(led_g,OUTPUT);  //green led
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  Serial.begin(9600);
  for(i=0;i<199;i++){     //CARICO IL VETTORE NOTE CON UNA FRECQUENZA DI +5
    note[i]=x;
    x=x+5;
  }
  comodo=0;
  }

void loop() {
 
  int rb=digitalRead(button);
   if((rb==HIGH)&&(comodo==0)){
     lastDebounceTime= millis();
     rb=LOW;
       //LED
     digitalWrite(led_r,LOW);
     digitalWrite(led_g,HIGH);
     do{
       int dur = analogRead(pot);     //ACQUISIZIONE POTENZIOMETRO
       if(dur<45){dur=45;}            //AL DI SOTTO DI 45 MILLI SECONDI LA CASSA STRIDULA
       digitalWrite(trigPin, LOW);      //ACQUISIZIONE DISTANZA ULTRASUONI
       delayMicroseconds(2);
       digitalWrite(trigPin, HIGH);
       delayMicroseconds(10);
       digitalWrite(trigPin, LOW);
       duration = pulseIn(echoPin, HIGH);
       distance = duration/58.2;           //CALCOLO DELLA DISTANZA
       //VERIFICO CHE LA IL RANGE SIA VALIDO
       if (distance >= maximumRange || distance <= minimumRange){   
         tone(speaker, note[198], 1000);   //SUONO
       }
       else {
         tone(speaker, note[distance], 1000);   //SUONO
       }
       //Debugging
       //Serial.println(distance);
       delay(dur);
       if((millis()- lastDebounceTime)>debounceDelay){   //VERIFICO SE SIA
         rb=digitalRead(7);
       }
     }
     while(rb!=HIGH);
     comodo=1;
     }
   else if((rb==HIGH)&&(comodo==1)){
      //LED
      digitalWrite(led_r,HIGH);
      digitalWrite(led_g,LOW);
      Serial.println("OFF");
      comodo=0;
      delay(1000);
   } 

}

Se avete voglia fatemi sapere cosa ne pensate ^^


* ultrasounduino.jpg (2264.99 KB, 3264x2448 - viewed 20 times.)

* ultrasounduino_bb.jpg (327.94 KB, 1872x1083 - viewed 23 times.)
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 270
Posts: 21859
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ma, spiegaci anche cosa fa di preciso il Tuo progetto.
A cosa serve il Ethernet Shield?
Ciao Uwe
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 270
Posts: 21859
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bello mio, i LED non si attaccano MAI senza resistenza alle uscite di Arduino!!!!
Non puoi usare i pin 11 e 12 se usi la Etherneth Shield.
Ciao Uwe
« Last Edit: October 08, 2013, 04:54:41 pm by uwefed » Logged

Milano
Offline Offline
Full Member
***
Karma: 7
Posts: 179
W8
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Dunque,  ho aggiunto le resistenze.  La etherneth non la uso per questo progetto. Lo speaker emette un suono suono sempre più acuto quanto sarà la distanza rilevata dall'ultrasuoni.
Logged

Offline Offline
Newbie
*
Karma: 3
Posts: 42
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

bello!
così non si deve guardare nessun display per sapere la distanza.

recentemente ho visto un progetto simile dove con 2 ultrasound, arduino e uno shield audio-synth hanno realizzato una specie di theremin, http://en.wikipedia.org/wiki/Theremin
« Last Edit: October 12, 2013, 04:20:28 pm by fermino » Logged

Pages: [1]   Go Up
Jump to: