Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
products:laboratory_iot:exp34 [2020/05/21 20:29] – labuser29 | products:laboratory_iot:exp34 [2024/11/15 20:41] (текущий) – [Программный код эксперимента] labuser30 | ||
---|---|---|---|
Строка 24: | Строка 24: | ||
==== Программный код эксперимента ==== | ==== Программный код эксперимента ==== | ||
- | <file python Exp34[enable_line_numbers=" | + | <file python Exp34.py[enable_line_numbers=" |
from time import sleep_ms, ticks_ms | from time import sleep_ms, ticks_ms | ||
from machine import I2C, Pin | from machine import I2C, Pin | ||
Строка 30: | Строка 30: | ||
_init() | _init() | ||
- | DEFAULT_I2C_ADDR = 0x3F | + | DEFAULT_I2C_ADDR = 0x3F # Или 0x27 в зависимости от модели микросхемы на плате |
encA = Pin(13, Pin.IN) | encA = Pin(13, Pin.IN) | ||
Строка 72: | Строка 72: | ||
</ | </ | ||
- | Объявляем переменную '' | + | Объявляем переменную '' |
- | Чтобы лучше понять алгоритм работы программы еще раз посмотрим на горафик сигналов энкодера: | + | Чтобы лучше понять алгоритм работы программы еще раз посмотрим на график сигналов энкодера: |
{{ : | {{ : | ||
Строка 84: | Строка 84: | ||
Если уровни сигналов А и B оба стали высокими (состояние 2) или оба стали низкими (состояние 0), то увеличиваем значение '' | Если уровни сигналов А и B оба стали высокими (состояние 2) или оба стали низкими (состояние 0), то увеличиваем значение '' | ||
- | Если уловие выше не подтвердилось, | + | Если условие выше не подтвердилось, |
<code python[enable_line_numbers=" | <code python[enable_line_numbers=" | ||
elif (not value_a and value_b) or (value_a and not value_b): | elif (not value_a and value_b) or (value_a and not value_b): | ||
</ | </ | ||
- | Если уровень сигнала А стал низким, | + | Если уровень сигнала А стал низким, |
Если ни одно из этих условий не выполнено, | Если ни одно из этих условий не выполнено, | ||
Строка 94: | Строка 94: | ||
old_value_a = value_a | old_value_a = value_a | ||
</ | </ | ||
- | |||
==== Дополнительное задание ==== | ==== Дополнительное задание ==== | ||
<WRAP center round tip 60%> | <WRAP center round tip 60%> | ||
- | * Попробуй убрать конденсаторы из схемы и покрутить энкодер. Программа будет работать не так, как хотелось бы. | + | * Попробуй убрать конденсаторы из схемы и покрутить энкодер. Программа будет работать не так, как хотелось бы. Необходимость конденсаторов станет очевидной. |
</ | </ |