Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

26/07/2016 #101

Avatar de papirrin

y si pones un potenciometro multivueltas y vas viendo donde es mas estable en lugar de que sean 2.5

ahora colocando un motor de 12 volt el duty no tendría que estar al 100% ya que es todo su ciclo no enciende y apaga como las bobinas, eso no lo hace
eso no lo entendi, es bueno o malo?
26/07/2016 #102

Avatar de callecuatro1976

Si voy hacer eso, otra cosa es la pata 11 la medición se puede regulas bien, voy a colocar un preset multivuelta para calibrar mejor, vamos mejor
26/07/2016 #103

Avatar de papirrin

oye de donde sacas la señal que va al lm2907?

Enviado desde mi ZTE Blade L2 mediante Tapatalk
27/07/2016 #104

Avatar de callecuatro1976

De una máquina de tatuar que son 2 bobinas que enciende y apaga constanteme y ese prende y apaga son los pulsos, una onda muy ruidosa y de baja señal
27/07/2016 #105

Avatar de papirrin

y que accionan esas bobinas ? algun trasnsistor? puedes poner fotos,?

Enviado desde mi ZTE Blade L2 mediante Tapatalk
27/07/2016 #106

Avatar de callecuatro1976

Ahí te subo las fotos trabajan ebtre 6 y 12 volt
Imágenes Adjuntas
Tipo de Archivo: jpg maquinatatuar.jpg (51,5 KB (Kilobytes), 16 visitas)
Tipo de Archivo: jpg images.jpg (4,8 KB (Kilobytes), 12 visitas)
Tipo de Archivo: jpg 80d50830561be1ee1011c1fa786489f2.jpg (7,7 KB (Kilobytes), 13 visitas)
27/07/2016 #107

Avatar de papirrin

ya voy entendiendo XD, como que a ese sistema le faltaria algo como un diodo volante, red snubber o algo asi, porque eso deberia ser muy ruidoso en terminos electricos. la verdad me gustaria recomendarte y hacer pruebas pero no tengo nada que me pudiera servir para experimentar y verlo en el osciloscopio.

pero podriamos indagar un poco como eliminar esos ruidos. estamos en contacto y si encuentras algo me gustaria que nos lo compartieras.
27/07/2016 #108

Avatar de callecuatro1976

Si uso dos diodos enfrentados y de ahí tomo la señal todo esta funcionando muy bien ló único son esos picos altos, debe ser la bobina
04/08/2016 #109

Avatar de callecuatro1976

Va tomando forma me falta la caja y la fuente, se podría hacer una fuente tipo buck con un mosfet y manejarlo con el Pic con pulsadores voy a ir probando
Imágenes Adjuntas
Tipo de Archivo: jpg DSC_0206.jpg (81,4 KB (Kilobytes), 15 visitas)
Tipo de Archivo: jpg DSC_0205.jpg (36,5 KB (Kilobytes), 14 visitas)
24/08/2016 #110

Avatar de callecuatro1976

Hola! Volví con una consulta quiero mostrar el porcentaje del ciclo alto
Stl = ciclo_alto;
Porcentaje1 = (Stl * 100);
Y muestro porcentaje1 en el lcd y no me muestra nada porque?
24/08/2016 #111

Avatar de papirrin

Pon mas información del codigo que usas finalmente, puede ser que desborde las variables

Enviado desde mi ALCATEL ONE TOUCH 6033A mediante Tapatalk
25/08/2016 #112

Avatar de callecuatro1976

