Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
products:laboratory_iot_c:exp50 [2024/12/13 17:08] – [Программный код эксперимента] labuser30 | products:laboratory_iot_c:exp50 [2024/12/13 17:12] (текущий) – [Программный код эксперимента] labuser30 | ||
---|---|---|---|
Строка 222: | Строка 222: | ||
}; | }; | ||
- | class Button { | ||
- | private: | ||
- | int pin; | ||
- | bool pressState; | ||
- | bool oldState; | ||
- | |||
- | public: | ||
- | Button(int _pin, bool _pressState) { | ||
- | pin = _pin; | ||
- | pinMode(pin, | ||
- | pressState = _pressState; | ||
- | oldState = not _pressState; | ||
- | } | ||
- | |||
- | bool onPress() { | ||
- | bool state = digitalRead(pin); | ||
- | if (state != oldState){ | ||
- | oldState = state; | ||
- | if (state == pressState) return true; | ||
- | } | ||
- | return false; | ||
- | } | ||
- | }; | ||
- | |||
Stopwatch stopwatch; | Stopwatch stopwatch; | ||
Строка 253: | Строка 229: | ||
tft.initR(INITR_BLACKTAB); | tft.initR(INITR_BLACKTAB); | ||
tft.setRotation(2); | tft.setRotation(2); | ||
+ | | ||
stopwatch.init(); | stopwatch.init(); | ||
stopwatch.startStop(); | stopwatch.startStop(); | ||
Строка 262: | Строка 239: | ||
</ | </ | ||
- | Код эксперимента должен быть понятен. Сначала как обычно подключаем библиотеки, настраиваем SPI и дисплей. Потом код класса секундомера и в конце мы создаем объект секундомера | + | Код эксперимента должен быть понятен. Сначала как обычно подключаем библиотеки и дисплей. Потом код класса секундомера и в конце мы создаем объект секундомера. |
- | < | + | < |
- | stopwatch | + | Stopwatch |
</ | </ | ||
- | Запускаем его | + | Инициализируем и запускаем его. |
- | < | + | < |
- | stopwatch.start_stop() | + | |
+ | | ||
</ | </ | ||
- | И в бесконечном цикле вызываем его метод '' | + | И в бесконечном цикле вызываем его метод '' |
- | < | + | < |
- | while True: | + | stopwatch.tick(); |
- | | + | |
</ | </ | ||
Теперь наш секундомер умеет считать время. Но еще не слушается управления. В следующем эксперименте мы добавим управление с помощью кнопки и получим полноценный секундомер. | Теперь наш секундомер умеет считать время. Но еще не слушается управления. В следующем эксперименте мы добавим управление с помощью кнопки и получим полноценный секундомер. |