• Курсы

    …

    • Архив курсов
    Игры с BBC micro:bit

    Игры с BBC micro:bit

    Бесплатно
    Подробнее
  • Контакты
    Login
    ORT Education CourseORT Education Course
    • Курсы

      …

      • Архив курсов
      Игры с BBC micro:bit

      Игры с BBC micro:bit

      Бесплатно
      Подробнее
    • Контакты

      Технология

      • Главная
      • Все курсы
      • Технология
      • Cоздание электронных устройств
      CoursesТехнологияCоздание электронных устройств
      • ЗНАКОМСТВО С TINKERCAD 2

        • Лекция1.1
          Знакомство с TinkerCad
        • Лекция1.2
          Настройки проекта
      • ОСНОВЫ ЭЛЕКТРОНИКИ 10

        • Лекция2.1
          Основные понятия
        • Лекция2.2
          Первые шаги
        • Лекция2.3
          Закон Ома
        • Лекция2.4
          Параллельное и последовательное соединение
        • Лекция2.5
          Делитель напряжения
        • Лекция2.6
          Переключатели
        • Лекция2.7
          Транзисторы
        • Лекция2.8
          Конденсаторы
        • Лекция2.9
          Микросхемы
        • Викторина2.1
          Основы электроники (итог) 21 questions
      • ЗНАКОМСТВО С ARDUINO 7

        • Лекция3.1
          Что такое Arduino?
        • Лекция3.2
          Пробы пера
        • Лекция3.3
          Аналоговые и цифровые сигналы
        • Лекция3.4
          Работа с датчиками
        • Лекция3.5
          Моторы вперед!
        • Лекция3.6
          Управление сервоприводом
        • Викторина3.1
          Знакомство с Arduino (итог) 12 questions

        Работа с датчиками

        Сенсор, или датчик – это устройство для преобразования некоторой физической величины в электрический сигнал. Сенсоры являются, по сути, органами чувств робототехнических систем и служат для обеспечения обратной связи между контроллером и окружающим миром. Поскольку на поведение автоматической системы могут оказывать влияние многие физические факторы, существует множество различных сенсоров, способных эти факторы фиксировать: датчики измерения температуры, расстояния, звука, влажности и многие другие.

        В зависимости от типа сигнала датчики для Arduino можно разделить на две группы:

        1. Аналоговые – показания датчика передаются в виде переменного напряжения на сигнальном проводе. Сигнальное напряжение может принимать значение от 0 В до 5 В.
        2. Цифровые – в любой момент времени выдают на сигнальный провод ограниченный набор значений (чаще всего либо 0 В, либо 5 В).

        Большинство датчиков подключаются к управляющей электронике через 3 провода:

        • Питание (Vcc) — красный провод. На него должно подаваться напряжение.
        • Земля (GND) — чёрный провод. Должен быть соединён с землёй микроконтроллера.
        • Сигнальный. С него считываются показания сенсора.

         

        Работа с цифровыми датчиками

        Простейшим примером цифрового датчика является кнопка.

        Для чтения цифрового сигнала с датчика воспользуемся функцией digitalRead.

        Функция имеет следующий вид:

        digitalRead(пин)

        После вызова этой функции получим уровень цифрового сигнала на соответствующем контакте (HIGH или LOW (1 или 0)).

        Пример. Управление включением светодиода

        В качестве примера, создадим устройство, позволяющее управлять работой светодиода: если кнопка зажата – светодиод светится, если отпущена – светодиод не светится. Для этого:

        • Зайдите в свое рабочее пространство TinkerCad.
        • Создайте новое электронное устройство.
        • На рабочее поле добавьте плату Arduino UNO, светодиод, резисторы и кнопку.  С помощью проводников создайте замкнутую электрическую цепь.

         

        Замечание. При работе с кнопками часто используют подтягивающий резистор. Без него цифровые входы «плавают» между 0 В и 5 В. Резистор «подтягивает» вход к земле (0 В), а нажатие кнопки – к 5 В. Следовательно, если кнопка нажата, получаем сигнал «HIGH», если отпущена – «LOW».

        • Перейдите в режим написания программы в виде текстового кода и создайте следующую программу:
        Исходный код Комментарии
        int ledPin = 6; Установить ножку светодиода в пин 6
        int buttonPin = 4; Установить ножку кнопки в пин 4
        int result = 0; Переменная result используется для считывания сигнала на кнопке
        void setup() {
        pinMode(ledPin, OUTPUT); Настраиваем пин 6 в режим вывода
        pinMode(buttonPin, INPUT); Настраиваем пин 4 в режим ввода
        }
        void loop(){
        result = digitalRead(buttonPin); Считываем в переменную result состояние кнопки
        if (result == HIGH) { Проверяем, если кнопка нажата (пришел сигнал HIGH)
        digitalWrite(ledPin, HIGH); Включаем светодиод
        }
        else Иначе, если кнопка не нажата (пришел сигнал LOW)
        {
        digitalWrite(ledPin, LOW);  Выключаем светодиод
        }
        }
        • Запустив симуляцию, мы сможем убедиться в правильности нашего кода.

        Работа с аналоговыми датчиками

        Простейшим примером аналогового датчика является потенциометр.

        Для чтения аналогового сигнала с датчика воспользуемся функцией analogRead.

        Функция имеет следующий вид:

        analogRead(пин)

        После вызова этой функции получим уровень аналогового сигнала на соответствующем контакте (от 0 до 1023).

        Пример. Управление яркостью светодиода

        В качестве примера, создадим устройство, позволяющее управлять яркостью светодиода. Для этого:

        • Зайдите в свое рабочее пространство TinkerCad.
        • Создайте новое электронное устройство.
        • На рабочее поле добавьте плату Arduino UNO, светодиод, резистор и потенциометр.  С помощью проводников создайте замкнутую электрическую цепь.

        • Перейдите в режим написания программы в виде текстового кода и создайте следующую программу:
        Исходный код Комментарии
        int ledPin = 6; Установить ножку светодиода в пин 6
        int potPin = A0; Установить ножку потенциометра в пин А0
        int result = 0; Переменная result используется для считывания сигнала с потенциометра
        void setup() {
        pinMode(ledPin, OUTPUT); Настраиваем пин 6 в режим вывода
        pinMode(potPin, INPUT); Настраиваем пин A0 в режим ввода
        }
        void loop(){
        result = analogRead(potPin); Считываем в переменную result сигнал с потенциометра
        result = map (result, 0, 1024, 0, 255); Поскольку значения переменной resultпринадлежат промежутку [0 1023], а уровень сигнала (ШИМ) для светодиода должен принадлежать промежутку [0 255], то отобразим пропорционально один промежуток на другой с помощью функции map.
        analogWrite(ledPin, result); Выдаем на светодиод соответствующий уровень сигнала
        }
        • Запустив симуляцию, мы сможем убедиться в правильности нашего кода.

         

         Задания:

        Задание 14. Создайте виртуальное устройство, позволяющее регулировать скорость мигания светодиода.

        Задание 15***. Создайте виртуальное устройство, имитирующее работу переключателя света: по нажатию на кнопку происходит включение света, выключить свет можно только при повторном нажатии на кнопку.

        Предоставьте общий доступ к своим виртуальным устройствам и отправьте ссылки на решения с помощью формы.

        Предыдущий Аналоговые и цифровые сигналы
        Следующий Моторы вперед!

        Последние курсы

        Игры с BBC micro:bit

        Игры с BBC micro:bit

        Бесплатно
        Cоздание электронных устройств

        Cоздание электронных устройств

        Бесплатно
        Основы электроники на базе Arduino в среде TinkerCad (для учителей)

        Основы электроники на базе Arduino в среде TinkerCad (для учителей)

        Бесплатно

        Designed and Developed by ORT Odessa

        Вход через логин и пароль

        Забыли пароль?