Código:
#include <16f883.h>
#device ADC=10
#use delay(internal = 8MHz)
#define LCD_DATA_PORT getenv("SFR:PORTC")
#include <lcd.c>
#define led PIN_B5
int1 flagHayDatos=0; 
float const ticks_us = 4.0; // microsegundos por Tick del Timer 1 @ 8 MHz. (Osc. Interno)
//float const ticks_us = 8.0; // microsegundos por Tick del Timer 1 @ 8 MHz. (Osc. Cristal)
int8 flancos;
int8 flag_flanco;
int16 periodo1,periodo2,periodo3;
int16 tiempo_alto,tiempo_bajo,tiempo_total;
float us_alto,us_bajo,us_total;
float frecuencia;
#INT_EXT
void sdi_externa_RB0 (void)
{
flancos++; // Incrementar la variable "flancos"

if(!flag_flanco) // Si el flanco del pulso es bajo...
{
if(flancos == 1) // Si el conteo de flancos es 1...
{
set_timer1(0); // Limpiar el Timer 1
periodo1 = get_timer1(); // "periodo1" tendrá el tiempo del pulso en alto.
}
if(flancos == 3) // Si el conteo de flancos es 3...
periodo3 = get_timer1(); // "periodo3" tendrá el tiempo del pulso en alto.

EXT_INT_EDGE(H_TO_L); // Establecer la interrupción por flanco de bajada.
flag_flanco = 1; // Indicar que el próximo flanco será de bajada.
}
else // Caso contrario. (Pulso en estado alto)...
{
periodo2 = get_timer1(); // "periodo2" tendrá el valor del pulso en bajo.
EXT_INT_EDGE(L_TO_H); // Establecer la interrupción por flanco de subida.
flag_flanco = 0; // Indicar que el próximo flanco será de subida.
if(flagHayDatos==0){ // Si los datos anteriores han sido procesados ...
flagHayDatos=1; // Indico que ya hay nuevos datos de flancos para calcular
}
}
if(flancos > 2)flancos = 0; // Si la variable "flancos" llega a 3, ponerla a 0.
}
void main()
{
long int var1=0, var2=0, var3=0;
float valor, valor1,valor2;
float duty;
int8 porcentaje;

setup_adc_ports(sAN1|sAN3);
setup_adc(ADC_CLOCK_INTERNAL );
setup_timer_1(T1_INTERNAL | T1_DIV_BY_8);
enable_interrupts(int_ext);
ext_int_edge(0,L_TO_H);
enable_interrupts(global);

lcd_init();

#ZERO_RAM // Limpiar RAM. (Variables en 0)

while (true)
{


for(var1=0;var1<50;var1++)
{
valor=valor+ get_timer1();
delay_us(62); 
}
periodo1=valor/50;

for(var2=0;var2<50;var2++)
{
valor1=valor1+ get_timer1();
delay_us(62); 
}
periodo2=valor/50;
for(var3=0;var3<50;var3++)
{
valor2=valor2+ get_timer1();
delay_us(62); 
}
periodo3=valor/50;

if(flagHayDatos==1){
output_HIGH(led);
if((periodo3 > periodo2) && (periodo2 > periodo1))
{
tiempo_alto = periodo2 - periodo1; // Obtener el periodo del pulso en estado alto.
tiempo_bajo = periodo3 - periodo2; // Obtener el periodo del pulso en estado bajo.
tiempo_total = tiempo_alto + tiempo_bajo; // Obtener el periodo de la frecuencia.
us_alto = ticks_us * tiempo_alto; // Obtener el periodo en microsegundos del pulso en alto.
us_bajo = ticks_us * tiempo_bajo; // Obtener el periodo en microsegundos del pulso en bajo.
us_total = ticks_us * tiempo_total; // Obtener los microsegundos en total de la frecuencia.
frecuencia = 1 / (us_total / 1000000); // Obtener la frecuencia.
duty = ((float) tiempo_bajo / (float)(tiempo_bajo + tiempo_alto));
porcentaje = (duty * 100) + 0.5; // Físicamente el + 0.5 puede no ser necesario. (Ajusta desviación pero consume ROM)
} 
flagHayDatos=0; 
}
lcd_gotoxy(1,1);
printf(lcd_putc,"CPS:%03.0fHz",frecuencia);
lcd_gotoxy(1,2);
printf(lcd_putc,"DUTY:%02u%c",porcentaje,0x25);
flagHayDatos=0; 

delay_ms(100); // Retardo para disminuir parpadeos en la pantalla. (No afecta interrupción externa.)
if(flagHayDatos==0){
frecuencia = 0;
porcentaje=0;
output_low(led);
}

}
}
estoy usando este codigo
28/08/2016 #113

Avatar de callecuatro1976

Se podría agregar una fuente así, con dos pulsadores que moverán de 0 a 5 volt, un operacional para amplificar y tener de 0a 18 volt? Y tendría que hacerlo por el pwm como saco el pulso por otro puerto que no sea el c?
Imágenes Adjuntas
Tipo de Archivo: jpg img_0366.jpg (49,6 KB (Kilobytes), 13 visitas)
03/09/2016 #114

Avatar de callecuatro1976

Hola amigos del foro volví para pedir su ayuda con el código que estoy armando funciona bien , lo que no logro hacer es mostrar de 0 a 18 el voltaje el pwm ya pude poner los pulsadores me falta ajústalo mas fino
Archivos Adjuntos
Tipo de Archivo: zip pic pulsadores.zip (89,6 KB (Kilobytes), 4 visitas)
06/09/2016 #115
Moderador

Avatar de D@rkbytes

No entendí el por qué de esas banderas para lo que pretendes hacer.
Por favor, cuando solicites ayuda, da más detalles y describe con comentarios tu programa.
Te adjunto el programa con los cambios.
Archivos Adjuntos
Tipo de Archivo: rar 16F883 Lectura de pulsos, porcentaje y voltaje.rar (39,6 KB (Kilobytes), 11 visitas)
06/09/2016 #116

Avatar de callecuatro1976

Muchas gracias por tu tiempo y dedicación en este foro, tu ayuda no tiene precio.
Voy a probar como va y te cuento. ¡Gracias por enseñar!

---------- Actualizado ----------

Te consulto una cosa más.
¿En vez de TIP35 podría colocar un mosfet como en la imagen que te adjunto, o un regulador de la línea LM317, LM22677, o alguno de esa línea funcionaria igual?

Saludos.
Archivos Adjuntos
Tipo de Archivo: rar Documento.rar (225,7 KB (Kilobytes), 3 visitas)
06/09/2016 #117
Moderador

Avatar de D@rkbytes

Mejor usa un transistor bipolar. El TIP35 soporta 25 Amperes, lo cual se me hace excesivo y no creo que necesites más.
Si es para controlar el motor de una máquina para tatuar, con un TIP41 (6 Amps.) puede ir bien.
07/09/2016 #118

Avatar de callecuatro1976

Hola te consulto antes de cambiar algo y después que no me ande, hice las pruebas y me paso de casualidad que se me apagó y me vuelve el voltimetro a cero como hago para modificar que quede la tensión que marcó con los pulsadores? Hay que usar la memoria?
07/09/2016 #119
Moderador

Avatar de D@rkbytes

Pues si, pero te recomiendo que uses un pulsador para guardar los datos.
Ya que si almacenas los datos con cada cambio, después de 1,000,000 escrituras, la memoria se irá dañando.
Si lo piensas usar así, haz un promedio de uso para determinar el tiempo de vida.
07/09/2016 #120

Avatar de callecuatro1976

Ok voy a ver como lo implementó o en vez de leer por adc ya marcar la tensión y que salga por el pwm y no usaría la memoria, es correcto?
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.