first commit

This commit is contained in:
2026-01-24 15:17:23 +03:00
commit aef813e29a
3 changed files with 2794 additions and 0 deletions

51
.gitignore vendored Normal file
View File

@@ -0,0 +1,51 @@
# Arduino build files
*.elf
*.hex
*.bin
*.eep
# Build directories
build/
.build/
Release/
Debug/
# Arduino IDE
*.arduino-cache/
.arduino15/
# PlatformIO
.pio/
.pioenvs/
.piolibdeps/
# VSCode Arduino extension
.vscode/c_cpp_properties.json
.vscode/arduino.json
.vscode/launch.json
# IDE settings
*.swp
*.swo
*~
# OS files
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
# Backup files
*.bak
*.orig
*.tmp
# Log files
*.log
# Local configuration
secrets.h
config_local.h

175
README.md Normal file
View File

@@ -0,0 +1,175 @@
# Тренажер "Бесконечная Лестница"
Система управления тренажером "Бесконечная лестница" на базе Arduino Mega 2560.
## Описание проекта
Данный проект представляет собой систему управления тренажером с функциями:
- Управление скоростью двигателя (0-100%)
- Два режима тренировки: по времени и по дистанции
- Отображение параметров на LCD дисплее 16x2
- Отображение скорости на LED матрице 8x MAX7219
- Локальное управление кнопками
- Радиоуправление (7 кнопок)
- Система безопасности с аварийной остановкой
- Сохранение параметров в EEPROM
## Необходимое оборудование
- Arduino Mega 2560
- LCD дисплей 16x2 с I2C модулем (адрес 0x27)
- LED матрица 8x MAX7219
- Энкодер LPD3806-360BM-G5-24C
- Драйвер двигателя с PWM управлением
- Кнопки управления
- Приемник радиоуправления
## Установка библиотек
### Способ 1: Через менеджер библиотек Arduino IDE
1. Откройте Arduino IDE
2. Перейдите в меню **Скетч****Подключить библиотеку****Управлять библиотеками...**
3. Установите следующие библиотеки:
| Библиотека | Поиск в менеджере | Автор |
|------------|-------------------|-------|
| LiquidCrystal I2C | `LiquidCrystal I2C` | Frank de Brabander |
| LedControl | `LedControl` | Eberhard Fahle |
### Способ 2: Ручная установка
1. Скачайте библиотеки:
- [LiquidCrystal_I2C](https://github.com/johnrickman/LiquidCrystal_I2C)
- [LedControl](https://github.com/wayoda/LedControl)
2. Распакуйте архивы в папку библиотек Arduino:
- **Windows:** `C:\Users\<Пользователь>\Documents\Arduino\libraries\`
- **Linux:** `~/Arduino/libraries/`
- **macOS:** `~/Documents/Arduino/libraries/`
3. Перезапустите Arduino IDE
### Встроенные библиотеки (устанавливать не нужно)
Следующие библиотеки входят в состав Arduino IDE:
- `SPI.h` — для работы с SPI шиной (LED матрица)
- `Wire.h` — для работы с I2C шиной (LCD дисплей)
- `EEPROM.h` — для сохранения параметров
## Прошивка Arduino
### Шаг 1: Подготовка
1. Установите [Arduino IDE](https://www.arduino.cc/en/software) (версия 1.8.x или 2.x)
2. Установите необходимые библиотеки (см. выше)
3. Подключите Arduino Mega 2560 к компьютеру через USB кабель
### Шаг 2: Настройка Arduino IDE
1. Откройте файл `stairs_arduino.ino` в Arduino IDE
2. Выберите плату: **Инструменты****Плата****Arduino Mega or Mega 2560**
3. Выберите процессор: **Инструменты****Процессор****ATmega2560 (Mega 2560)**
4. Выберите порт: **Инструменты****Порт** → выберите COM-порт Arduino
- **Windows:** `COM3`, `COM4` и т.д.
- **Linux:** `/dev/ttyACM0` или `/dev/ttyUSB0`
- **macOS:** `/dev/cu.usbmodem*`
### Шаг 3: Загрузка прошивки
1. Нажмите кнопку **Загрузка** (стрелка вправо) или используйте `Ctrl+U`
2. Дождитесь сообщения "Загрузка завершена"
3. Откройте **Монитор порта** (`Ctrl+Shift+M`) для проверки работы
- Установите скорость: **115200 бод**
## Схема подключения
### Управление двигателем
| Пин Arduino | Назначение |
|-------------|------------|
| 9 | PWM выход |
| 19 | Enable выход |
### Кнопки локального управления
| Пин Arduino | Назначение |
|-------------|------------|
| 22 | Выбор режима |
| 23 | Увеличение параметра |
| 24 | Уменьшение параметра |
| 25 | Сброс параметров |
| 26 | Старт |
| 27 | Стоп |
| 30 | Уменьшение скорости |
| 31 | Увеличение скорости |
| 29 | Аварийная кнопка (грибок) |
| 32 | Лазерные датчики безопасности |
### Радиоуправление
| Пин Arduino | Назначение |
|-------------|------------|
| 40 | Скорость + |
| 41 | Скорость - |
| 42 | Старт/Стоп |
| 43 | Выбор режима |
| 44 | Сброс |
| 45 | Уменьшение |
| 46 | Увеличение |
### Датчики
| Пин Arduino | Назначение |
|-------------|------------|
| 2 | Энкодер A (INT0) |
| 3 | Энкодер B (INT1) |
| 33 | Концевой выключатель |
### Дисплеи
| Пин Arduino | Назначение |
|-------------|------------|
| 20 (SDA) | LCD I2C данные |
| 21 (SCL) | LCD I2C тактирование |
| 51 (MOSI) | LED матрица DIN |
| 52 (SCK) | LED матрица CLK |
| 53 (SS) | LED матрица CS |
### Светодиоды статуса
| Пин Arduino | Назначение |
|-------------|------------|
| 35 | Зеленый (работа) |
| 36 | Красный (стоп) |
| 37 | Аварийный |
## Устранение неполадок
### Arduino не определяется
**Windows:**
- Установите драйвер CH340 (для китайских клонов Arduino)
- Проверьте диспетчер устройств
**Linux:**
- Добавьте пользователя в группу `dialout`:
```bash
sudo usermod -a -G dialout $USER
```
- Перезагрузите компьютер
### Ошибка "avrdude: stk500v2_ReceiveMessage(): timeout"
- Проверьте правильность выбора платы и порта
- Попробуйте другой USB кабель
- Нажмите кнопку Reset на Arduino перед загрузкой
### LCD дисплей не работает
- Проверьте I2C адрес (может быть 0x27 или 0x3F)
- Проверьте подключение SDA/SCL
- Настройте контрастность потенциометром на I2C модуле
### LED матрица не работает
- Проверьте подключение SPI (DIN, CLK, CS)
- Проверьте питание матрицы (5V)
## Лицензия
Проект разработан для КГЭУ (Казанский государственный энергетический университет).

2568
stairs_arduino.ino Normal file

File diff suppressed because it is too large Load Diff