Autor Tema: Mi codigo funciona dependiendo de las baterias?  (Leído 2390 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado kapow

  • PIC10
  • *
  • Mensajes: 3
Mi codigo funciona dependiendo de las baterias?
« en: 20 de Diciembre de 2007, 21:57:00 »

Buenas,
Estoy haciendo unas pruebas de iniciacion usando el pic 16F876A y un servo(HS422) trucado en continuo.
Para esto he modificado y adaptado un ejemplo de RedPic.

Mi programa hace que el servo este parado o girando en un sentido dependiendo de una señal que entra por un pin y ala vez enciende un led.

El problema viene en que solo me funciona si tanto el  Pic como el servo estan conectados a la misma bateria a 5v (el servo puede variar desde 4,8v hasta 6v)
Si le pongo una bateria exclusiva para el servo a 6V y el pic con la otra de 5V entonces, siempre esta girando el servo, el led si se enciende dependiendo de del input del pin, pero no me para el servo.

Las baterias son iguales en marca y modelo, unas pilas de 9V reguladas por un L7806c y un L7805c, para sacar 6v y 5v respectivamente.

Aqui dejo el codigo por si veis algo:

Código: [Seleccionar]
// Alimentación y pulsos a 5V
// Cuadro de Tiempos :
//    Periodo 20 ms (Frecuencia 50 Hz)
//    Ancho de pulso adaptado para Modelo HS 422
//    Ancho Pulso minimo 0.9 ms
//    Ancho pulso medio  1.5 ms
//    Ancho pulso maximo 2.1 ms
//    TMR0 a 1:16 -> 1 RTCC cada 4.096 ms
//                -> 1 Tick cada 0.096 / 256 = 0.016 ms
//                -> 20 ms = (4 x RTCC completas) + (1 * RTCC - 30 ticks)
//    Ancho Pulso minimo 0.9 ms ->  56 ticks de TMR0
//    Ancho pulso medio  1.5 ms ->  93 ticks de TMR0
//    Ancho pulso maximo 2.1 ms -> 131 ticks de TMR0

#include <16f876.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP,PUT,BROWNOUT

#use delay(clock=4000000)
#use standard_io(b)

#define PIN_SERVO1 PIN_B0 //servos derecho
#define PIN_LED PIN_B1 //salida para el led
#define PIN_CAMBIO PIN_B2 //entrada para el cambio de giro del servo

////////////////////////////////////////////-> variables
const int AJUSTE_FINO_DE_RTCC =  30;
const int ATRAS  =  56;
const int PARAR   =  93;
const int ADELANTE  = 131;

int1 flagRTCC     = 0;
int   contRTCC    = 0;
int1 flagSERVO1   = 0;
int   tSERVO1     = PARAR;

///////////////////////////////////////////


#int_RTCC
void RTCC_isr(){

   ++contRTCC;   

   if(contRTCC==4){
      set_TIMER0(AJUSTE_FINO_DE_RTCC); //lo ajustamos a 30 para que empieze
                                       //a contar apartir de ahi en el sigueinte RTCC
   }
   
   if(contRTCC==5){//20ms
      flagRTCC=1;
      contRTCC=0x00;
     
   }           
}


void main() {

   int ValTIMER0;   
   
   setup_counters(RTCC_INTERNAL,RTCC_DIV_16); //preescaler/divisor del timer a 1:16
   set_TIMER0(0);//ponemos el timer a cero a contar
 
   enable_interrupts(global);   //activa todas las interrupciones
   enable_interrupts(INT_RTCC); //activa el desbordamiento del timer0(RTCC)             

   do {
      // DISPARO DEL PULSO PWM
      if(flagRTCC==1){
         flagRTCC=0;
         output_high(PIN_SERVO1);
         flagSERVO1=1;   
      }

      // CONTROL DE ANCHO DEL PULSO PWM
      if(flagSERVO1==1){
         valTIMER0 = get_TIMER0();
         if(valTIMER0>tSERVO1){
            flagSERVO1=0;
            output_low(PIN_SERVO1);
         }         
      }
     
      //CONTROL DE CAMBIO DE SENTIDO DEL SERVO
      if(!INPUT(PIN_CAMBIO)){         
         tSERVO1=ADELANTE;
         output_high(PIN_LED);
      }else{
         output_low(PIN_LED);
         tSERVO1=ATRAS;
      }
                 
   } while (TRUE);
}


Agradeceria cualquier respuesta, muchas gracias

Desconectado Azicuetano

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1020
    • Aplicaciones Electrónicas en Alicante.
Re: Mi codigo funciona dependiendo de las baterias?
« Respuesta #1 en: 21 de Diciembre de 2007, 04:24:58 »
Hola kapow! Bienvenido al foro!

Podrías poner el esquema electrónico? Eso ayudará mucho a los colegas para ver si hay algún error hardware.

A mi se me ocurre que puedes tener las dos masas separadas y que por eso el PIC no te activa/desactiva el motor.


Un saludo desde Alicante.

Desconectado huichoman

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 186
    • Pequeñas piezas para grandes proyectos.
Re: Mi codigo funciona dependiendo de las baterias?
« Respuesta #2 en: 21 de Diciembre de 2007, 05:41:28 »
Lo mismo pienso. Debes de tener las masa separadas. Une las dos tierras de las baterias.

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: Mi codigo funciona dependiendo de las baterias?
« Respuesta #3 en: 21 de Diciembre de 2007, 08:12:49 »
Hola Kapow!!!

Tal como dicen los amigos mas arriba, lo mas probable es que sea un fallo del hard.
¿Has unido los negativos de las baterias?

El esquema electrico ayudaria bastante a la hora de darte una mano. Saludos!
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado kapow

  • PIC10
  • *
  • Mensajes: 3
Re: Mi codigo funciona dependiendo de las baterias?
« Respuesta #4 en: 21 de Diciembre de 2007, 10:02:05 »
Muchas gracias!!! :-)

