Ciao a tutti,
sono in possesso di un Arduino Duemilanove e ho acquistato su ebay 3 sensori HC-SR04 e per tutti e tre ottengo sempre un valore letto dal pin Echo uguale a 0. Ho provato ad utilizzare sia la libreria Ultrasonic e sia gli sketch che gestiscono direttamente la scrittura sul trigger e la successiva lettura sul pin di Echo. Ma per tutti e 3 il valore e' sempre 0. L'arduino e' alimentato dalla porta USB su cui si leggono i dati.
Le prove sono state effettuate sia collegando i sensori direttamente alla board sfruttando i pin 11, 12, 13, GND sia collegando e testando con diversi altri pin tramite una bread board.
Un esempio di codice usato per i test e' il seguente:
const int trigPin = 12;
const int echoPin = 13;
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(11, OUTPUT); // Pin VCC sensor
digitalWrite(11, HIGH);
pinMode(echoPin, HIGH);
}
void loop() {
int duration, distance;
pinMode(trigPin, OUTPUT);
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(tringPin, HIGH);
delayMicroseconds(10);
digitalWrite(pingPin, LOW);
pinMode(echoPin, INPUT);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
Serial.print(distance);
Serial.println(" cm");
Serial.print(duration);
Serial.println(" duration");
delay(1000);
}
Ignorando l'algoritmo ottimale per trovare il valore piu' preciso (per esempio tramite media di campionamenti, ecc.) nei test che ho fatto con i sensori il valore duration e' sempre uguale a 0 ed ovviamente anche la distanza in cm sara' uguale.
Adesso presumendo che il codice sia corretto c'e' un modo per poter verificare se un sensore e' guasto oltre ad avere un valore sempre uguale a 0 come nel mio caso? Potrebbe essere un problema di insufficienza di alimentazione anche se i test sono stati fatti su una board con il solo sensore montato e nessun altro oggetto che assorba alimentazione?
Ho letto diversi thread e forum e ho trovato solo in questo:
ed in ultro il mio stesso problema. In questo non ci sono risposte nell'altro il problema era legato alla mancanza dei comandi che attivassero il pin 11 per alimentare il sensore. Ma nel mio caso questo puo' non essere paragonato visto che ho provato anche su una breadboard in cui alimentavo il sensore direttamente prendendo la corrente dal pin dei 5v.
Detto questo per concludere c'e' un modo per assicurarmi che effettivamente sia tutti 3 i sensori danneggiati e non ci sia un mio sbaglio da qualche parte?
Grazie in anticipo a tutti quelli che perderanno un po' di tempo nel rispondermi.
Geaaru