Inventor's kit experiment four: Using a transistor to drive a motor.

Dependencies:   microbit

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?

UserRevisionLine numberNew 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 }