Цель работы: обучение Arduino
Задача: применить на практике ультразвуковой датчик расстояния
Будем применять датчик в качестве одного из компонентов парктроника. Суть парктроника будет заключатья в следующем: чем ближе машина подъезжает к препятствию, тем чаще подается звук.
Для выполнения поставленной задачи нам потребуются:
1. Микроконтроллер
2. Макетная плата
3. Зуммер
4. Датчик расстояния
5. Крона (для автономной работы микроконтроллера)
6. Провод для соединения кроны и Arduino
7. Провода
Итак, соберем указанную выше схему, прикрепим датчик расстояния спереди машины. В результате должно получиться примерно следующее:
Звук парктроника будет учащаться при достижении следующих значений датчика: 60 см, 40 см, 20 cм, 10 см. Но необходимо помнить, что если датчик установлен не на краю предмета, то к ранее упомянутым цифрам надо прибавить расстояние от датчика до края предмета. В нашем случае мы прибавляем 11 см.
Напишем код.
#include "Ultrasonic.h"
//объявляем постоянные пины для датчика измерения расстояния
const int Trig = 12;
const int Echo = 13;
//объявляем постоянный пин для зуммера
const int buzzer = 8;
//значение частоты зуммера
const int frequency = 450;
float dist = 0; //объявляем переменную для расстояния
int t = 0; //количество миллисекунд, через которое необходимо выполнить измерение еще раз
Ultrasonic ultrasonic(Trig, Echo); //объявляем объект Ultrasonic
void setup()
{
pinMode(buzzer, OUTPUT); //задание пина в качестве выхода
Serial.begin(9600);
}
void loop()
{
dist = ultrasonic.Ranging(CM); //считываем значение расстояния в сантиметрах
Serial.println(dist);
if (dist >= 71)
{
t = 1000;
}
if ((dist >= 51) && (dist < 71))
{
t = 500;
}
if ((dist >= 31) && (dist < 51))
{
t = 250;
}
if ((dist >= 21) && (dist < 31))
{
t = 100;
}
if (dist < 21)
{
t = 50;
}
if (t <= 500)
{
tone(buzzer, frequency, 50);
}
delay(t);
}
Результаты работы представлены в следующем видео:
Лабораторные работы Технологии+Бизнес