Nota
Ciao, benvenuto nella SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Community su Facebook! Approfondisci le tue conoscenze su Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.
Perché unirti?
Supporto esperto: Risolvi problemi post-vendita e sfide tecniche con l’aiuto della nostra community e del nostro team.
Impara e condividi: Scambia consigli e tutorial per migliorare le tue competenze.
Anteprime esclusive: Ottieni accesso anticipato agli annunci di nuovi prodotti e anteprime.
Sconti speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
Promozioni festive e omaggi: Partecipa a omaggi e promozioni festive.
👉 Sei pronto a esplorare e creare con noi? Clicca su [Qui] e unisciti oggi!
5.8 Funzione Definita dall’Utente¶
In C, possiamo dividere un programma grande in blocchi di base noti come funzioni. Una funzione contiene un insieme di istruzioni di programmazione racchiuse da {}. Una funzione può essere chiamata più volte per fornire riutilizzabilità e modularità al programma C. In altre parole, possiamo dire che l’insieme delle funzioni crea un programma. La funzione è nota anche come procedura o sottoprogramma in altri linguaggi di programmazione.
Ecco alcuni vantaggi delle funzioni.
Usando le funzioni, possiamo evitare di riscrivere la stessa logica/codice ripetutamente in un programma.
Possiamo chiamare funzioni C un numero qualsiasi di volte in un programma e da qualsiasi punto.
Possiamo tracciare un programma C grande più facilmente quando è diviso in più funzioni.
Il riutilizzo è il principale vantaggio delle funzioni in C.
Tuttavia, la chiamata a una funzione è sempre un sovraccarico in un programma C.
Ci sono due tipi di funzioni nella programmazione C:
Funzioni di libreria: le funzioni dichiarate nei file di intestazione C.
Funzioni definite dall’utente: le funzioni create dal programmatore C, che possono essere utilizzate più volte. Questo riduce la complessità di un programma grande e ottimizza il codice.
In questo progetto, definiamo una funzione per leggere il valore del modulo ultrasonico.
Componenti necessari
In questo progetto, abbiamo bisogno dei seguenti componenti.
È sicuramente conveniente acquistare un kit completo, ecco il link:
Nome |
ELEMENTI IN QUESTO KIT |
LINK |
|---|---|---|
3 in 1 Starter Kit |
380+ |
Puoi anche acquistarli separatamente dai link sottostanti.
INTRODUZIONE AI COMPONENTI |
LINK PER L’ACQUISTO |
|---|---|
Schema
Collegamenti
Codice
Nota
Apri il file
5.8.user_function.inonel percorso3in1-kit\basic_project\5.8.user_function.Oppure copia questo codice nell”Arduino IDE.
Oppure carica il codice tramite il Arduino Web Editor.
Dopo che il codice è stato caricato con successo, il monitor seriale stamperà la distanza tra il sensore ultrasonico e l’ostacolo davanti.
Come funziona?
Per l’applicazione del sensore ultrasonico, possiamo controllare direttamente la sottoprogramma.
float readSensorData(){// ...}
Il trigPin del modulo ultrasonico trasmette un segnale d’onda quadra di 10us ogni 2us.
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
Il echoPin riceve un segnale di livello alto se c’è un ostacolo entro il raggio e usa la funzione pulseIn() per registrare il tempo dal segnale inviato a quello ricevuto.
microsecond=pulseIn(echoPin, HIGH);
La velocità del suono è 340 m/s o 29 microsecondi per centimetro.
Questo dà la distanza percorsa dall’onda quadra, andata e ritorno, quindi dividiamo per 2 per ottenere la distanza dell’ostacolo.
float distance = microsecond / 29.00 / 2;
Nota che il sensore ultrasonico sospenderà il programma mentre sta funzionando, il che può causare ritardi durante la scrittura di progetti complessi.