Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@4:41bbbaecd322, 2016-11-11 (annotated)
- Committer:
- dlweakley
- Date:
- Fri Nov 11 01:54:18 2016 +0000
- Revision:
- 4:41bbbaecd322
- Parent:
- 1:b0fc2c9a5d06
- Child:
- 5:74fcd196ff96
motor methods
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Snay22 | 0:44fc57e03a56 | 1 | #include "mbed.h" |
Snay22 | 0:44fc57e03a56 | 2 | |
Snay22 | 0:44fc57e03a56 | 3 | AnalogIn ain(A0); |
Snay22 | 0:44fc57e03a56 | 4 | Serial pc(USBTX, USBRX); |
Snay22 | 0:44fc57e03a56 | 5 | DigitalOut dout(LED1); |
dlweakley | 4:41bbbaecd322 | 6 | |
dlweakley | 4:41bbbaecd322 | 7 | //motor pins |
dlweakley | 4:41bbbaecd322 | 8 | DigitalOut d2(PTB23); |
dlweakley | 4:41bbbaecd322 | 9 | DigitalOut M1PWM(PTC4); |
dlweakley | 4:41bbbaecd322 | 10 | DigitalOut M2PWM(PTD0); |
dlweakley | 4:41bbbaecd322 | 11 | DigitalOut M1DIR(PTC3); |
dlweakley | 4:41bbbaecd322 | 12 | DigitalOut M2DIR(PTC12); |
dlweakley | 4:41bbbaecd322 | 13 | |
dlweakley | 4:41bbbaecd322 | 14 | void anticlockwise(int steps){ |
dlweakley | 4:41bbbaecd322 | 15 | for (int i = 0; i < 8; i++) { |
dlweakley | 4:41bbbaecd322 | 16 | switch (i) { // activate the ports A0, A2, A3, A3 in a binary sequence for steps |
dlweakley | 4:41bbbaecd322 | 17 | case 0: { |
dlweakley | 4:41bbbaecd322 | 18 | M1PWM=1; |
dlweakley | 4:41bbbaecd322 | 19 | M1DIR=0; |
dlweakley | 4:41bbbaecd322 | 20 | M2PWM=0; |
dlweakley | 4:41bbbaecd322 | 21 | M2DIR=0; |
dlweakley | 4:41bbbaecd322 | 22 | //wait_ms(1); |
dlweakley | 4:41bbbaecd322 | 23 | } |
dlweakley | 4:41bbbaecd322 | 24 | break; |
dlweakley | 4:41bbbaecd322 | 25 | case 1: { |
dlweakley | 4:41bbbaecd322 | 26 | M1PWM=1; |
dlweakley | 4:41bbbaecd322 | 27 | M1DIR=0; |
dlweakley | 4:41bbbaecd322 | 28 | M2PWM=1; |
dlweakley | 4:41bbbaecd322 | 29 | M2DIR=0; |
dlweakley | 4:41bbbaecd322 | 30 | //wait_ms(1); |
dlweakley | 4:41bbbaecd322 | 31 | } |
dlweakley | 4:41bbbaecd322 | 32 | break; |
dlweakley | 4:41bbbaecd322 | 33 | case 2: { |
dlweakley | 4:41bbbaecd322 | 34 | M1PWM=0; |
dlweakley | 4:41bbbaecd322 | 35 | M1DIR=0; |
dlweakley | 4:41bbbaecd322 | 36 | M2PWM=1; |
dlweakley | 4:41bbbaecd322 | 37 | M2DIR=0; |
dlweakley | 4:41bbbaecd322 | 38 | //wait_ms(1); |
dlweakley | 4:41bbbaecd322 | 39 | } |
dlweakley | 4:41bbbaecd322 | 40 | break; |
dlweakley | 4:41bbbaecd322 | 41 | case 3: { |
dlweakley | 4:41bbbaecd322 | 42 | M1PWM=1; |
dlweakley | 4:41bbbaecd322 | 43 | M1DIR=1; |
dlweakley | 4:41bbbaecd322 | 44 | M2PWM=1; |
dlweakley | 4:41bbbaecd322 | 45 | M2DIR=0; |
dlweakley | 4:41bbbaecd322 | 46 | //wait_ms(1); |
dlweakley | 4:41bbbaecd322 | 47 | } |
dlweakley | 4:41bbbaecd322 | 48 | break; |
dlweakley | 4:41bbbaecd322 | 49 | case 4: { |
dlweakley | 4:41bbbaecd322 | 50 | M1PWM=1; |
dlweakley | 4:41bbbaecd322 | 51 | M1DIR=1; |
dlweakley | 4:41bbbaecd322 | 52 | M2PWM=0; |
dlweakley | 4:41bbbaecd322 | 53 | M2DIR=0; |
dlweakley | 4:41bbbaecd322 | 54 | //wait_ms(1); |
dlweakley | 4:41bbbaecd322 | 55 | } |
dlweakley | 4:41bbbaecd322 | 56 | break; |
dlweakley | 4:41bbbaecd322 | 57 | case 5: { |
dlweakley | 4:41bbbaecd322 | 58 | M1PWM=1; |
dlweakley | 4:41bbbaecd322 | 59 | M1DIR=1; |
dlweakley | 4:41bbbaecd322 | 60 | M2PWM=1; |
dlweakley | 4:41bbbaecd322 | 61 | M2DIR=1; |
dlweakley | 4:41bbbaecd322 | 62 | //wait_ms(1); |
dlweakley | 4:41bbbaecd322 | 63 | } |
dlweakley | 4:41bbbaecd322 | 64 | break; |
dlweakley | 4:41bbbaecd322 | 65 | case 6: { |
dlweakley | 4:41bbbaecd322 | 66 | M1PWM=0; |
dlweakley | 4:41bbbaecd322 | 67 | M1DIR=0; |
dlweakley | 4:41bbbaecd322 | 68 | M2PWM=1; |
dlweakley | 4:41bbbaecd322 | 69 | M2DIR=1; |
dlweakley | 4:41bbbaecd322 | 70 | //wait_ms(1); |
dlweakley | 4:41bbbaecd322 | 71 | } |
dlweakley | 4:41bbbaecd322 | 72 | break; |
dlweakley | 4:41bbbaecd322 | 73 | case 7: { |
dlweakley | 4:41bbbaecd322 | 74 | M1PWM=1; |
dlweakley | 4:41bbbaecd322 | 75 | M1DIR=0; |
dlweakley | 4:41bbbaecd322 | 76 | M2PWM=1; |
dlweakley | 4:41bbbaecd322 | 77 | M2DIR=1; |
dlweakley | 4:41bbbaecd322 | 78 | //wait_ms(1); |
dlweakley | 4:41bbbaecd322 | 79 | } |
dlweakley | 4:41bbbaecd322 | 80 | break; |
dlweakley | 4:41bbbaecd322 | 81 | } |
dlweakley | 4:41bbbaecd322 | 82 | wait_us(500); |
dlweakley | 4:41bbbaecd322 | 83 | } |
dlweakley | 4:41bbbaecd322 | 84 | |
dlweakley | 4:41bbbaecd322 | 85 | |
dlweakley | 4:41bbbaecd322 | 86 | // wait time defines the speed |
dlweakley | 4:41bbbaecd322 | 87 | |
dlweakley | 4:41bbbaecd322 | 88 | |
dlweakley | 4:41bbbaecd322 | 89 | } |
dlweakley | 4:41bbbaecd322 | 90 | |
dlweakley | 4:41bbbaecd322 | 91 | void clockwise(){ |
dlweakley | 4:41bbbaecd322 | 92 | for (int i = 0; i < 8; i++) { |
dlweakley | 4:41bbbaecd322 | 93 | switch (i) { // activate the ports A0, A2, A3, A3 in a binary sequence for steps |
dlweakley | 4:41bbbaecd322 | 94 | case 0: { |
dlweakley | 4:41bbbaecd322 | 95 | M1PWM=1; |
dlweakley | 4:41bbbaecd322 | 96 | M1DIR=0; |
dlweakley | 4:41bbbaecd322 | 97 | M2PWM=1; |
dlweakley | 4:41bbbaecd322 | 98 | M2DIR=1; |
dlweakley | 4:41bbbaecd322 | 99 | //wait_us(20); |
dlweakley | 4:41bbbaecd322 | 100 | } |
dlweakley | 4:41bbbaecd322 | 101 | break; |
dlweakley | 4:41bbbaecd322 | 102 | case 1: { |
dlweakley | 4:41bbbaecd322 | 103 | M1PWM=0; |
dlweakley | 4:41bbbaecd322 | 104 | M1DIR=0; |
dlweakley | 4:41bbbaecd322 | 105 | M2PWM=1; |
dlweakley | 4:41bbbaecd322 | 106 | M2DIR=1; |
dlweakley | 4:41bbbaecd322 | 107 | //wait_us(20); |
dlweakley | 4:41bbbaecd322 | 108 | } |
dlweakley | 4:41bbbaecd322 | 109 | break; |
dlweakley | 4:41bbbaecd322 | 110 | case 2: { |
dlweakley | 4:41bbbaecd322 | 111 | M1PWM=1; |
dlweakley | 4:41bbbaecd322 | 112 | M1DIR=1; |
dlweakley | 4:41bbbaecd322 | 113 | M2PWM=1; |
dlweakley | 4:41bbbaecd322 | 114 | M2DIR=1; |
dlweakley | 4:41bbbaecd322 | 115 | //wait_us(20); |
dlweakley | 4:41bbbaecd322 | 116 | } |
dlweakley | 4:41bbbaecd322 | 117 | break; |
dlweakley | 4:41bbbaecd322 | 118 | case 3: { |
dlweakley | 4:41bbbaecd322 | 119 | M1PWM=1; |
dlweakley | 4:41bbbaecd322 | 120 | M1DIR=1; |
dlweakley | 4:41bbbaecd322 | 121 | M2PWM=0; |
dlweakley | 4:41bbbaecd322 | 122 | M2DIR=0; |
dlweakley | 4:41bbbaecd322 | 123 | //wait_us(20); |
dlweakley | 4:41bbbaecd322 | 124 | } |
dlweakley | 4:41bbbaecd322 | 125 | break; |
dlweakley | 4:41bbbaecd322 | 126 | case 4: { |
dlweakley | 4:41bbbaecd322 | 127 | M1PWM=1; |
dlweakley | 4:41bbbaecd322 | 128 | M1DIR=1; |
dlweakley | 4:41bbbaecd322 | 129 | M2PWM=1; |
dlweakley | 4:41bbbaecd322 | 130 | M2DIR=0; |
dlweakley | 4:41bbbaecd322 | 131 | //wait_us(20); |
dlweakley | 4:41bbbaecd322 | 132 | } |
dlweakley | 4:41bbbaecd322 | 133 | break; |
dlweakley | 4:41bbbaecd322 | 134 | case 5: { |
dlweakley | 4:41bbbaecd322 | 135 | M1PWM=0; |
dlweakley | 4:41bbbaecd322 | 136 | M1DIR=0; |
dlweakley | 4:41bbbaecd322 | 137 | M2PWM=1; |
dlweakley | 4:41bbbaecd322 | 138 | M2DIR=0; |
dlweakley | 4:41bbbaecd322 | 139 | //wait_us(20); |
dlweakley | 4:41bbbaecd322 | 140 | } |
dlweakley | 4:41bbbaecd322 | 141 | break; |
dlweakley | 4:41bbbaecd322 | 142 | case 6: { |
dlweakley | 4:41bbbaecd322 | 143 | M1PWM=1; |
dlweakley | 4:41bbbaecd322 | 144 | M1DIR=0; |
dlweakley | 4:41bbbaecd322 | 145 | M2PWM=1; |
dlweakley | 4:41bbbaecd322 | 146 | M2DIR=0; |
dlweakley | 4:41bbbaecd322 | 147 | //wait_us(20); |
dlweakley | 4:41bbbaecd322 | 148 | } |
dlweakley | 4:41bbbaecd322 | 149 | break; |
dlweakley | 4:41bbbaecd322 | 150 | case 7: { |
dlweakley | 4:41bbbaecd322 | 151 | M1PWM=1; |
dlweakley | 4:41bbbaecd322 | 152 | M1DIR=0; |
dlweakley | 4:41bbbaecd322 | 153 | M2PWM=0; |
dlweakley | 4:41bbbaecd322 | 154 | M2DIR=0; |
dlweakley | 4:41bbbaecd322 | 155 | //wait_us(20); |
dlweakley | 4:41bbbaecd322 | 156 | } |
dlweakley | 4:41bbbaecd322 | 157 | break; |
dlweakley | 4:41bbbaecd322 | 158 | } |
dlweakley | 4:41bbbaecd322 | 159 | wait_us(500); |
dlweakley | 4:41bbbaecd322 | 160 | } |
dlweakley | 4:41bbbaecd322 | 161 | |
dlweakley | 4:41bbbaecd322 | 162 | |
dlweakley | 4:41bbbaecd322 | 163 | // wait time defines the speed |
dlweakley | 4:41bbbaecd322 | 164 | |
dlweakley | 4:41bbbaecd322 | 165 | |
dlweakley | 4:41bbbaecd322 | 166 | } |
Snay22 | 0:44fc57e03a56 | 167 | |
Snay22 | 0:44fc57e03a56 | 168 | int main() { |
Snay22 | 0:44fc57e03a56 | 169 | pc.baud(9600); |
Snay22 | 1:b0fc2c9a5d06 | 170 | pc.printf("Getting values\r\n"); |
Snay22 | 0:44fc57e03a56 | 171 | while(1) |
Snay22 | 0:44fc57e03a56 | 172 | { |
Snay22 | 0:44fc57e03a56 | 173 | if(ain > 0.3f) { |
Snay22 | 0:44fc57e03a56 | 174 | dout = 1; |
Snay22 | 0:44fc57e03a56 | 175 | } else { |
Snay22 | 0:44fc57e03a56 | 176 | dout = 0; |
Snay22 | 0:44fc57e03a56 | 177 | } |
Snay22 | 0:44fc57e03a56 | 178 | wait(0.1); |
Snay22 | 1:b0fc2c9a5d06 | 179 | pc.printf("The value is %f\r\n", ain.read()); |
Snay22 | 0:44fc57e03a56 | 180 | } |
Snay22 | 0:44fc57e03a56 | 181 | } |