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
00001 #include "mbed.h" 00002 00003 DigitalOut myled(LED1); 00004 DigitalIn giro(D2); 00005 DigitalIn modo(D3); 00006 AnalogIn pot(A0); 00007 BusOut stepper(D5, D6, D7, D8); 00008 Timer t1; 00009 Timer t2; 00010 int valbot1; 00011 int valbot2; 00012 int caso; 00013 float pwm; 00014 Serial pc (USBTX,USBRX); 00015 00016 int main() { 00017 valbot1 = 0; 00018 valbot2 = 0; 00019 myled = 0; 00020 wait(0.4); 00021 myled = 1; 00022 wait(0.4); 00023 float x; 00024 00025 00026 stepper = 8; 00027 wait(0.5); 00028 t1.start(); 00029 t2.start(); 00030 while(1) { 00031 00032 x= pot; 00033 pwm = ((x/0.004348)+20); 00034 00035 if (t1.read() == 0) { 00036 t1.start(); 00037 } 00038 if (t2.read() == 0) { 00039 t2.start(); 00040 } 00041 00042 switch (caso){ 00043 00044 case 1: 00045 if (stepper == 0) { //como el corrimiento de bits se fue a 0, ya no me sirve y los reinicio a 8 (osea 1000) 00046 stepper = 8; 00047 } 00048 break; 00049 00050 case 2: 00051 if (stepper == 0) { // al igual que en el caso 1 pero ahora se inicializa en 1 (0001) 00052 stepper = 1; 00053 } 00054 break; 00055 00056 case 3: 00057 if (stepper == 1) { //en este caso ya no llega a desaparecer el bit con (0000) pero cuando en vez de 2 bits se visualiza 1 solo (0001) ya es error y se coniverte en el requerido (1001) 00058 stepper = 9; 00059 } 00060 if (stepper == 4) { //aquí cuando hay un (0100 porque el corrimiento asi se llevo 1 bit este se convierte en (0110)) 00061 stepper = 12; 00062 } 00063 break; 00064 00065 case 4: 00066 if (stepper == 8) { 00067 stepper = 9; 00068 } 00069 if (stepper == 2) { 00070 stepper = 3; 00071 } 00072 break; 00073 } 00074 00075 pc.printf("%d \n",t1.read_ms()); // para checar la lectura si esta llegando al valor deseado y reiniciandose antes de entrar al if 00076 if (t1.read_ms() >= pwm ){ 00077 switch (caso){ //abro un switch case dependiendo de las 4 combinaciones posibles de los 2 botones 00078 00079 case 1: 00080 stepper = stepper >> 1; //hago un corrimiento hacia la derecha 00081 t1.reset(); 00082 break; 00083 00084 case 2: 00085 stepper = stepper << 1; //se hace un corrimiento hacia la izquierda 00086 t1.reset(); 00087 break; 00088 00089 case 3: 00090 stepper = stepper >> 1; //corrimiento hacia la derecha 00091 t1.reset(); 00092 break; 00093 00094 case 4: 00095 stepper = stepper << 1; //corrimiento hacia la izquierda 00096 t1.reset(); // se pone el reset dentro de los case ya que sino se vera interrumpido por el break; 00097 break; 00098 } 00099 00100 00101 } 00102 00103 if (giro == 0){ // es cero porque es pullup 00104 valbot1 = !valbot1; //cambio de estado entre valbot1 y 2 00105 } 00106 if (modo == 0){ 00107 valbot2 = !valbot2; 00108 } 00109 00110 if (valbot1 ==0 && valbot2 == 0){ 00111 00112 caso = 1; 00113 } else if (valbot1 == 1 && valbot2 == 0){ 00114 caso = 2; 00115 } else if (valbot1 == 0 && valbot2 == 1){ 00116 caso = 3; 00117 } else if (valbot1 == 1 && valbot2 == 1){ 00118 caso = 4; 00119 } 00120 00121 00122 } 00123 } 00124
Generated on Wed Aug 17 2022 04:23:16 by
1.7.2