Andrea Coronado
/
Seguidor_de_linea
Seguidor de linea
Seguidor_de_linea.cpp@0:68aff7f85b84, 2014-12-03 (annotated)
- Committer:
- AndreaC
- Date:
- Wed Dec 03 13:50:07 2014 +0000
- Revision:
- 0:68aff7f85b84
Seguidor
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
AndreaC | 0:68aff7f85b84 | 1 | #include "mbed.h" |
AndreaC | 0:68aff7f85b84 | 2 | #include "Servo.h" |
AndreaC | 0:68aff7f85b84 | 3 | |
AndreaC | 0:68aff7f85b84 | 4 | // Declaracion de las fotoresistencias |
AndreaC | 0:68aff7f85b84 | 5 | AnalogIn Fotoresistencia1(PTB1); |
AndreaC | 0:68aff7f85b84 | 6 | AnalogIn Fotoresistencia2(PTB2); |
AndreaC | 0:68aff7f85b84 | 7 | |
AndreaC | 0:68aff7f85b84 | 8 | // Declaracion de la comunicacion serial |
AndreaC | 0:68aff7f85b84 | 9 | Serial pc(USBTX,USBRX); |
AndreaC | 0:68aff7f85b84 | 10 | |
AndreaC | 0:68aff7f85b84 | 11 | // Declaracion del servo |
AndreaC | 0:68aff7f85b84 | 12 | PwmOut Servo(PTD4); |
AndreaC | 0:68aff7f85b84 | 13 | |
AndreaC | 0:68aff7f85b84 | 14 | // Declaracion del motor DC |
AndreaC | 0:68aff7f85b84 | 15 | PwmOut motorPin(PTC1); |
AndreaC | 0:68aff7f85b84 | 16 | |
AndreaC | 0:68aff7f85b84 | 17 | int main() |
AndreaC | 0:68aff7f85b84 | 18 | { // Inicializa el programa |
AndreaC | 0:68aff7f85b84 | 19 | Servo.period_ms(20); // Establece el periodo Pwm del servo |
AndreaC | 0:68aff7f85b84 | 20 | |
AndreaC | 0:68aff7f85b84 | 21 | while(1) |
AndreaC | 0:68aff7f85b84 | 22 | { // Inicializa un ciclo infinito |
AndreaC | 0:68aff7f85b84 | 23 | |
AndreaC | 0:68aff7f85b84 | 24 | motorPin = 1; // Se inicializa el motor DC |
AndreaC | 0:68aff7f85b84 | 25 | |
AndreaC | 0:68aff7f85b84 | 26 | // Asigna a valorFotoresistencia el valor obtenido del sensor |
AndreaC | 0:68aff7f85b84 | 27 | float valorFotoresistencia1 = Fotoresistencia1.read(); |
AndreaC | 0:68aff7f85b84 | 28 | float valorFotoresistencia2 = Fotoresistencia2.read(); |
AndreaC | 0:68aff7f85b84 | 29 | |
AndreaC | 0:68aff7f85b84 | 30 | // Imprime para cuestiones de calibracion |
AndreaC | 0:68aff7f85b84 | 31 | pc.printf("%f\t%f\n", valorFotoresistencia1, valorFotoresistencia2); |
AndreaC | 0:68aff7f85b84 | 32 | wait(0.1); // Espera de 0.1 segundos |
AndreaC | 0:68aff7f85b84 | 33 | |
AndreaC | 0:68aff7f85b84 | 34 | while (valorFotoresistencia2 == 0.02 && valorFotoresistencia1 == 0.02) |
AndreaC | 0:68aff7f85b84 | 35 | { // Mientras ambas fotoresistencias detecten blanco... |
AndreaC | 0:68aff7f85b84 | 36 | Servo.pulsewidth_us(1800); // El servo se mantiene en su posicion inicial, hacia adelante |
AndreaC | 0:68aff7f85b84 | 37 | } |
AndreaC | 0:68aff7f85b84 | 38 | |
AndreaC | 0:68aff7f85b84 | 39 | while (valorFotoresistencia2 = 0.02 && valorFotoresistencia1 == 0.01) |
AndreaC | 0:68aff7f85b84 | 40 | { // Mientras una resistencia lea blanco y otra negro... |
AndreaC | 0:68aff7f85b84 | 41 | int movimiento = 1800; // Se declara una variable de nombre movimiento con un valor de 1500 |
AndreaC | 0:68aff7f85b84 | 42 | movimiento = movimiento + 35; // A este valor se le agrega 35 |
AndreaC | 0:68aff7f85b84 | 43 | Servo.pulsewidth_us(movimiento); // El servo se mueve a la posicion que indique la variable movimiento |
AndreaC | 0:68aff7f85b84 | 44 | { |
AndreaC | 0:68aff7f85b84 | 45 | |
AndreaC | 0:68aff7f85b84 | 46 | while (valorFotoresistencia 2 == 0.01 && valorFotoresistencia1 == 0.02) |
AndreaC | 0:68aff7f85b84 | 47 | { // Mientras una resistencia lea negro y la otra blanco... |
AndreaC | 0:68aff7f85b84 | 48 | int movimiento = 1800; // Se declara una variable de nombre movimiento con un valor de 1500 |
AndreaC | 0:68aff7f85b84 | 49 | movimiento = movimiento - 35; // A este valor se le resta 35 |
AndreaC | 0:68aff7f85b84 | 50 | Servo.pulsewidth_us(movimiento); // El servo se mueve a la posicion que indique la variable movimiento |
AndreaC | 0:68aff7f85b84 | 51 | } |
AndreaC | 0:68aff7f85b84 | 52 | } |
AndreaC | 0:68aff7f85b84 | 53 | } |