Inventor's kit experiment four: Using a transistor to drive a motor.
main.cpp@0:b6b6869bee52, 2020-05-20 (annotated)
- Committer:
- haraldblab
- Date:
- Wed May 20 10:42:12 2020 +0000
- Revision:
- 0:b6b6869bee52
Inventor's kit experiment four: Using a transistor to drive a motor.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
haraldblab | 0:b6b6869bee52 | 1 | /* |
haraldblab | 0:b6b6869bee52 | 2 | * Inventor's kit for micro:bit |
haraldblab | 0:b6b6869bee52 | 3 | * Experiment 4: Using a transistor to drive a motor. |
haraldblab | 0:b6b6869bee52 | 4 | */ |
haraldblab | 0:b6b6869bee52 | 5 | |
haraldblab | 0:b6b6869bee52 | 6 | #include "MicroBit.h" |
haraldblab | 0:b6b6869bee52 | 7 | |
haraldblab | 0:b6b6869bee52 | 8 | MicroBit uBit; |
haraldblab | 0:b6b6869bee52 | 9 | |
haraldblab | 0:b6b6869bee52 | 10 | int duty; |
haraldblab | 0:b6b6869bee52 | 11 | |
haraldblab | 0:b6b6869bee52 | 12 | int main() |
haraldblab | 0:b6b6869bee52 | 13 | { |
haraldblab | 0:b6b6869bee52 | 14 | // Initialise the micro:bit runtime. |
haraldblab | 0:b6b6869bee52 | 15 | uBit.init(); |
haraldblab | 0:b6b6869bee52 | 16 | |
haraldblab | 0:b6b6869bee52 | 17 | // intialize the duty cycle |
haraldblab | 0:b6b6869bee52 | 18 | duty = 0; |
haraldblab | 0:b6b6869bee52 | 19 | |
haraldblab | 0:b6b6869bee52 | 20 | while(1) |
haraldblab | 0:b6b6869bee52 | 21 | { |
haraldblab | 0:b6b6869bee52 | 22 | // increase duty (cylle faster) |
haraldblab | 0:b6b6869bee52 | 23 | while (duty < 1023) |
haraldblab | 0:b6b6869bee52 | 24 | { |
haraldblab | 0:b6b6869bee52 | 25 | uBit.io.P0.setAnalogValue(duty); |
haraldblab | 0:b6b6869bee52 | 26 | duty++; |
haraldblab | 0:b6b6869bee52 | 27 | uBit.sleep(10); //sleep for 20ms |
haraldblab | 0:b6b6869bee52 | 28 | } |
haraldblab | 0:b6b6869bee52 | 29 | |
haraldblab | 0:b6b6869bee52 | 30 | // decrease duty (cycle slower) |
haraldblab | 0:b6b6869bee52 | 31 | while (duty > 0) |
haraldblab | 0:b6b6869bee52 | 32 | { |
haraldblab | 0:b6b6869bee52 | 33 | uBit.io.P0.setAnalogValue(duty); |
haraldblab | 0:b6b6869bee52 | 34 | duty--; |
haraldblab | 0:b6b6869bee52 | 35 | uBit.sleep(10); //sleep for 20ms |
haraldblab | 0:b6b6869bee52 | 36 | } |
haraldblab | 0:b6b6869bee52 | 37 | } |
haraldblab | 0:b6b6869bee52 | 38 | } |