Самостоятельная работа
Мы с Вами уже разбирали код по миганию светодиода, работа с патенцометром, ультразвуковым дальнометром и датчиком линии.
Повторим.
1. Мигание светодиода.
void setup() { pinMode (13, OUTPUT); } void loop() { digitalWrite(13,HIGH); delay(1000); digitalWrite(13,LOW); delay(1000); } |
2. Подключение патенцометра.
void setup() { pinMode (13, OUTPUT); } void loop() { if ((analogRead(A0) > 0 && (analogRead(A0) < 500)) {
digitalWrite(13,HIGH); delay(1000); digitalWrite(13,LOW); delay(1000); } else { digitalWrite(13,HIGH); } } |
Здесь мы указали если патенцометр больше нуля но меньше 500 тогда светодиод мигает, иначе просто горит.
3. Ультрозвуковой дальномер.
long duration,sm; void setup() { pinMode (3, OUTPUT); pinMode(4,INPUT); Serial.begin(9600); } void loop() { digitalWrite(3,LOW); delayMicroseconds(2); digitalWrite(3,HIGH); delayMicroseconds(10); digitalWrite(3,LOW);
duration = pulseIn(4,HIGH); sm = duration/29/2; Serial.print(sm); Serial.print("сантиметров"); Serial.println(); delay(500); } |
Для того чтобы получить пройденный путь нам нужно время нахождения сигнала в пространстве в секундах переумножить на скорость звука (это 340м/с) и мы получим расстояние в метрах, но у нас не сходится размерность, время у нас дано в микросекундах а расстояние нужно получить в сантиметрах, с точки зрения правильности в эту формулу нужно вести в степень.
Рассчитываем за какое время звук проходит расстояние 1см. Чтобы это рассчитать нам нужно 1 секунду поделить на скорость звука.
1/340 (получим в метрах, чтобы перевести в см. добавим еще два нуля).
1/34000 = 2,9 (микросекунд)
duration = pulseIn( );
sm = duration/29/2;
длина сантиметрах равна времени прохождения сигнала /29 и общий путь делим на 2.
Ультразвуковой дальномер - устройство предназначено для определения расстояния от датчика до объекта.
В основе принципа измерения устройства лежит эхолокация как у дельфинов или летучих мышей.
Дальномер генерирует звуковые волны на частоте 40кГц
Функция pulseIn() – ждет появления импульса (HIGH или LOW) на заданном пине и после его завершения возвращает его длину или 0, если импульса не было на протяжении заданного времени (тайм-аута). Работает с импульсом от 10 микросекунд до 3 минут.
4. Датчик линии.
//Пин датчика #define sens_pin 8 #define led_pin 22 //Переменная где будет хранится информация //о том что перед датчиком //черное - true, белое - false boolean light; void setup() { pinMode(led_pin,OUTPUT); } void loop() { light = digitalread(sens_pin); if (light == HIGH) digitalWrite(led_pin, HIGH); else digitalWrite(led_pin, LOW); } |
Дата: 2022-12-23   Автор: Администратор   Просмотров: 820
Контакты
Если у Вас есть вопросы, мы с удовольствием на них ответим.
Адрес:
Мурманская область, г.Полярный ул. Красный Горн, д.16
Почта:
zatocdod@mail.ru
Телефон:
+7 (815-51) 7-59-64