Search Code

Ардуино код и видео: Инфрацрвен модул за избегнување пречки

Ардуино код и видео: Инфрацрвен модул за избегнување пречки

Овој проект демонстрира како да се изгради едноставен систем за избегнување пречки користејќи инфрацрвен сензорски модул и Arduino микроконтролер. Ова е одлична проектна задача за почетници кои учат за поврзување на сензори и основно програмирање. Примените на оваа технологија се бројни и можат да се прилагодат на различни проекти.

IR osbstacle avoidance module

На пример:

  • Роботска навигација: Програмирајте робот самостојно да избегнува пречки.
  • Паметна домашна автоматизација: Креирајте систем за откривање предмети во одредена област и активирање дејства соодветно.
  • Безбедносен систем: Дизајнирајте основен систем за откривање упад кој ве предупредува кога нешто влегува во следената област.

Хардвер/Компоненти

Проектот користи лесно достапен инфрацрвен модул за избегнување пречки, Arduino микроконтролер и неколку поврзувачки жици. Самиот инфрацрвен модул содржи инфрацрвен емитер, приемник и оперативен засилувач (op-amp) за обработка на сигналот (во видеото на 00:22). Исто така има две LED диоди: една што покажува напојување и друга што покажува откривање пречка (во видеото на 00:37).

Модулот има три пина: VCC (напојување), GND (земја) и излезен пин. Потенциометар ви овозможува да го прилагодите растојанието за откривање, кое се движи од неколку сантиметри до приближно 10 сантиметри (во видеото на 00:51).

Водич за поврзување

Поврзувањето е едноставно. Поврзете го VCC пинот на инфрацрвениот модул со 5V пинот на Arduino, GND пинот со GND пинот на Arduino, а излезниот пин со дигитален влезен пин на Arduino (пин 8 се користи во примерот на кодот).

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

Објаснување на кодот

Arduino кодот е прилично едноставен. Клучниот дел е поставување на правилниот режим на пинот и читање на излезот од сензорот. Кодот користи пин 8 како влез (pinMode(8, INPUT);) (во видеото на 06:10). Функцијата digitalRead(8) ја чита состојбата на овој пин, која е HIGH кога нема откриена пречка и LOW кога има пречка (во видеото на 06:15). Кодот потоа печати „Obstacle on the way“ или „All clear“ на серискиот монитор соодветно (во видеото на 06:29).


void setup() {
  Serial.begin(9600);
  pinMode(8, INPUT); // Поставете пин 8 како влез
}

void loop() {
  int detect = digitalRead(8); // Читајте пин 8
  if (detect == LOW) {
    Serial.println("Obstacle on the way");
  } else {
    Serial.println("All clear");
  }
  delay(300);
}

Жив проект/Демонстрација

Видеото ја демонстрира функционалноста на системот за избегнување пречки. Презентерот покажува како потенциометарот го прилагодува опсегот на откривање (во видеото на 00:57). Излезот на серискиот монитор јасно ги прикажува пораките „Obstacle on the way“ и „All clear“, што одговараат на присуството или отсуството на пречка (во видеото на 07:07). Максималниот опсег на откривање е приближно 10 сантиметри (во видеото на 03:30).

Поглавја

  • [00:06] Вовед во инфрацрвено избегнување пречки
  • [00:22] Преглед на модулот и компонентите
  • [00:51] Прилагодување на потенциометарот и растојание за откривање
  • [01:19] Како работи инфрацрвениот сензор
  • [02:29] Демонстрација на откривање пречки
  • [05:57] Објаснување на кодот: Поставување и јамка
  • [06:55] Поставување на кодот и демонстрација на серискиот монитор
  • [07:35] Понатамошни примени и идни проекти

Images

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.
Language: 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);
}

Resources & references

No resources yet.

Files📁

Fritzing File

Other files