Dominik Święch
/
Engine
Czosnekengine/UART
Fork of Czosnekengine by
Engine.cpp@0:a0c8b50a7292, 2016-05-18 (annotated)
- Committer:
- yruiewyrui3
- Date:
- Wed May 18 12:08:19 2016 +0000
- Revision:
- 0:a0c8b50a7292
losowo przod i tyl
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
yruiewyrui3 | 0:a0c8b50a7292 | 1 | #include "Engine.h" |
yruiewyrui3 | 0:a0c8b50a7292 | 2 | |
yruiewyrui3 | 0:a0c8b50a7292 | 3 | // przelicza procenty na pwn: |
yruiewyrui3 | 0:a0c8b50a7292 | 4 | // - wartosc poczatkowa - 0.2377, |
yruiewyrui3 | 0:a0c8b50a7292 | 5 | // - prog - 0.0077 |
yruiewyrui3 | 0:a0c8b50a7292 | 6 | float Engine::getPwm(float speed){ |
yruiewyrui3 | 0:a0c8b50a7292 | 7 | if (speed == 0) |
yruiewyrui3 | 0:a0c8b50a7292 | 8 | return 0; |
yruiewyrui3 | 0:a0c8b50a7292 | 9 | else if (speed > 0) |
yruiewyrui3 | 0:a0c8b50a7292 | 10 | return 0.2377f + (fabs(speed) - 1) * 0.0077f; |
yruiewyrui3 | 0:a0c8b50a7292 | 11 | else |
yruiewyrui3 | 0:a0c8b50a7292 | 12 | return 0.406f + (fabs(speed) - 1) * 0.006f; |
yruiewyrui3 | 0:a0c8b50a7292 | 13 | } |
yruiewyrui3 | 0:a0c8b50a7292 | 14 | |
yruiewyrui3 | 0:a0c8b50a7292 | 15 | void Engine::move(int speed){ |
yruiewyrui3 | 0:a0c8b50a7292 | 16 | if (speed == 0){ |
yruiewyrui3 | 0:a0c8b50a7292 | 17 | //soft stop |
yruiewyrui3 | 0:a0c8b50a7292 | 18 | _fwd = 0; |
yruiewyrui3 | 0:a0c8b50a7292 | 19 | _rev = 0; |
yruiewyrui3 | 0:a0c8b50a7292 | 20 | return; |
yruiewyrui3 | 0:a0c8b50a7292 | 21 | } |
yruiewyrui3 | 0:a0c8b50a7292 | 22 | |
yruiewyrui3 | 0:a0c8b50a7292 | 23 | if (speed < 0){ |
yruiewyrui3 | 0:a0c8b50a7292 | 24 | _fwd = 0; |
yruiewyrui3 | 0:a0c8b50a7292 | 25 | _rev = 1; |
yruiewyrui3 | 0:a0c8b50a7292 | 26 | } |
yruiewyrui3 | 0:a0c8b50a7292 | 27 | else{ |
yruiewyrui3 | 0:a0c8b50a7292 | 28 | _fwd = 1; |
yruiewyrui3 | 0:a0c8b50a7292 | 29 | _rev = 0; |
yruiewyrui3 | 0:a0c8b50a7292 | 30 | } |
yruiewyrui3 | 0:a0c8b50a7292 | 31 | _pwm = getPwm(speed); |
yruiewyrui3 | 0:a0c8b50a7292 | 32 | } |
yruiewyrui3 | 0:a0c8b50a7292 | 33 | |
yruiewyrui3 | 0:a0c8b50a7292 | 34 | //hard stop |
yruiewyrui3 | 0:a0c8b50a7292 | 35 | void Engine::stop(){ |
yruiewyrui3 | 0:a0c8b50a7292 | 36 | _pwm = 0; |
yruiewyrui3 | 0:a0c8b50a7292 | 37 | } |