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

Avatar de torres.electronico

igualmente, varias paginas para tras en este mismo topico, hay varios ejemplos similares de los cuales puede usar como ejemplos... Yo antes de consultar, suelo implementar el buscador o bien, pegarle una leida a todo el topico completo
19/04/2016 #3022

Avatar de Nano24

Despues de hace un buen tiempo me tomo la molestia de volver por aca para compartir un pequeño proyecto que se me ocurrido hacer, ya que estoy trabajando en reparacion de plantas de sonidos, se me vino a la mente el tema de la conversion de audio analogico / digital, estuve leyendo que el audio A/D se invierte atraves de un proceso y luego con un DAC decodificas el audio binario para asi obtener un sonido mas limpio por asi decirlo, se me ocurrio usar el PIC16F877A ya que trae un conversor A/D, logre guardar lo que leia como audio por la entrada analogica RA0 y la guardaba en una variable X, luego establecia que el puerto PORTC = X con eso cuando la musica empezaba a correr el PIC enviaba una serie de codigos de 8 bits en binarios por el puerto C, lo hice en fisico y use el fulano conversor DAC0808 para decodificar el sonido y al final el resultado es que no se entendia lo que se estaba escuchando.

La pregunta es, como se puede mejorar ese problema y nos de un audio limpio?
19/04/2016 #3023
Moderador

Avatar de D@rkbytes

Necesitas aumentar la velocidad de muestreo.
Tal vez mejores la calidad del sonido resultante, elevando la frecuencia del oscilador a 20 MHz, que es la frecuencia máxima para ese PIC.
Ésto es para que alcances el tiempo más corto de conversión, unos 100 ns. y con el reloj del conversor en Fosc/2
De esa forma, al hacer la conversión no creo que logres una calidad muy alta, pero posiblemente mejore.

Nunca lo he hecho de esa forma, pero si he realizado muestreos de hasta 44.1 Khz. reproduciendo archivos WAV desde una micro SD y obteniendo el audio por PWM con el oscilador a 48MHz. (Pero todo este proceso es digital)
19/04/2016 #3024

Avatar de torres.electronico

Ya hablamos de esto el año pasado y esta el mismo ejemplo
Lo que no re uerdo es en que carpeta de la pc tengo lo que mejore

Edit1: aca se arranco hablar del tema:
Curso de programación de PIC en PICBasic Pro

Y estoy buscando en la PC la libreria de DT y ejemplo de esto mismo...la unica manera dr sacar esto adelantr sin implementar C o ASM es justamente con la libreria de DT y drmases que armaron en el foro picbasic... Habia un ejemplo con memoria flash y otro instantaneo (adc-pwm)... Sigo buscando
19/04/2016 #3025

Avatar de torres.electronico

D@rkbytes dijo: Ver Mensaje
Necesitas aumentar la velocidad de muestreo.
Tal cual... al parecer esta lenta la captura
Imágenes Adjuntas
Tipo de Archivo: png SOUND_nano.png (91,0 KB (Kilobytes), 242 visitas)
19/04/2016 #3026

Avatar de Nano24

torres.electronico dijo: Ver Mensaje
Tal cual... al parecer esta lenta la captura
http://www.forosdeelectronica.com/at...1&d=1461076870
¿Cómo se haría para mejorar?
¿Como dijo D@rkbytes con un cristal mayor de 20 Mhz?
La verdad tenía años que no entraba a la pagina, por eso no me había enterado.
Sería interesante si volvieras a subir el programa de cómo lo mejoraste.

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

¿Por casualidad este sirve como conversor AD?
Lo hice hace años con un 40106, le conectaba un micrófono y con una etapa amplificadora por la salida se escuchaba con claridad.
Archivos Adjuntos
Tipo de Archivo: rar 40106 Audio.rar (10,7 KB (Kilobytes), 30 visitas)
01/07/2016 #3027

Avatar de COSMICO

Hola amigos.
Como este tema es de PBP, me paso con esta pregunta.
como se interpretan estas instrucciones de programming editor, PICAXE a PBP

symbol PWMpin = 2 , esta instrucción es válida

PWM (0 a 1016), esta da error. Hay que pasarla a una valida e igual en PBP
01/07/2016 #3028
Moderador

Avatar de D@rkbytes

Si quieres definir un pin para la salida de PWM por software, es igual que definir cualquier otro pin.

Por ejemplo:
Symbol PWMpin = PORTX.X

También se puede de ésta forma:
PWMpin Var PORTX.X

En el documento de ayuda de PBP puedes encontrar información sobre PWM por software.
La ayuda de PBP dijo:
PWM Pin,Duty,Cycle

Outputs a pulse width modulated pulse train on Pin. Each cycle of PWM consists of 256 steps.
The Duty cycle for each PWM cycle ranges from 0 (0%) to 255 (100%)
This PWM cycle is repeated Cycle times. Pin may be a constant, 0 - 15, or a variable that contains a number 0 - 15 (e.g. B0) or a pin name (e.g. PORTA.0)
The Cycle time of PWM is dependent upon the oscillator frequency.
If a 4MHz oscillator is used, each Cycle would be about 5ms long.
If a 20MHz oscillator is used, each Cycle would be about 1ms in length. Defining an OSC value has no effect on PWM.
The Cycle time always changes with the actual oscillator speed.
Pin is made an output just prior to pulse generation and reverts to an input after generation stops.
The PWM output on a pin looks like so much garbage, not a beautiful series of square waves.
A filter of some sort is necessary to turn the signal into something useful.
An RC circuit can be used as a simple D/A converter.


