Seguimi su Youtubue
Iscriviti
Se desideri, puoi effettuare un'iscrizione gratuita al forum per entrare nella nostra community.
Ricerca Avanzata
Pubblicità Google AdSense
Answers
Se necessiti di aiuto, clicca il pulsante "Cerco Aiuto" (disponibile anche per i non iscritti).
I postatori più attivi del mese
Poderak
 
papat
 
Mrskizzo
 
Charade
 

Codice - Tutorial Arduino Base #19: Il sensore ultrasuoni

Vedere l'argomento precedente Vedere l'argomento seguente Andare in basso

Codice - Tutorial Arduino Base #19: Il sensore ultrasuoni

Messaggio Da Poderak il Sab Mag 21, 2016 6:56 pm


Il sensore ultrasuoni è un componente elettronico molto interessante in quanto ci permetterà di misura la distanza tra il sensore stesso ed un oggetto. Possiamo utilizzare tale sensore in differenti progetti come per esempio per creare un metro digitale, realizzare un sistema antifurto o per aiutare un robot a capire quanto c'è la presenza di un ostacolo.

I collegamenti del sensore sono i seguenti:

Il codice è il seguente:
Codice:
int triggerPort = 8;
int echoPort = 7;
long durata;
long distanza;

void setup() {
pinMode(triggerPort, OUTPUT);
pinMode(echoPort, INPUT);
Serial.begin(9600);
}

void loop() {
digitalWrite(triggerPort, LOW);
digitalWrite(triggerPort, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPort, LOW);

durata=pulseIn( echoPort, HIGH );
distanza=0.034*durata/2;
Serial.print("Distanza misurata: ");
Serial.print(distanza);
Serial.println("cm");
delay(1000);
}

La formula per la distanza è il prodotto tra la velocità del suono nell'aria e la durata del suono che impiega per tornare indietro (quindi s=v*t, dove 's' sta per spazio).


Poderak
♔ Amministratore

Messaggi Messaggi : 4131
Crediti Crediti : 11619
Reputazione Reputazione : 185
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 18
Località Località : Brescia

Vedere il profilo dell'utente http://www.wikiinfo.net

Tornare in alto Andare in basso

Re: Codice - Tutorial Arduino Base #19: Il sensore ultrasuoni

Messaggio Da papat il Gio Ago 18, 2016 6:16 pm

Codice:
int triggerPort = 8;
int echoPort = 7;
long durata;
long distanza;

void setup() {
pinMode(triggerPort, OUTPUT);
pinMode(echoPort, INPUT);
Serial.begin(9600);
}

void loop() {
digitalWrite(triggerPort, LOW);
digitalWrite(triggerPort, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPort, LOW);

durata=pulseIn( echoPort, HIGH );
distanza=0.034*durata/2;
Serial.print("Distanza misurata: ");
Serial.print(distanza);
Serial.println("cm");
delay(1000);
}                                                            


#include <AFMotor.h>
//inizializzazione dei motori
AF_DCMotor m1(1);
AF_DCMotor m2(2);
AF_DCMotor m3(3);
AF_DCMotor m4(4);

void setup() {
  Serial.begin(9600);           //avvio test motori su serial monitor
  Serial.println("Motor test!");
  m1.run(RELEASE); //il motore parte spento
  m2.run(RELEASE); //il motore parte spento
  m3.run(RELEASE); //il motore parte spento
  m4.run(RELEASE); //il motore parte spento
  delay(2000);
}

void loop() {
  m1.run(BACKWARD); //il motore parte nella direzione impostata
  m2.run(BACKWARD); //il motore parte nella direzione impostata
  m3.run(BACKWARD); //il motore parte nella direzione impostata
  m4.run(BACKWARD); //il motore parte nella direzione impostata
  m1.setSpeed(140); //imposto una velocita' da 0 a 255
  m2.setSpeed(140); //imposto una velocita' da 0 a 255
  m3.setSpeed(140); //imposto una velocita' da 0 a 255
  m4.setSpeed(140); //imposto una velocita' da 0 a 255  
  delay(1000);
  m1.run(BACKWARD); //il motore parte nella direzione impostata
  m2.run(BACKWARD); //il motore parte nella direzione impostata
  m3.run(BACKWARD); //il motore parte nella direzione impostata
  m4.run(BACKWARD); //il motore parte nella direzione impostata
  m1.setSpeed(255); //imposto una velocita' da 0 a 255
  m2.setSpeed(20); //imposto una velocita' da 0 a 255
  m3.setSpeed(20); //imposto una velocita' da 0 a 255
  m4.setSpeed(255);  //imposto una velocita' da 0 a 255
  delay(900);
}
Rivedimi lo sketch sopra postato codice pilotare robot+ sensore ultrasuoni
perche' mi dice "redefinition of setup().Ciao e grazie


Ultima modifica di Admin il Gio Ago 18, 2016 6:17 pm, modificato 1 volta (Ragione : corretta struttura messaggio)

papat
Maker

