Kod Arduino i wideo dla modułu odległościowego Sharp IR
W tym samouczku dowiemy się, jak używać modułu pomiaru odległości Sharp IR do mierzenia odległości i wyzwalania akcji na podstawie wykrytej odległości. Ten projekt pokaże, jak skonfigurować sprzęt i napisać kod Arduino do odczytu pomiarów odległości oraz aktywacji brzęczyka, gdy obiekt zostanie wykryty w określonym zakresie. Nauczysz się, jak połączyć komponenty i zrozumiesz kluczowe identyfikatory w kodzie.

Do tego projektu użyjemy czujnika Sharp IR, który emituje światło podczerwone i mierzy odległość do obiektu na podstawie odbitego światła. Gdy obiekt zostanie wykryty w zasięgu, brzęczyk zostanie wyzwolony, co stanowi prosty, ale skuteczny sposób na zademonstrowanie możliwości modułu Sharp IR. Koniecznie obejrzyj wideo, aby zobaczyć wizualny przewodnik po konfiguracji i kodzie (na wideo w 00:00).
Wyjaśnienie sprzętu
Główne komponenty tego projektu to czujnik odległości Sharp IR, płytka Arduino i brzęczyk. Czujnik Sharp IR składa się z nadajnika i odbiornika, które współpracują ze sobą w celu pomiaru odległości. Gdy światło podczerwone z nadajnika trafi na obiekt, odbija się z powrotem do odbiornika, co pozwala obliczyć odległość na podstawie czasu potrzebnego na powrót światła.
Arduino działa jako kontroler, odczytując pomiary odległości z czujnika IR i sterując brzęczykiem na podstawie odczytów. Brzęczyk będzie emitował dźwięk, gdy obiekt zostanie wykryty w określonym zakresie, co czyni tę konfigurację przydatną w zastosowaniach takich jak wykrywanie przeszkód w robotyce.
Szczegóły z karty katalogowej
| Producent | Sharp |
|---|---|
| Numer części | GP2Y0A21YK0F |
| Napięcie logiczne/IO | 5 V |
| Napięcie zasilania | 4,5 – 5,5 V |
| Napięcie wyjściowe | 0,4 – 2,5 V |
| Zakres pomiarowy | 10 – 80 cm |
| Czas odpowiedzi | 50 ms |
| Prąd wyjściowy | 20 mA |
| Obudowa | Moduł |
| Uwagi / warianty | Dostępny w wielu zakresach odległości |
- Zapewnij prawidłowe zasilanie (4,5 – 5,5 V), aby uniknąć uszkodzeń.
- W razie potrzeby użyj rezystora do ograniczenia prądu.
- Utrzymuj czujnik w czystości, aby zapewnić dokładne odczyty.
- Uważaj na zakłócenia od światła otoczenia.
- Okablowanie musi być pewne, aby zapobiec przerywanym połączeniom.
Instrukcje okablowania

