Salve a tutti, ho da poco iniziato con arduino (ho acquistato un kit con lcd e sensore di distanza).
Ho cercato online il funzionamento del sensore ed il codice da caricare su arduino, ma ottengo dei valori sballati (ad esempio metto un oggetto a circa 2-3 cm ed ottengo 3078, il che diciamo sarebbe "corretto" se la misura che ottengo fosse espressa in mm, ma invece questa dovrebbe essere in cm giusto?)
il codice è :
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
#define triggerPort 8 // Pin 8 di Arduino
#define echoPort 9 // Pin 9 di Arduino
void setup() {
lcd.begin(16, 2);
lcd.print("Sensore HC-SR04");
pinMode(triggerPort, OUTPUT);
pinMode(echoPort, INPUT);
}
void loop() {
long duration, distance;
digitalWrite(triggerPort, LOW);
delayMicroseconds(2);
digitalWrite(triggerPort, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPort, LOW);
duration = pulseIn(echoPort, HIGH);
distance = duration / 58;
lcd.setCursor(0, 1);
lcd.print("Dist : ");
lcd.print(distance);
delay(1000);
}
Non capisco quale possa essere il problema..se fosse rotto non dovrebbe restituire nessun valore giusto ?
I collegamenti sono fatti bene..il display funziona quindi tralascio di scriverli, mentre quelli del sensore sono :
- VCC -> +5V
- Trig -> Pin 8 Arduino
- Echo -> Pin 1 Arduino
- GND -> Ground
Ho provato ad utilizzare l'echo anche sulle altre porte libere (6 - 7 - 9) ma il risultato non cambia..
Inizialmente (senza oggetti) viene visualizzato 3140 e poi lentamente (nel giro di dieci secondi) si stabilizza scendendo a 3081
Se piazzo un oggetto davanti (a distanza variabile) ottengo un oscillazione tra 3080 e 3081, ma sono valori ben lontani da quello reale

Sapete aiutarmi ??