Messaggi Messaggi : 166
Crediti Crediti : 248
Reputazione Reputazione : 3
Data d'iscrizione Data d'iscrizione : 17.10.15
Età Età : 70
Località Località : montalbano ionico

Vedere il profilo dell'utente

Tornare in alto Andare in basso

Re: Codice - Tutorial Arduino Base #19: Il sensore ultrasuoni

Messaggio Da Poderak il Gio Ago 18, 2016 6:19 pm

Hai combinato un macello! Razz Ci sono due setup e codice messo un po' a caso!! Ciao!

Poderak
♔ Amministratore

Messaggi Messaggi : 4131
Crediti Crediti : 11619
Reputazione Reputazione : 185
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 18
Località Località : Brescia

Vedere il profilo dell'utente http://www.wikiinfo.net

Tornare in alto Andare in basso

Re: Codice - Tutorial Arduino Base #19: Il sensore ultrasuoni

Messaggio Da papat il Gio Ago 18, 2016 6:20 pm

rimettimelo a posto

papat
Maker

Messaggi Messaggi : 166
Crediti Crediti : 248
Reputazione Reputazione : 3
Data d'iscrizione Data d'iscrizione : 17.10.15
Età Età : 70
Località Località : montalbano ionico

Vedere il profilo dell'utente

Tornare in alto Andare in basso

Re: Codice - Tutorial Arduino Base #19: Il sensore ultrasuoni

Messaggio Da Poderak il Gio Ago 18, 2016 6:34 pm

Così è a posto:
Codice:
#include <AFMotor.h>
//inizializzazione dei motori
AF_DCMotor m1(1);
AF_DCMotor m2(2);
AF_DCMotor m3(3);
AF_DCMotor m4(4);

int triggerPort = 8;
int echoPort = 7;
long durata;
long distanza;

void setup() {
pinMode(triggerPort, OUTPUT);
pinMode(echoPort, INPUT);
Serial.begin(9600);
  Serial.println("Motor test!");
  m1.run(RELEASE); //il motore parte spento
  m2.run(RELEASE); //il motore parte spento
  m3.run(RELEASE); //il motore parte spento
  m4.run(RELEASE); //il motore parte spento
  delay(2000);
}

void loop() {
digitalWrite(triggerPort, LOW);
digitalWrite(triggerPort, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPort, LOW);

durata=pulseIn( echoPort, HIGH );
distanza=0.034*durata/2;
Serial.print("Distanza misurata: ");
Serial.print(distanza);
Serial.println("cm");
delay(1000);
m1.run(BACKWARD); //il motore parte nella direzione impostata
  m2.run(BACKWARD); //il motore parte nella direzione impostata
  m3.run(BACKWARD); //il motore parte nella direzione impostata
  m4.run(BACKWARD); //il motore parte nella direzione impostata
  m1.setSpeed(140); //imposto una velocita' da 0 a 255
  m2.setSpeed(140); //imposto una velocita' da 0 a 255
  m3.setSpeed(140); //imposto una velocita' da 0 a 255
  m4.setSpeed(140); //imposto una velocita' da 0 a 255 
  delay(1000);
  m1.run(BACKWARD); //il motore parte nella direzione impostata
  m2.run(BACKWARD); //il motore parte nella direzione impostata
  m3.run(BACKWARD); //il motore parte nella direzione impostata
  m4.run(BACKWARD); //il motore parte nella direzione impostata
  m1.setSpeed(255); //imposto una velocita' da 0 a 255
  m2.setSpeed(20); //imposto una velocita' da 0 a 255
  m3.setSpeed(20); //imposto una velocita' da 0 a 255
  m4.setSpeed(255);  //imposto una velocita' da 0 a 255
  delay(900);
}                                                           
Ho visto che hai semplicemente copiato ed incollato due codice, senza in qualche modo "unirli". Inoltre così non fa niente, non ha utilità. Dato che ancora non ho fatto il codice per il robot autonomo, dovresti cercare di trovare una soluzione nel frattempo Razz.

A presto Ciao!

Poderak
♔ Amministratore

Messaggi Messaggi : 4131
Crediti Crediti : 11619
Reputazione Reputazione : 185
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 18
Località Località : Brescia

Vedere il profilo dell'utente http://www.wikiinfo.net

Tornare in alto Andare in basso

Re: Codice - Tutorial Arduino Base #19: Il sensore ultrasuoni

Messaggio Da papat il Gio Ago 18, 2016 6:40 pm

in effetti a me interessa proprio quello.Inventatelo.Ciao

papat
Maker

Messaggi Messaggi : 166
Crediti Crediti : 248
Reputazione Reputazione : 3
Data d'iscrizione Data d'iscrizione : 17.10.15
Età Età : 70
Località Località : montalbano ionico

Vedere il profilo dell'utente

Tornare in alto Andare in basso

Vedere l'argomento precedente Vedere l'argomento seguente Tornare in alto


 
Permesso di questo forum:
Non puoi rispondere agli argomenti in questo forum