Search Code

Cod Arduino și Video: Modul de evitare a obstacolelor cu infraroșu

Cod Arduino și Video: Modul de evitare a obstacolelor cu infraroșu

Acest proiect demonstrează cum să construiești un sistem simplu de evitare a obstacolelor folosind un modul cu senzor infraroșu și un microcontroler Arduino. Acesta este un proiect excelent pentru începătorii care învață despre interfațarea senzorilor și programarea de bază. Aplicațiile acestei tehnologii sunt numeroase și pot fi adaptate la diverse proiecte.

IR osbstacle avoidance module

De exemplu:

  • Navigare robotică: Programează un robot să evite obstacolele în mod autonom.
  • Automatizare inteligentă a locuinței: Creează un sistem pentru a detecta obiecte într-o anumită zonă și a declanșa acțiuni în consecință.
  • Sistem de securitate: Proiectează un sistem de bază de detectare a intruziunilor care te alertează atunci când ceva intră într-o zonă monitorizată.

Hardware/Componente

Proiectul folosește un modul de evitare a obstacolelor cu infraroșu ușor disponibil, un microcontroler Arduino și câteva fire de conectare. Modulul cu infraroșu conține în sine un emițător infraroșu, un receptor și un amplificator operațional (op-amp) pentru a procesa semnalul (în video la 00:22). Are, de asemenea, două LED-uri: unul care indică alimentarea și altul care indică detectarea obstacolelor (în video la 00:37).

Modulul are trei pini: VCC (alimentare), GND (masă) și un pin de ieșire. Un potențiometru îți permite să ajustezi distanța de detectare, variind de la câțiva centimetri până la aproximativ 10 centimetri (în video la 00:51).

Ghid de Cablare

Cablarea este simplă. Conectează pinul VCC al modulului cu infraroșu la pinul de 5V al Arduino, pinul GND la pinul GND al Arduino și pinul de ieșire la un pin de intrare digital pe Arduino (pinul 8 este folosit în codul de exemplu).

Arduino wiring for IR osbstacle avoidance module
Arduino wiring for IR osbstacle avoidance module

Explicația Codului

Codul Arduino este destul de simplu. Partea crucială este setarea modului corect al pinului și citirea ieșirii senzorului. Codul folosește pinul 8 ca intrare (pinMode(8, INPUT);) (în video la 06:10). Funcția digitalRead(8) citește starea acestui pin, care este HIGH când nu este detectat niciun obstacol și LOW când este prezent un obstacol (în video la 06:15). Codul apoi afișează „Obstacol pe drum” sau „Totul este clar” în monitorul serial în consecință (în video la 06:29).


void setup() {
  Serial.begin(9600);
  pinMode(8, INPUT); // Setează pinul 8 ca intrare
}

void loop() {
  int detect = digitalRead(8); // Citește pinul 8
  if (detect == LOW) {
    Serial.println("Obstacol pe drum");
  } else {
    Serial.println("Totul este clar");
  }
  delay(300);
}

Proiect/Demonstrație Live

Videoclipul demonstrează funcționalitatea sistemului de evitare a obstacolelor. Prezentatorul arată cum potențiometrul ajustează raza de detectare (în video la 00:57). Ieșirea monitorului serial arată clar mesajele „Obstacol pe drum” și „Totul este clar”, corespunzând prezenței sau absenței unui obstacol (în video la 07:07). Raza maximă de detectare este de aproximativ 10 centimetri (în video la 03:30).

Capitole

  • [00:06] Introducere în evitarea obstacolelor cu infraroșu
  • [00:22] Prezentarea modulului și a componentelor
  • [00:51] Ajustarea potențiometrului și distanța de detectare
  • [01:19] Cum funcționează senzorul cu infraroșu
  • [02:29] Demonstrația detectării obstacolelor
  • [05:57] Explicația codului: Setup și Loop
  • [06:55] Încărcarea codului și demonstrația monitorului serial
  • [07:35] Aplicații suplimentare și proiecte viitoare

Imagini

IR osbstacle avoidance module
IR osbstacle avoidance module
Arduino wiring for IR osbstacle avoidance module
Arduino wiring for IR osbstacle avoidance module
51-This is the Arduino code for an infrared obstacle avoidance module.
Limba: C++
/*
 * This is the Arduino code for the Infrared Obstacle Avoidance module.
 * Watch the video for details and demo: https://youtu.be/T3Li128GBlM
 * 
 * Written by Ahmad Nejrabi for the Robojax Video channel, www.Robojax.com
 * Date: December 28, 2017, in Ajax, Ontario, Canada
 * Permission granted to share this code, given that this
 * note is kept with the code.
 * Disclaimer: This code is "AS IS" and for educational purposes only.
 * This code has been downloaded from https://robojax.com
 */
void setup() {
 Serial.begin(9600);
 pinMode(8, INPUT);// set pin as input

}

void loop() {
  // Written for Robojax on December 28, 2017
  int detect = digitalRead(8);// read obstacle status and store it into "detect"
  if(detect == LOW){
    
   Serial.println("Obstacle on the way"); 
  }else{
    
   Serial.println("All clear");  
  }
  delay(300);
}

Lucruri de care ai putea avea nevoie

Resurse și referințe

Încă nu sunt resurse.

Fișiere📁

Fișier Fritzing

Alte fișiere