with optic sensor

Dependencies:   Stepper mbed PinDetect

Committer:
rschimpf78
Date:
Wed Sep 04 20:54:45 2019 +0000
Revision:
5:1b451520ed5f
Parent:
4:82cd644fef51
Child:
6:7cd69300073f
update;

Who changed what in which revision?

UserRevisionLine numberNew 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 5:1b451520ed5f 13 en = 1;
rschimpf78 4:82cd644fef51 14 int count = 0;
rschimpf78 4:82cd644fef51 15 int old_optic=0;
rschimpf78 4:82cd644fef51 16 int new_optic;
rschimpf78 4:82cd644fef51 17 optic.mode(PullDown);
rschimpf78 4:82cd644fef51 18 wait(0.01);
rschimpf78 5:1b451520ed5f 19 int slot = 0;
rschimpf78 5:1b451520ed5f 20
rschimpf78 4:82cd644fef51 21 while(1) {
rschimpf78 5:1b451520ed5f 22 mot.stop();
rschimpf78 5:1b451520ed5f 23 en = 1;
rschimpf78 5:1b451520ed5f 24
rschimpf78 2:65c5232b9465 25 pc.printf("\n\n\nEnter desired position: ");
rschimpf78 3:5410ddd83592 26 pc.scanf("%d",&slot);
rschimpf78 5:1b451520ed5f 27
rschimpf78 5:1b451520ed5f 28
rschimpf78 5:1b451520ed5f 29 while (slot>count){
rschimpf78 4:82cd644fef51 30
rschimpf78 4:82cd644fef51 31 en = 0;
rschimpf78 5:1b451520ed5f 32 wait(.001);
rschimpf78 5:1b451520ed5f 33 mot.setSpeed(300);
rschimpf78 5:1b451520ed5f 34 wait(.001);
rschimpf78 4:82cd644fef51 35 mot.rotate(1);
rschimpf78 5:1b451520ed5f 36 new_optic = optic;
rschimpf78 4:82cd644fef51 37
rschimpf78 5:1b451520ed5f 38 if ((new_optic==1) && (old_optic==0)){
rschimpf78 5:1b451520ed5f 39 myled4 = count & 0x01;
rschimpf78 5:1b451520ed5f 40 myled3 = (count & 0x02)>>1;
rschimpf78 5:1b451520ed5f 41 myled2 = (count & 0x04)>>2;
rschimpf78 5:1b451520ed5f 42 myled = (count & 0x08)>>3;
rschimpf78 5:1b451520ed5f 43 count++;
rschimpf78 5:1b451520ed5f 44 pc.printf("\ncount:%ld",count);
rschimpf78 5:1b451520ed5f 45 }
rschimpf78 5:1b451520ed5f 46 old_optic = new_optic;
rschimpf78 4:82cd644fef51 47
rschimpf78 5:1b451520ed5f 48 }
rschimpf78 5:1b451520ed5f 49
rschimpf78 5:1b451520ed5f 50 while (slot<count){
rschimpf78 5:1b451520ed5f 51
rschimpf78 5:1b451520ed5f 52 en = 0;
rschimpf78 5:1b451520ed5f 53 wait(.001);
rschimpf78 5:1b451520ed5f 54 mot.setSpeed(300);
rschimpf78 5:1b451520ed5f 55 wait(.001);
rschimpf78 5:1b451520ed5f 56 mot.rotate(0);
rschimpf78 5:1b451520ed5f 57 new_optic = optic;
rschimpf78 5:1b451520ed5f 58
rschimpf78 5:1b451520ed5f 59 if ((new_optic==1) && (old_optic==0)){
rschimpf78 5:1b451520ed5f 60 myled4 = count & 0x01;
rschimpf78 5:1b451520ed5f 61 myled3 = (count & 0x02)>>1;
rschimpf78 5:1b451520ed5f 62 myled2 = (count & 0x04)>>2;
rschimpf78 5:1b451520ed5f 63 myled = (count & 0x08)>>3;
rschimpf78 5:1b451520ed5f 64 count++;
rschimpf78 5:1b451520ed5f 65 pc.printf("\ncount:%ld",count);
rschimpf78 5:1b451520ed5f 66 }
rschimpf78 5:1b451520ed5f 67
rschimpf78 5:1b451520ed5f 68 old_optic = new_optic;
rschimpf78 5:1b451520ed5f 69 }
rschimpf78 5:1b451520ed5f 70
rschimpf78 5:1b451520ed5f 71 }
rschimpf78 5:1b451520ed5f 72 }