Skip to content

Instantly share code, notes, and snippets.

@sebadima
Last active March 11, 2022 09:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sebadima/b5511ce27b5be7aa0930b9dce4da3c57 to your computer and use it in GitHub Desktop.
Save sebadima/b5511ce27b5be7aa0930b9dce4da3c57 to your computer and use it in GitHub Desktop.
/*
*
Trasmissione : PinTrasmissione Pin 11
Ricezione : PinRicezione Pin 12
VCC : +5VDC
GND : GND
*/
int PinTrasmissione = 11;
int PinRicezione = 12;
long durata, cm;
void setup() {
// Inizializza la porta seriale
Serial.begin (9600);
// Setta i pin di Arduino per l'input e l'output
pinMode(PinTrasmissione, OUTPUT);
pinMode(PinRicezione, INPUT );
}
void loop() {
// Il sensore viene attivato
// da impulsi più lunghi di 10 microsecondi
digitalWrite(PinTrasmissione, LOW);
delayMicroseconds(5);
digitalWrite(PinTrasmissione, HIGH);
delayMicroseconds(10);
digitalWrite(PinTrasmissione, LOW);
// Ora legge il segnale dal sensore: un impulso
// HIGH segna il tempo in microsecondi tra
// la trasmissione e la ricezione del segnale.
pinMode(PinRicezione, INPUT);
durata = pulseIn(PinRicezione, HIGH);
// Calcola la distanza partendo dalla durata:
// Divide inizialmente per 2 la durata per
// tenere conto di andata e ritorno.
cm = (durata/2) / 29.1;
// Dividiamo per 29.1 che sarebbe come moltiplicare
// per 0.0343 (i cm percorsi in un microsecondo
// da una onda sonora a livello del mare...).
Serial.print("cm:");
Serial.print(cm);
Serial.println();
// Scrive "cm: valore" + una riga vuota
delay(250);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment