Ecco un esempio di codice Arduino per un contatore di oggetti con un sensore di ostacoli, utilizzando un sensore ad ultrasuoni:
#include <NewPing.h>
#define TRIGGER_PIN 2
#define ECHO_PIN 3
#define MAX_DISTANCE 200
#define OBJECT_DISTANCE 10
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
int objectCount = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
delay(50);
int distance = sonar.ping_cm();
if (distance > 0 && distance <= OBJECT_DISTANCE) {
objectCount++;
Serial.print("Oggetto rilevato! Contatore: ");
Serial.println(objectCount);
delay(1000); // Ritardo per evitare la rilevazione multipla dello stesso oggetto
}
}
In questo codice, utilizziamo la libreria “NewPing” per facilitare l’uso del sensore ad ultrasuoni. Definiamo i pin del trigger e dell’eco del sensore come ‘TRIGGER_PIN
‘ e ‘ECHO_PIN
‘, rispettivamente. La costante ‘MAX_DISTANCE
‘ rappresenta la massima distanza di rilevamento del sensore ad ultrasuoni (in centimetri).
Nel metodo ‘setup()
‘, inizializziamo la comunicazione seriale a 9600 baud.
Nel metodo ‘loop()
‘, leggiamo continuamente la distanza rilevata dal sensore ad ultrasuoni utilizzando ‘sonar.ping_cm()
‘. Se la distanza è compresa tra ‘0’ e ‘OBJECT_DISTANCE
‘ (nel nostro esempio, 10 cm), incrementiamo ‘objectCount
‘ e stampiamo un messaggio sulla porta seriale indicando che un oggetto è stato rilevato insieme al valore attuale di ‘objectCount
‘. Aggiungiamo anche un ritardo di 1 secondo per evitare la rilevazione multipla dello stesso oggetto.
Puoi collegare il sensore ad ultrasuoni ai pin 2 (trigger) e 3 (echo) di Arduino, oppure puoi modificare i valori ‘TRIGGER_PIN
‘ e ‘ECHO_PIN
‘ nel codice in base alla configurazione del tuo collegamento.
Assicurati di aver installato la libreria “NewPing” nella tua IDE di Arduino prima di compilare ed eseguire il codice. Puoi farlo attraverso il menu “Sketch” -> “Includi libreria” -> “Gestisci librerie” nella tua IDE di Arduino.
Ricorda di collegare correttamente il sensore ad ultrasuoni all’Arduino e di impostare il monitor seriale a 9600 baud per visualizzare i risultati del contatore di oggetti.