Teniais razon, era solo eso, digo "solo" pero en verdad me estaba volviendo loco, no sabia a que se debia.

Bueno como soy recien iniciado se me esta permitido equivocarme, no? jejeje

Gracias de nuevo, y sobre todo por la rapidez que os habeis dado en responder.

Saludos!



Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: Mi codigo funciona dependiendo de las baterias?
« Respuesta #5 en: 21 de Diciembre de 2007, 10:12:12 »
Bueno como soy recien iniciado se me esta permitido equivocarme, no? jejeje

¡No te preocupes! Es algo que seguramente te va a pasar siempre. "Equivocarse" es una consecuencia de probar cosas nuevas, y en un hobby (o trabajo) como este es imposible no hacerlo.

Felicitaciones, y suerte con el proyecto.

Saludos!
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Mi codigo funciona dependiendo de las baterias?
« Respuesta #6 en: 21 de Diciembre de 2007, 10:54:09 »
Bueno como soy recien iniciado se me esta permitido equivocarme, no? jejeje

Jeje, ojalá solo ocurriera cuando uno recién comienza  :mrgreen: :mrgreen:

Como te dijo ariel es común equivocarse, solo que en estas cosas por ahi cuando uno se equivoca se "rompe" o "quema" algo y a veces ... lo más caro  :x :x

De todas formas, en mi humilde opinión considero que la idea es que cada vez uno cometa menos errores o al menos no siempre los "mismos" errores, eso demuestra que uno va aprendiendo  :mrgreen: :mrgreen:
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado El_Guitre

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1046
Re: Mi codigo funciona dependiendo de las baterias?
« Respuesta #7 en: 21 de Diciembre de 2007, 11:51:10 »
Esto me recuerda a una vez que haciendo un trabajo practico para la facultad, con un circuito que habiamos armado para tomar datos por el puerto paralelo, de pronto dejamos de detectar los sensores con la notebook, encima mediamos en el protoboard y todo estaba bien, pero de un momento a otro perdimos las entradas en la notebook.

A todo esto el dueño de la notebook se empeso a preocupar por la integridad de su puerto paralelo.

Despues de enloquecernos y de estar a punto de desarmar la notebook descubrimos que se habian desconectado las masas.

Eso si desde ahi es lo primero que se chequea siempre!! Un saludo para todos y felices fiestas.
« Última modificación: 21 de Diciembre de 2007, 11:53:34 por El_Guitre »

Desconectado kapow

  • PIC10
  • *
  • Mensajes: 3
Re: Mi codigo funciona dependiendo de las baterias?
« Respuesta #8 en: 21 de Diciembre de 2007, 15:06:59 »
jejejeje lo tendre siempre en cuenta, y si, lo suyo es no cometer el mismo error dos veces :D

Aunque siendo seres humanos... ya sabeis que estamos destinados a tropezar dos veces con la misma piedra.

Un saludo y felices fiestas!

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Mi codigo funciona dependiendo de las baterias?
« Respuesta #9 en: 24 de Diciembre de 2007, 12:01:08 »
Conozco gente que no se equivoca nunca !!

Es la que no hace nada !! :D :D

Un gran abrazo y felices fiestas para todos!!! :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.


 

anything