|
|
||
|---|---|---|
| src | ||
| .gitignore | ||
| platformio.ini | ||
| README.md | ||
AutoPlaner
Programm zur digital gesteuerten Höhenverstellung des Hobeltisches.
Funktionsbeschreibung
Der AutoPlaner steuert die Höhenverstellung eines Hobeltisches über einen Schrittmotor mit Closed-Loop-Regelung. Ein Linearmaßstab misst die tatsächliche Tischposition und korrigiert eventuelle Schrittfehler automatisch.
Normalbetrieb: Gewünschte Höhe in mm über das Tastenfeld eingeben (z.B. 1500 für 150,0 mm) und mit E bestätigen. Der Tisch fährt selbstständig auf die Zielposition.
Geschwindigkeitsprofil: Der Motor fährt mit maximaler Geschwindigkeit, bremst 3 mm vor dem Ziel sanft ab und kriecht die letzten 2 mm mit reduzierter Geschwindigkeit präzise ans Ziel.
Menüsystem (#-Taste, zyklisch):
- ISt — Ist-Höhe manuell setzen: aktuelle Tischposition eingeben und mit
Ebestätigen. Nötig nach dem Einschalten wenn der Tisch zwischenzeitlich manuell verstellt wurde. - bri — Display-Helligkeit einstellen: Wert 0–9 eingeben, wird im EEPROM gespeichert.
- CAL — Linearmaßstab kalibrieren: Tisch um eine bekannte Strecke verfahren, Strecke in mm eingeben und mit
Ebestätigen.
Positions-Schnellspeicherung (*-Taste): Speichert die aktuelle Maßstab-Position direkt als Istposition im EEPROM — nützlich nach manuellem Verfahren des Tisches ohne Neustart.
Benötigte Bibliotheken
Benötigte Hardware
- Arduino Nano (ATmega328P)
- Schrittmotor mit 2–3 Nm
- Schrittmotortreiber (z.B. T60S) mit Step/Dir-Eingang
- Zwei 7-Segment-Anzeigen HT16K33 (4-stellig mit Dezimalpunkt, I2C)
- 4×4 Matrix-Tastenfeld
- Linearmaßstab mit Quadratur-Ausgang (z.B. YHSINO KA300, 5 µm Auflösung)
Pin-Belegung
| Pin | Funktion |
|---|---|
| 2 | Linearmaßstab Signal A (Interrupt) |
| 3 | Linearmaßstab Signal B (Interrupt) |
| 4 | Schrittmotor DIR |
| 5 | Tastenfeld Spalte 4 |
| 6 | Tastenfeld Spalte 3 |
| 7 | Tastenfeld Spalte 2 |
| 8 | Tastenfeld Spalte 1 |
| 9 | Schrittmotor STEP (OC1A – erforderlich für FastAccelStepper) |
| 10 | Tastenfeld Zeile 4 |
| 11 | Tastenfeld Zeile 3 |
| 12 | Tastenfeld Zeile 2 |
| 13 | Tastenfeld Zeile 1 |
| A0 | Endschalter Homing |
| A3 | Schrittmotortreiber Enable (LOW = aktiv) |
| A4 | I2C SDA (Anzeigen) |
| A5 | I2C SCL (Anzeigen) |
Tastenbelegung
| Taste | Funktion |
|---|---|
| 0–9 | Zielposition eingeben (in mm, z.B. 150 = 15,0 mm) |
| * | Aktuelle Maßstab-Position als Istposition speichern |
| # | Menü öffnen (zyklisch: Ist-Höhe → Helligkeit → Kalibrierung) |
| S | Motor stoppen / Menü verlassen |
| C | Eingabe löschen |
| H | Homing (falls aktiviert) |
| E | Eingabe bestätigen / Motor starten |
Konfiguration
Alle Einstellungen befinden sich in src/config.h.