Занятие № 2. Программирование микроконтроллеров с подключёнными измерительными устройствами

Задание № 1. Тактовая кнопка

Соберите и запрограммируйте устройство, которое пока нажата тактовая кнопка включает светодиод.

Схема для сборки

Соберите следующую схему. Анод светодиода (длинная ножка) подключен к пину 12. Резистор сопротивлением 220 Ом ограничивает ток проходящий через светодиод. Тактовую кнопку подключаем к пину Vin и 14.

Программа

Загрузите в микроконтроллер следующую программу.

from machine import Pin

button = Pin(14, Pin.IN, Pin.PULL_DOWN)
led = Pin(12, Pin.OUT)

while True:
    isPressed = button.value()
    if isPressed:
        led.on()
    else:
        led.off()
1
Импортируем из модуля machine объект Pin.
2
Переменная button ссылается на объект Pin. Кнопка подключена к 12 пину. К этому пину подключён один из выводов тактовой кнопки. Пин настраиваем на вход указав вторым параметром значение Pin.IN.
3
Переменная led ссылается на объект Pin. Анод светодиода подключен к 14 пину. Пин настраиваем на выход указав вторым параметром значение Pin.OUT.
4
Запускаем бесконечный цикл while. Весь код внутри цикла будет повторяться до тех пор, пока подаётся питание на микроконтроллер.
5
Переменная isPressed хранит текущее значение на пине 12. Состояние кнопки считываем с помощью метода value().
6
С помощью инструкции if решаем, нужно ли включить или выключить светодиод. Метод on() объекта led включит светодиод, метод off() выключит светодиод.

со стягивающим резистором, с программным включением стягивающего резистора, кнопка-переключатель.

Задание № 2. Фоторезистор

Добавьте к существующей схеме фоторезистор. Напряжение с делителя напряжения будем измерять с помощью пина 14.

from machine import Pin, ADC
from time import sleep

ldr = ADC(Pin(14))
ldr.atten(ADC.ATTN_11DB)

while True:
    value = ldr.read()
    print(value)
    sleep(0.1)

Задание № 3. Потенциометр

Уберите схему делителя напряжения и разместите на макетной плате потенциометр, средний контакт которого подключён к пину 14, а крайние - к питанию Vin и земле GND.

Составьте следующую программу:

from machine import Pin, ADC
from time import sleep

pot = ADC(Pin(14))
pot.atten(ADC.ATTN_11DB)

while True:
    value = pot.read()
    print(value)
    sleep(0.1)

Задание № 4. Датчик температуры и влажности

подключение модулей