Aby podłączyć moduł pomiaru odległości Sharp IR, podłącz pin masy modułu do pinu GND na Arduino. Następnie podłącz pin VCC modułu do pinu 5V na Arduino. Pin wyjścia sygnałowego z modułu Sharp IR należy podłączyć do pinu 2 na Arduino, który będzie odczytywał dane o odległości.
Dla brzęczyka podłącz dłuższy pin (dodatni) do pinu 8 na Arduino, a krótszy pin (ujemny) do GND. Upewnij się, że wszystkie połączenia są pewne i że komponenty są prawidłowo zasilane, aby zapewnić właściwe działanie.
Przykłady kodu i omówienie
Poniżej znajduje się krótki fragment kodu Arduino, w którym definiujemy piny i konfigurujemy czujnik. Identyfikator IR jest zdefiniowany jako pin analogowy używany do sygnału czujnika.
#define IR A0 // zdefiniuj pin sygnałowy
SharpIR SharpIR(IR, model); // Zainicjalizuj SharpIR z zdefiniowanym pinem
Ten kod inicjalizuje czujnik Sharp IR na określonym pinie analogowym. Identyfikator model określa typ używanego czujnika, który w tym przypadku jest ustawiony na 1080 dla modelu GP2Y0A21YK0F.
W funkcji setup rozpoczynamy komunikację szeregową, aby monitorować odczyty odległości:
void setup() {
Serial.begin(9600); // Inicjalizacja komunikacji szeregowej
Serial.println("Robojax Sharp IR "); // Wydrukuj komunikat do monitora szeregowego
}
Funkcja setup inicjalizuje komunikację szeregową z prędkością 9600 bodów, co pozwala Arduino wysyłać dane o odległości do monitora szeregowego w celu obserwacji.
W funkcji loop odczytujemy odległość z czujnika i wypisujemy ją:
void loop() {
int dis = SharpIR.distance(); // Odczytaj odległość
Serial.print("Średnia odległość: "); // Wydrukuj odległość do monitora szeregowego
Serial.println(dis); // Wypisz pomiar odległości
}
Ten fragment pokazuje, jak w sposób ciągły odczytywać odległość i wypisywać ją na monitorze szeregowym. Zmienna dis przechowuje wartość odległości zmierzonej przez czujnik Sharp IR.
Demonstracja / Czego się spodziewać
Po zakończeniu konfiguracji możesz spodziewać się, że brzęczyk będzie emitował dźwięk za każdym razem, gdy obiekt zostanie wykryty w określonym zakresie czujnika Sharp IR. Monitor szeregowy będzie wyświetlał „Średnia odległość” wraz ze zmierzoną odległością w centymetrach. Jeśli w zasięgu nie ma żadnych obiektów, monitor również to wskaże (na wideo w 02:30).
Typowe pułapki obejmują zapewnienie prawidłowego ustawienia czujnika i braku przeszkód blokujących sygnał podczerwony. Sprawdź również, czy zasilanie jest stabilne, aby uniknąć nieregularnych odczytów.
Znaczniki czasu wideo
- 00:00 - Wprowadzenie do projektu
- 02:30 - Demonstracja działania czujnika
- 03:45 - Wyjaśnienie okablowania
- 05:00 - Omówienie kodu
/*
* Sharp IR (infrared) distance measurement module for Arduino
* Measures the distance in cm.
* Original library: https://github.com/guillaume-rico/SharpIR
* Watch video instruction for this code: https://youtu.be/GL8dkw1NbMc
*
* Full explanation of this code and wiring diagram is available at
* my Arduino Course at Udemy.com here: http://robojax.com/L/?id=62
* Written by Ahmad Shamshiri on Feb 03, 2018 at 07:34
* in Ajax, Ontario, Canada. www.robojax.com
*
* Get this code and other Arduino codes from Robojax.com
Learn Arduino step by step in a structured course with all material, wiring diagrams, and libraries
all in one place.
If you found this tutorial helpful, please support me so I can continue creating
content like this.
or make a donation using PayPal http://robojax.com/L/?id=64
* * This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.*
* This code has been downloaded from Robojax.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
*/
// Sharp IR code for Robojax.com
#include <SharpIR.h>
#define IR A0 // define signal pin
#define model 1080 // used 1080 because model GP2Y0A21YK0F is used
// Sharp IR code for Robojax.com
// ir: the pin where your sensor is attached
// model: an int that determines your sensor: 1080 for GP2Y0A21Y
// 20150 for GP2Y0A02Y
// 430 for GP2Y0A41SK
/*
2 to 15 cm GP2Y0A51SK0F use 1080
4 to 30 cm GP2Y0A41SK0F / GP2Y0AF30 series use 430
10 to 80 cm GP2Y0A21YK0F use 1080
10 to 150 cm GP2Y0A60SZLF use 10150
20 to 150 cm GP2Y0A02YK0F use 20150
100 to 550 cm GP2Y0A710K0F use 100550
*/
SharpIR SharpIR(IR, model);
void setup() {
// Sharp IR code for Robojax.com
Serial.begin(9600);
Serial.println("Robojax Sharp IR ");
}
void loop() {
// Sharp IR code for Robojax.com
delay(500);
unsigned long startTime=millis(); // takes the time before the loop on the library begins
int dis=SharpIR.distance(); // this returns the distance to the object you're measuring
// Sharp IR code for Robojax.com
Serial.print("Mean distance: "); // returns it to the serial monitor
Serial.println(dis);
//Serial.println(analogRead(A0));
unsigned long endTime=millis()-startTime; // the following gives you the time taken to get the measurement
Serial.print("Time taken (ms): ");
Serial.println(endTime);
// Sharp IR code for Robojax.com
}
Rzeczy, których możesz potrzebować
-
Amazon
Zasoby i odniesienia
-
ZewnętrznySharp IR GP2Y0A51SK0F Datasheet (PDF)global.sharp
-
ZewnętrznySharp Library from RoboJob.comrobojax.com
Pliki📁
Biblioteki Arduino (zip)
-
Arduino library for sharp IR distance sensor
robojax-sharp_IR-master.zip
Karta katalogowa (pdf)
-
Sharp IR GP2Y0A21YK Infrared distance sensor datasheet
robojax_sharp_IR_GP2Y0A21YK_datasheet.pdf0.36 MB
Plik Fritzing
-
sharp ir sensor GP2Y0A02YK0F
sharp ir sensor GP2Y0A02YK0F .fzz
Inne pliki
-
Sharp GP2Y0A41SK0F Infrared distance sensor datasheet
robojax_sharp_IR_GP2Y0A41SK0F_datasheet.pdf0.84 MB -
Sharp GP2Y0A710K0F Infrared distance sensor datashee
robojax_sharp_IR_GP2Y0A710K0F_datasheet.pdf0.33 MB