Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
| products:laboratory_iot_c:exp28 [2024/11/15 13:31] – создано labuser30 | products:laboratory_iot_c:exp28 [2024/11/15 13:42] (текущий) – [Программный код эксперимента] labuser30 | ||
|---|---|---|---|
| Строка 62: | Строка 62: | ||
| </ | </ | ||
| - | Импортируем библиотеку для работы со случайными числами | + | Логика |
| - | <code python [enable_line_numbers=" | + | Чтобы не заводить дополнительные переменные, |
| - | import random | + | |
| - | </ | + | |
| - | Объявляем переменные и настраиваем кнопку. | + | Полученное число выводим на индикатор с помощью функции '' |
| - | < | + | < |
| - | button = Pin(0, Pin.IN) | + | |
| - | state_old = 1 | + | |
| - | count = 0 | + | |
| </ | </ | ||
| - | В переменной '' | ||
| - | |||
| - | Рассмотрим основной цикл программы: | ||
| - | <code python [enable_line_numbers=" | ||
| - | while True: | ||
| - | new_state = button.value() | ||
| - | if new_state == 0 and state_old == 1: | ||
| - | rand_bits = random.getrandbits(5) | ||
| - | rand_digit = bit_summ(rand_bits) | ||
| - | rand_digit+=1 | ||
| - | draw_digit(rand_digit) | ||
| - | state_old = new_state | ||
| - | </ | ||
| - | |||
| - | В бесконечном цикле программа ждет нажатия на кнопку '' | ||
| - | <code python [enable_line_numbers=" | ||
| - | rand_bits = random.getrandbits(5) | ||
| - | </ | ||
| - | |||
| - | После выполнения этой строки в переменной '' | ||
| - | |||
| - | Чтобы просуммировать биты напишем функцию '' | ||
| - | <code python [enable_line_numbers=" | ||
| - | def bit_summ(data): | ||
| - | count = 0 | ||
| - | while data: | ||
| - | count += data & 1 | ||
| - | data >>= 1 | ||
| - | return count | ||
| - | </ | ||
| - | |||
| - | Функция принимает в качестве параметра число и возвращает сумму его бит. Но, как мы помним, | ||
| - | |||
| - | <code python [enable_line_numbers=" | ||
| - | rand_digit = bit_summ(rand_bits) | ||
| - | rand_digit+=1 | ||
| - | </ | ||
| - | |||
| - | Полученное число выводим на индикатор с помощью функции '' | ||
| - | <code python [enable_line_numbers=" | ||
| - | draw_digit(rand_digit) | ||
| - | </ | ||
| - | Данная функция полностью скопирована из предыдущего эксперимента без изменений, | ||
| ==== Дополнительные задания ==== | ==== Дополнительные задания ==== | ||