with optic sensor
Dependencies: Stepper mbed PinDetect
main.cpp@4:82cd644fef51, 2019-09-04 (annotated)
- Committer:
- rschimpf78
- Date:
- Wed Sep 04 20:21:21 2019 +0000
- Revision:
- 4:82cd644fef51
- Parent:
- 3:5410ddd83592
- Child:
- 5:1b451520ed5f
added counter for optic switch;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
rschimpf78 | 0:88834eed3de0 | 1 | #include "mbed.h" |
rschimpf78 | 0:88834eed3de0 | 2 | #include "Stepper.h" |
rschimpf78 | 2:65c5232b9465 | 3 | #include "string" |
rschimpf78 | 2:65c5232b9465 | 4 | DigitalIn optic(D5); |
rschimpf78 | 2:65c5232b9465 | 5 | Stepper mot(D3,D2); //(PUL+,DIR+) |
rschimpf78 | 2:65c5232b9465 | 6 | DigitalOut en(D4); |
rschimpf78 | 0:88834eed3de0 | 7 | Serial pc(USBTX, USBRX); |
rschimpf78 | 4:82cd644fef51 | 8 | DigitalOut myled(LED1); |
rschimpf78 | 4:82cd644fef51 | 9 | DigitalOut myled2(LED2); |
rschimpf78 | 4:82cd644fef51 | 10 | DigitalOut myled3(LED3); |
rschimpf78 | 4:82cd644fef51 | 11 | DigitalOut myled4(LED4); |
rschimpf78 | 4:82cd644fef51 | 12 | int main(){ |
rschimpf78 | 4:82cd644fef51 | 13 | int count = 0; |
rschimpf78 | 4:82cd644fef51 | 14 | int old_optic=0; |
rschimpf78 | 4:82cd644fef51 | 15 | int new_optic; |
rschimpf78 | 4:82cd644fef51 | 16 | optic.mode(PullDown); |
rschimpf78 | 4:82cd644fef51 | 17 | wait(0.01); |
rschimpf78 | 4:82cd644fef51 | 18 | //int positionnum = 0; |
rschimpf78 | 4:82cd644fef51 | 19 | //int slot = 0; |
rschimpf78 | 4:82cd644fef51 | 20 | //en = 1; // stepper motor off |
rschimpf78 | 4:82cd644fef51 | 21 | while(1) { |
rschimpf78 | 4:82cd644fef51 | 22 | new_optic = optic; |
rschimpf78 | 4:82cd644fef51 | 23 | //if (new_optic!= old_optic){ |
rschimpf78 | 4:82cd644fef51 | 24 | pc.printf("\new optic:%ld",new_optic); |
rschimpf78 | 4:82cd644fef51 | 25 | wait(.5); |
rschimpf78 | 4:82cd644fef51 | 26 | if ((new_optic==1) && (old_optic==0)){ |
rschimpf78 | 4:82cd644fef51 | 27 | myled4 = count & 0x01; |
rschimpf78 | 4:82cd644fef51 | 28 | myled3 = (count & 0x02)>>1; |
rschimpf78 | 4:82cd644fef51 | 29 | myled2 = (count & 0x04)>>2; |
rschimpf78 | 4:82cd644fef51 | 30 | myled = (count & 0x08)>>3; |
rschimpf78 | 4:82cd644fef51 | 31 | count++; |
rschimpf78 | 4:82cd644fef51 | 32 | pc.printf("\ncount:%ld",count); |
rschimpf78 | 4:82cd644fef51 | 33 | } |
rschimpf78 | 4:82cd644fef51 | 34 | |
rschimpf78 | 4:82cd644fef51 | 35 | old_optic = new_optic; |
rschimpf78 | 4:82cd644fef51 | 36 | wait(.5); |
rschimpf78 | 4:82cd644fef51 | 37 | pc.printf("\ncount:%ld",count); |
rschimpf78 | 4:82cd644fef51 | 38 | |
rschimpf78 | 4:82cd644fef51 | 39 | } |
rschimpf78 | 4:82cd644fef51 | 40 | } |
rschimpf78 | 0:88834eed3de0 | 41 | |
rschimpf78 | 4:82cd644fef51 | 42 | /*while(1) |
rschimpf78 | 2:65c5232b9465 | 43 | { |
rschimpf78 | 2:65c5232b9465 | 44 | pc.printf("\n\n\nEnter desired position: "); |
rschimpf78 | 3:5410ddd83592 | 45 | pc.scanf("%d",&slot); |
rschimpf78 | 3:5410ddd83592 | 46 | |
rschimpf78 | 4:82cd644fef51 | 47 | new_optic = optic; |
rschimpf78 | 4:82cd644fef51 | 48 | while (slot!=positionnum){ |
rschimpf78 | 4:82cd644fef51 | 49 | |
rschimpf78 | 4:82cd644fef51 | 50 | if (slot>positionnum){ |
rschimpf78 | 4:82cd644fef51 | 51 | en = 0; |
rschimpf78 | 4:82cd644fef51 | 52 | mot.setSpeed(500); |
rschimpf78 | 4:82cd644fef51 | 53 | mot.rotate(1); |
rschimpf78 | 4:82cd644fef51 | 54 | } |
rschimpf78 | 4:82cd644fef51 | 55 | |
rschimpf78 | 4:82cd644fef51 | 56 | |
rschimpf78 | 3:5410ddd83592 | 57 | //while(optic == 0) |
rschimpf78 | 3:5410ddd83592 | 58 | //{ |
rschimpf78 | 3:5410ddd83592 | 59 | //wait(1); |
rschimpf78 | 3:5410ddd83592 | 60 | //mot.goesTo(steps+25); //go to absolute step position |
rschimpf78 | 3:5410ddd83592 | 61 | //while(!mot.stopped()); |
rschimpf78 | 3:5410ddd83592 | 62 | //steps = mot.getPosition(); |
rschimpf78 | 3:5410ddd83592 | 63 | //pc.printf("\nNot in Position", steps); |
rschimpf78 | 3:5410ddd83592 | 64 | //} |
rschimpf78 | 2:65c5232b9465 | 65 | pc.printf("\nIn Position"); |
rschimpf78 | 2:65c5232b9465 | 66 | en = 1; //disable the motor and driver |
rschimpf78 | 2:65c5232b9465 | 67 | //if (tickcount<steps) |
rschimpf78 | 2:65c5232b9465 | 68 | //{ |
rschimpf78 | 2:65c5232b9465 | 69 | //mot.goesTo(steps+25); |
rschimpf78 | 2:65c5232b9465 | 70 | //while(!mot.stopped()); |
rschimpf78 | 2:65c5232b9465 | 71 | //steps = mot.getPosition(); |
rschimpf78 | 2:65c5232b9465 | 72 | //pc.printf("\nNot in Position", steps); |
rschimpf78 | 2:65c5232b9465 | 73 | //} |
rschimpf78 | 2:65c5232b9465 | 74 | //if (tickcount>steps) |
rschimpf78 | 2:65c5232b9465 | 75 | //{ |
rschimpf78 | 2:65c5232b9465 | 76 | //mot.goesTo(steps-25); |
rschimpf78 | 2:65c5232b9465 | 77 | //while(!mot.stopped()); |
rschimpf78 | 2:65c5232b9465 | 78 | //steps = mot.getPosition(); |
rschimpf78 | 2:65c5232b9465 | 79 | //pc.printf("\nNot in Position", steps); |
rschimpf78 | 2:65c5232b9465 | 80 | //} |
rschimpf78 | 0:88834eed3de0 | 81 | } |
rschimpf78 | 4:82cd644fef51 | 82 | }*/ |
rschimpf78 | 4:82cd644fef51 | 83 |