es la solución del ejercicio 1

Dependencies:   mbed

Fork of 01-01EjercicioFuncionXY by ferney alberto beltran molina

Committer:
fabeltranm
Date:
Wed Mar 07 00:43:55 2018 +0000
Revision:
4:29a8b1df7fe2
Parent:
3:fe8e265eaf6e
init z

Who changed what in which revision?

UserRevisionLine numberNew contents of line
fabeltranm 0:7ba873404776 1 #include "mbed.h"
fabeltranm 0:7ba873404776 2 #define MAXPOS 50 // en milimetros
fabeltranm 0:7ba873404776 3 #define SS_TIME 100 // en microsegundos
fabeltranm 3:fe8e265eaf6e 4 #define POSDRAW 10
fabeltranm 0:7ba873404776 5
fabeltranm 0:7ba873404776 6 PwmOut myServoX(PB_3);
fabeltranm 0:7ba873404776 7 PwmOut myServoY(PB_4);
fabeltranm 3:fe8e265eaf6e 8 PwmOut myServoZ(PB_5);
fabeltranm 0:7ba873404776 9
fabeltranm 0:7ba873404776 10
fabeltranm 3:fe8e265eaf6e 11 int coord2us(float coord)
fabeltranm 3:fe8e265eaf6e 12 {
fabeltranm 3:fe8e265eaf6e 13 if(0 <= coord <= MAXPOS)
fabeltranm 3:fe8e265eaf6e 14 return int(750+coord*1900/50);// u6
fabeltranm 3:fe8e265eaf6e 15 return 750;
fabeltranm 3:fe8e265eaf6e 16
fabeltranm 3:fe8e265eaf6e 17 }
fabeltranm 3:fe8e265eaf6e 18
fabeltranm 2:878cb2697ab1 19 void draw()
fabeltranm 2:878cb2697ab1 20 {
fabeltranm 3:fe8e265eaf6e 21 myServoZ.pulsewidth_us(POSDRAW);
fabeltranm 3:fe8e265eaf6e 22 wait(1);
fabeltranm 2:878cb2697ab1 23 }
fabeltranm 2:878cb2697ab1 24 void nodraw()
fabeltranm 2:878cb2697ab1 25 {
fabeltranm 3:fe8e265eaf6e 26 myServoZ.pulsewidth_us(MAXPOS);
fabeltranm 3:fe8e265eaf6e 27 wait(1);
fabeltranm 2:878cb2697ab1 28 }
fabeltranm 0:7ba873404776 29 void vertex2d(float x, float y){
fabeltranm 0:7ba873404776 30
fabeltranm 3:fe8e265eaf6e 31 int pulseX = coord2us(x);
fabeltranm 3:fe8e265eaf6e 32 int pulseY = coord2us(y);
fabeltranm 0:7ba873404776 33
fabeltranm 0:7ba873404776 34 myServoX.pulsewidth_us(pulseX);
fabeltranm 0:7ba873404776 35 myServoY.pulsewidth_us(pulseY);
fabeltranm 0:7ba873404776 36 wait_ms(SS_TIME);
fabeltranm 0:7ba873404776 37
fabeltranm 0:7ba873404776 38 }
fabeltranm 0:7ba873404776 39
fabeltranm 0:7ba873404776 40
fabeltranm 3:fe8e265eaf6e 41
fabeltranm 0:7ba873404776 42 int main() {
fabeltranm 0:7ba873404776 43 // configuracion de periodo
fabeltranm 0:7ba873404776 44 myServoX.period_ms(20);
fabeltranm 0:7ba873404776 45 myServoY.period_ms(20);
fabeltranm 4:29a8b1df7fe2 46 myServoZ.period_ms(20);
fabeltranm 0:7ba873404776 47 int posx=0;
fabeltranm 0:7ba873404776 48 int posy=0;
fabeltranm 2:878cb2697ab1 49 draw();
fabeltranm 0:7ba873404776 50 while(1)
fabeltranm 0:7ba873404776 51 {
fabeltranm 0:7ba873404776 52 wait(2);
fabeltranm 0:7ba873404776 53 vertex2d(posx,posy);
fabeltranm 0:7ba873404776 54 posx+=10;
fabeltranm 2:878cb2697ab1 55 if (posx>50){
fabeltranm 2:878cb2697ab1 56 posx=0;
fabeltranm 2:878cb2697ab1 57 nodraw();
fabeltranm 2:878cb2697ab1 58 }
fabeltranm 2:878cb2697ab1 59 posy=posy;
fabeltranm 0:7ba873404776 60 }
fabeltranm 0:7ba873404776 61
fabeltranm 0:7ba873404776 62 }
fabeltranm 0:7ba873404776 63