# problema con pulseIn

**URL:** <https://forum.arduino.cc/t/problema-con-pulsein/345247>\
**Category:** Generale\
**Created:** [November 7, 2015, 9:28pm UTC](https://forum.arduino.cc/t/problema-con-pulsein/345247 "2015-11-07T21:28:05Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![andre\_arduino2560](https://avatars.discourse-cdn.com/v4/letter/a/8797f3/32.png) [@andre\_arduino2560](https://forum.arduino.cc/u/andre_arduino2560)\
**Post date:** [November 7, 2015, 9:28pm UTC](https://forum.arduino.cc/t/problema-con-pulsein/345247/1 "2015-11-07T21:28:05Z")

</div>

ciao, ho riscontrato un problema con la funzione pulseIn che non riesco a risolvere. quando avvio il programma la funzione non va come dovrebbe, e mi ritarda il programma di circa un secondo come se fosse un delay. qualcuno sa spiegarmi il motivo?  
il programma è banale, do semplicemente un uscita alta per un certo tempo, e la pulsein dovrebbe restituirmi il tempo in questo caso 100ms. sul serial read, mi restituisce invece 0 e me lo scrive ogni secondo circa, invece dovrebbe scrivermelo ogni circ 100ms.  
il programma è questo:

* * *

void setup() {  
Serial.begin (9600);  
pinMode(2, OUTPUT);  
pinMode(3, INPUT\_PULLUP);  
}  
void loop() {  
digitalWrite(2, HIGH);  
delay(100);  
digitalWrite(2, LOW);  
duration = pulseIn(3, HIGH);  
Serial.println(duration);  
}

---

<div class="post-metadata">

**Author:** ![nid69ita](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/nid69ita/32/901258_2.png) [@nid69ita](https://forum.arduino.cc/u/nid69ita)\
**Post date:** [November 7, 2015, 11:33pm UTC](https://forum.arduino.cc/t/problema-con-pulsein/345247/2 "2015-11-07T23:33:17Z")

</div>

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: [Presentazioni](http://forum.arduino.cc/index.php?topic=113640.0)  
e a leggere il regolamento se non lo hai già fatto: [Regolamento](http://forum.arduino.cc/index.php?topic=149082.0)  
Qui una serie di link utili, non inerenti al tuo problema:

- qui una serie di schede by xxxPighi per i collegamenti elettronici vari: [ABC - Arduino Basic Connections](http://forum.arduino.cc/index.php?topic=146152.0)
- qui le pinout delle varie schede by xxxPighi: [Pinout](http://forum.arduino.cc/index.php?topic=151646.0)
- qui una serie di link generali utili: [Link Utili](http://forum.arduino.cc/index.php?topic=126861.0)

Il codice devi racchiuderlo nei tag code, vedi sezione 7 del [regolamento](http://forum.arduino.cc/index.php?topic=149082.0), spiega bene come fare ( pulsante \</\> ).  
Altrimenti parte del codice può essere visualizzata male o mancare perchè interpretato come attributo del testo stesso.

---

<div class="post-metadata">

**Author:** ![cyberhs](https://avatars.discourse-cdn.com/v4/letter/c/9de053/32.png) [@cyberhs](https://forum.arduino.cc/u/cyberhs)\
**Post date:** [November 8, 2015, 9:06am UTC](https://forum.arduino.cc/t/problema-con-pulsein/345247/3 "2015-11-08T09:06:44Z")

</div>

La funzione pulseIn restituisce un unsigned long integer che deve essere dichiarato:

unsigned long duration;

Inoltre, c'è un timeout di 1 secondo che puoi modificare:

duration = pulseIn(3, HIGH, 1000); // timeout = 1000 μs = 1 ms

---

<div class="post-metadata">

**Author:** ![andre\_arduino2560](https://avatars.discourse-cdn.com/v4/letter/a/8797f3/32.png) [@andre\_arduino2560](https://forum.arduino.cc/u/andre_arduino2560)\
**Post date:** [November 8, 2015, 10:18am UTC](https://forum.arduino.cc/t/problema-con-pulsein/345247/4 "2015-11-08T10:18:22Z")

</div>

si è vero grazie,ho saltato una riga  
però non mi va lo stesso

```cpp
unsigned long duration;

void setup() {
  Serial.begin (9600);
  pinMode(2, OUTPUT);
  pinMode(3, INPUT_PULLUP);
}

void loop() {
  digitalWrite(2, HIGH);
  delay(100);
  digitalWrite(2, LOW);
  duration = pulseIn(3, HIGH);
  Serial.println(duration);
}

```

anche se non cambio il timeout, con questo programma non dovrebbe restituitmi sul serial.read la durata dell' impulso in questo caso 100ms quindi 100000us?

---

<div class="post-metadata">

**Author:** ![brunello22](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/brunello22/32/214773_2.png) [@brunello22](https://forum.arduino.cc/u/brunello22)\
**Post date:** [November 8, 2015, 10:33am UTC](https://forum.arduino.cc/t/problema-con-pulsein/345247/5 "2015-11-08T10:33:11Z")

</div>

Quale impulso ?  
A meno che non tu lo invii dall'esterno, va' sempre in timeout

---

<div class="post-metadata">

**Author:** ![uwefed](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/uwefed/32/213736_2.png) [@uwefed](https://forum.arduino.cc/u/uwefed)\
**Post date:** [November 8, 2015, 10:35am UTC](https://forum.arduino.cc/t/problema-con-pulsein/345247/6 "2015-11-08T10:35:27Z")

</div>

> e mi ritarda il programma di circa un secondo come se fosse un delay. qualcuno sa spiegarmi il motivo?

è fisiologico; funziona cosí.

> do semplicemente un uscita alta per un certo tempo, e la pulsein dovrebbe restituirmi il tempo in questo caso 100ms.

Vuoi misurare con il pin 3 collegato al pin2 di quanto lungo é l' impulso creato col delay?  
Non puó funzionare perché la misura del impulso lo fai partire dopo che hai creato l' impulso.

Ciao Uwe

---

<div class="post-metadata">

**Author:** ![andre\_arduino2560](https://avatars.discourse-cdn.com/v4/letter/a/8797f3/32.png) [@andre\_arduino2560](https://forum.arduino.cc/u/andre_arduino2560)\
**Post date:** [November 8, 2015, 10:49am UTC](https://forum.arduino.cc/t/problema-con-pulsein/345247/7 "2015-11-08T10:49:59Z")

</div>

ho capito grazie ad entrambi. ma quindi come dovrei fare? se metto il delay alla fine del programma e quindi dopo la istruzione pulseIn non è sbagliato lo stesso?

---

<div class="post-metadata">

**Author:** ![uwefed](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/uwefed/32/213736_2.png) [@uwefed](https://forum.arduino.cc/u/uwefed)\
**Post date:** [November 8, 2015, 11:27am UTC](https://forum.arduino.cc/t/problema-con-pulsein/345247/8 "2015-11-08T11:27:52Z")

</div>

Devi usare 2 Arduini; uno per creare l'impulso e l' altro per leggerlo.  
Ciao Uwe

---

<div class="post-metadata">

**Author:** ![andre\_arduino2560](https://avatars.discourse-cdn.com/v4/letter/a/8797f3/32.png) [@andre\_arduino2560](https://forum.arduino.cc/u/andre_arduino2560)\
**Post date:** [November 8, 2015, 11:48am UTC](https://forum.arduino.cc/t/problema-con-pulsein/345247/9 "2015-11-08T11:48:40Z")

</div>

perfetto ho capito grazie!

nel caso in cui invece ho un sensore ad ultrasuoni srf05 e il programma è il seguente:

```cpp
void setup() {
  Serial.begin (9600);
  pinMode(2, OUTPUT);  // trigger pin
  pinMode(3, INPUT_PULLUP); // echo pin
}

void loop() {
  unsigned long duration;
  digitalWrite(2, HIGH);
  delay(10);
  digitalWrite(2, LOW);
  duration = pulseIn(3, HIGH);
  Serial.print(duration/58);
  Serial.println(" cm");
}

```

Ieri mi andava poi ho riaperto il programma dopo una decina di minuti e non mi andava più, segnandomi sempre 0 sul uscita seriale e dandomi i problemi di cui stavamo discutendo prima, ovvero che il pulsein mi funziona diciamo come un delay da 1 secondo. le uscite sull arduino non sono bruciate e i programmi senza il pulseIn vanno. com' è possibile che fino ad un certo punto questo programma è andato e poi basta?

qual' è il problema?

---

<div class="post-metadata">

**Author:** ![uwefed](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/uwefed/32/213736_2.png) [@uwefed](https://forum.arduino.cc/u/uwefed)\
**Post date:** [November 8, 2015, 11:46pm UTC](https://forum.arduino.cc/t/problema-con-pulsein/345247/10 "2015-11-08T23:46:55Z")

</div>

Si é staccato qualche cavetto?

Ciao Uwe

---

<div class="post-metadata">

**Author:** ![andre\_arduino2560](https://avatars.discourse-cdn.com/v4/letter/a/8797f3/32.png) [@andre\_arduino2560](https://forum.arduino.cc/u/andre_arduino2560)\
**Post date:** [November 15, 2015, 1:23pm UTC](https://forum.arduino.cc/t/problema-con-pulsein/345247/11 "2015-11-15T13:23:19Z")

</div>

ora va, era un problema con i tempi..grazie!

---

<div class="post-metadata">

**Author:** ![system](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/system/32/1140315_2.png) [@system](https://forum.arduino.cc/u/system)\
**Post date:** [May 7, 2021, 11:39am UTC](https://forum.arduino.cc/t/problema-con-pulsein/345247/12 "2021-05-07T11:39:30Z")

</div>

Closed on May 7, 2021, 11:39am UTC