Example
PWM PORTB.7,127,100 ' Send a 50% duty cycle PWM signal out Pin7 for 100 cycles
01/07/2016 #3029

Avatar de COSMICO

Si amigo, ya vi el manual, pero Mi duda, es esta instrucción, que no se que significa
PWM (0 a 1016)
Tal vez quieres decir que el PWM, alcanza máximo 0 a 1016, EN CCP
02/07/2016 #3030
Moderador

Avatar de D@rkbytes

Eso no es una instrucción, es un comentario del programa.
torres.electronico en su programa dijo:
pwmout PWMpin,254,pwmval ' envia el valor equivalente PWM (0 a 1016)
Enlace del post:
Variador de frecuencia para Ctrl Velocidad Motor AC
02/07/2016 #3031

Avatar de COSMICO

Jeje tienes razón, ya lo comenté, ahora ya me funciona, pero en la ultima rutina se toma 4 segundos
y no se porque.., bueno, sigo con esto..

---------- Actualizado después de 21 minutos ----------

descargue el programming editor, y la rutina final .

pwmout PWMpin,254,pwmval
pulsout 3,delay.
Demora 4 segundos, ..
02/07/2016 #3032

Avatar de torres.electronico

se ve que cuando arme el topico, se corrio una linea el comentario... o sea, seria es5to lo que se tenia que leer:
' envia el valor equivalente PWM (0 a 1016)

COSMICO dijo: Ver Mensaje
Jeje tienes razón, ya lo comenté, ahora ya me funciona, pero en la ultima rutina se toma 4 segundos
y no se porque.., bueno, sigo con esto..

---------- Actualizado después de 21 minutos ----------

descargue el programming editor, y la rutina final .

pwmout PWMpin,254,pwmval
pulsout 3,delay.
Demora 4 segundos, ..
Cosmico, tendrias que subir todo tu laburo completo PARA PODER AYUDARTE en PBP en su momento lo encare totalmente distinto (eeprom lo cabie por data, use lokup,etc etc); pero como ya no tengo la PC que tenia antes, se perdio en el tiempo y espacio
Saludos a todos, esty reactivandome despacito
02/07/2016 #3033

Avatar de COSMICO

Hola Amigo torres, gusto saludarle
voy armarlo en físico, por o menos sólo el PIC y les cuento, voy a ver si es cuestión de simulación...
Este circuito, lo probaste con un motor, me interesa es saber como se hace, me gusta la electronica, y es algo que siempre he tenido en mente para mis ratos libres
02/07/2016 #3034

Avatar de torres.electronico

lo probe con una bombita centrifuga de 220v... No era mucha carga y funciono relaivamente bien en un rango de frecuencias... si arranca con frecuencias muy bajas hace ruido feo el motor y tiende a calentar mucho
02/07/2016 #3035

Avatar de COSMICO

A que frecuencia de cristal trabajaste el picaxe..
Hay algo, que no entiendo, tienes una tabla, que no veo el programa donde la captura..


symbol VoltsTbl = 0
eeprom 0,(255,246,237,229,221,214,207,201)
eeprom 8,(195,190,184,179,175,170,166,162)
eeprom 16,(158,154,151,147,144,141,138,135)
eeprom 24,(133,130,128,125,123,121,118,116)
eeprom 32,(114,112,111,109,107,105,104,102)
eeprom 40,(101,99,98,96,95,93,92,91)
eeprom 48,(90,88,87,86,85,84,83,82)
eeprom 56,(81,80,79,78,77,76,75,74)
02/07/2016 #3036

Avatar de torres.electronico

creo que le puse uno de 4Mhz, el pwm lo labure por software, ya que en segundo plano la minima que se puede implementar es de 245Hz (se podria implementar un divisor de frecuencias y asi hacer correr el pwm por hardware, pero no me gusta la idea)... fijate si podes cambiar la etapa de disparo, seria bueno que emplearas unos driver y creo que en el foro hay bastante material disponible como para que armes algo...tendrias que revolver un buen rato
02/07/2016 #3037

Avatar de COSMICO

Sigo sin entender, lo de la tabla, lo acabo de pasar a un pic, pero no hace nada en el protoboard, en la simulación por lo.menos, se ve algo...
02/07/2016 #3038

Avatar de COSMICO

Lo acabo de simular, en un pic16f876a y esto es lo que sale
Imágenes Adjuntas
Tipo de Archivo: jpg Señales.JPG (222,2 KB (Kilobytes), 19 visitas)
02/07/2016 #3039

Avatar de torres.electronico

COSMICO dijo: Ver Mensaje
Lo acabo de simular, en un pic16f876a y esto es lo que sale
si no mostras todo el trabaj completo, se me dificulta ayudarte...salu2
02/07/2016 #3040

Avatar de COSMICO

Parece que este no es el código, después lo subo
¿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 - 2016, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.