RobotsMéxico


    Sensor de Distancia Sharp + Servo

    Comparte

    Admin
    Admin

    Mensajes : 14
    Fecha de inscripción : 14/10/2010

    Sensor de Distancia Sharp + Servo

    Mensaje  Admin el Vie Oct 15, 2010 6:27 pm

    Hola.
    Otra aplicación utilando un sensor de distancia sharp
    [Tienes que estar registrado y conectado para ver este vínculo]
    Junto con un servomotor.
    Acá el Diagrama:

    [Tienes que estar registrado y conectado para ver esa imagen]

    El Código en MikroBasic.

    Código:

    program Tank_Servo_Sharp
    '********************************************************
    'Servo Hitec----50ms=0º                                *
    '              150ms=90º                              *
    '              250ms=180º                              *
    'Xt=4MHZ                                                *
    'Pic16F873A                                            *
    'Sharp Sensor                                          *
    '********************************************************
    Dim Servo as byte  'Variables
    Dim AN as word
    Dim ADC as byte
    dim texto as char[20]

    Sub procedure Pulsout(dim byref Puerto as byte,dim Pin as byte,dim Pos as Byte)
    Setbit(Puerto,Pin)
    Delay_Cyc(Pos)
    Clearbit(Puerto,Pin)
    End sub

    Sub procedure VerSensor
    AN = Adc_Read(0)
    ADC= byte(AN >> 2)
    end sub

    main:
    ADCON1 = %10000000 ' Configuramos los analog inputs y los comparadores
    TRISA = %11111111 ' PORTA son todo entradas
    TRISB = %00000000
    TRISC = %00000000 ' PORTC son todo salidas

    PORTC = %00000000        'inicializamos puertos en 0
    PORTB = %00000000
    Servo=150                'inicializamos sensor a 90º

    Lcd_Init(PORTB)                  ' inicializa LCD en PORTB config
    Lcd_Cmd(lcd_cursor_off)          ' Apaga cursor
    Lcd_Cmd(Lcd_Clear)

    inicio:
    while true

    do
     VerSensor
     ByteToStr(ADC,texto)
     Lcd_Out(1, 1,texto)
     Servo=servo+2                  'Incrementa servo
     Pulsout(PORTC,2,Servo)
     delay_ms(18)
     PORTC=%11
     if ADC>85 then                  'si Detectó sensor entonces..
      do
        VerSensor
        ByteToStr(ADC,texto)
        Lcd_Out(1, 1,texto)
        Lcd_Out(1, 8,"detectado")
        Servo=servo-2                'decrementa servo
        Pulsout(PORTC,2,Servo)
        delay_ms(18)
        PORTC=%10
        Lcd_Cmd(Lcd_Clear)
        if Servo<50 then goto inicio end if  ' si Servo minimo entonces inicio
      loop until ADC<85                'si repite hasta detectar obstaculo
     end if                              'repite hasta Servo max
    loop until Servo>250

    decrementa:
    do
     VerSensor
     ByteToStr(ADC,texto)
     Lcd_Out(1, 1,texto)
     Servo=servo-2
     Pulsout(PORTC,2,Servo)
     delay_ms(18)
     PORTC=%11
     if ADC>85 then
     do
        VerSensor
        ByteToStr(ADC,texto)
        Lcd_Out(1, 1,texto)
        Lcd_Out(1, 8,"detectado")
        Servo=servo+2
        Pulsout(PORTC,2,Servo)
        delay_ms(18)
        PORTC=%10
        Lcd_Cmd(Lcd_Clear)
        if Servo>250 then goto decrementa end if
      loop until ADC<85
     end if
    loop until Servo<50
    wend


    end.



    y el Video de funcionamiento

    [Tienes que estar registrado y conectado para ver este vínculo]


    jpardo

    Mensajes : 1
    Fecha de inscripción : 26/10/2011

    Re: Sensor de Distancia Sharp + Servo

    Mensaje  jpardo el Miér Oct 26, 2011 8:39 pm

    Felicitaciones:

    Interesante el proyecto, desde ya kiero implementar este proyecto para luego hacerlo con un sensor de ultrasonido para que me sense similar a como se ve en el video, quiero aplicarlo para sensar al oponente en un robot sumo, yo programo en Pic Basic Pro... espero colgar mas adelante el proyecto que implemente sobre un medidor de distancia con Ultrasonido y LCD... saludos.

      Fecha y hora actual: Miér Ago 22, 2018 3:16 am