Autor Tema: Receptor DMX con pic 16F876 para 4 PWM canales  (Leído 26948 veces)

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

Desconectado stk500

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4923
Receptor DMX con pic 16F876 para 4 PWM canales
« en: 26 de Enero de 2008, 09:07:54 »
Un saludos a todos!
Bien hace dia que estoy estudiando Compilar en C y soy nuevecitos, tengan paciencia conmigo, ya que necesitos muchas ayudas, estos son mis primero pasos programando en C, la version que yo uso es la 3,249 , yo quiero que me digan si corrijan esta configuracion.
 

#case  // para evitar problema de mayuscula minuscula
#include <16F876.h>
#device adc=10
#fuses HS,NOPROTECT,NOWDT
#use delay(clock=20000000) //20Mhz Cristal
#use RS232(baud=250000,rcv=PIN_C7,xmit=PIN_C6)// pin RC7 para el SN75176
#use fixed_io(a_outputs=PIN_A0,PIN_A1,PIN_A2,PIN_A3) //canales del 1 a 4
#define PIN_DMXERROR PIN_RC5 // recibiendo error dmx
#define PIN_DMXOK    PIN_RC6 // DMX OK
#define PIN_SWITCH1  PIN_B0 // dip switch define canales grupos de 4
#define PIN_SWITCH2  PIN_B1 // dip switch para canales  grupos de 4
#define PIN_SWITCH3  PIN_B2 // //   //     //    //    grupos de 4
#define PIN_SWITCH4  PIN_B3 // //   //     //    //   grupos de 4
#define PIN_SWITCH5  PIN_B4 // //  //      //    //   grupos de 4
#define PIN_SWITCH6  PIN_B5 // //  //      //    //  grupos de 4
#define PIN_SWITCH7  PIN_B6 // //  //      //    //  grupos de 4
#define PIN_SWITCH8  PIN_B7 // //  //      //    //  grupos de 4
#define T1_PRESCALE 1 // times prescaler 1
#define PWM_FQ 200 // esta es la frecuencia de trabajo de pwm
#define MAX_PWMS 4 // el maximo de pwm
#define PWM_STEP (((FOSC/256)/T1_PRESCALE)/PWM_FQ)

en define switch quiero usar BCD para direcionar los canales, un esquema lo tengo ya acabado gracias a mi amigo Manolo


Editado título por Redpic: Receptor por "recibidor".
« Última modificación: 26 de Enero de 2008, 09:13:17 por un Moderador »

Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
Re: Receptor DMX con pic 16F876 para 4 PWM canales
« Respuesta #1 en: 26 de Enero de 2008, 11:29:41 »
stk,échale un ojo al resto de posibles fuses.Quizá quieras añadir alguno más.

Menú View - Valid Fuses

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: Receptor DMX con pic 16F876 para 4 PWM canales
« Respuesta #2 en: 26 de Enero de 2008, 14:59:06 »
Rafael, podrías definir todo el PORTB como PIN_SWITCH en lugar de hacerlo pin a pin. Al fin y al cabo cuando te refieras a él lo harás al byte completo.

¿Puedes pegar aquí el esquema?, será mejor que lo vea el resto porque seguramente encontrarán más modificaciones que las que yo te sugerí.

Desconectado stk500

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4923
Re: Receptor DMX con pic 16F876 para 4 PWM canales
« Respuesta #3 en: 26 de Enero de 2008, 16:04:07 »
 :mrgreen: gracia Genio del Ron  :D
Por fin lo logre gracias Manolo, gracias Modulay




« Última modificación: 27 de Enero de 2008, 04:28:27 por stk500 »

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: Receptor DMX con pic 16F876 para 4 PWM canales
« Respuesta #4 en: 26 de Enero de 2008, 16:19:22 »
Rafael, las resistencias que acompañan al dipswitch tienen que estar conectadas al polo opuesto que este. Si el dipswitch lo conectas a Vdd, las resistencias a GND o viceversa. De esta manera cuando cierres un microinterruptor, meterás una señal al pin; cuando lo abras, meterás la contraria a través de la resistencia.

Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
Re: Receptor DMX con pic 16F876 para 4 PWM canales
« Respuesta #5 en: 26 de Enero de 2008, 18:21:29 »
Cuídate también de unir todos los puntos que van a masa,veo que los tienes separados.
También te serviría usar las instancias que necesites del símbolo "GND"

Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
Re: Receptor DMX con pic 16F876 para 4 PWM canales
« Respuesta #6 en: 26 de Enero de 2008, 18:25:48 »
El condensador que lleva el max481 entre su pin 5 y masa ¿es a propósito? ¿dicho pin no debería ir conectado directamente a masa?

Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
Re: Receptor DMX con pic 16F876 para 4 PWM canales
« Respuesta #7 en: 26 de Enero de 2008, 18:33:19 »
Has vuelto a conectar mal el switch.
Deja las resistencias como están y conecta los switches a masa en vez de a Vcc.

Desconectado stk500

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4923
Re: Receptor DMX con pic 16F876 para 4 PWM canales
« Respuesta #8 en: 26 de Enero de 2008, 18:55:37 »
Muchas gracias Modulay por tu sugerencia.
pero me gustaria saber si la Configuracion del Pic esta bien ante de seguir.

otras pregunta y que no se todavia como implementar los Dip switch y pido ayudas
gracias

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: Receptor DMX con pic 16F876 para 4 PWM canales
« Respuesta #9 en: 26 de Enero de 2008, 19:03:23 »
La configuración del PIC parece correcta. Pero es verdad que tienes esos dos errores en la placa:
- el dipswitch ponlo a masa
- une todas las masas del circuito utilizando el símbolo de tierra. Ese condensador en la masa del MAX485 no puede estar ahí

No entiendo tu pregunta sobre la implementación de los dip switch, ¿qué necesitas?

Desconectado stk500

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4923
Re: Receptor DMX con pic 16F876 para 4 PWM canales
« Respuesta #10 en: 26 de Enero de 2008, 19:17:10 »
La configuración del PIC parece correcta. Pero es verdad que tienes esos dos errores en la placa:
- el dipswitch ponlo a masa
- une todas las masas del circuito utilizando el símbolo de tierra. Ese condensador en la masa del MAX485 no puede estar ahí

No entiendo tu pregunta sobre la implementación de los dip switch, ¿qué necesitas?

Gracias Manolo por tu gran ayuda.
lo corregi, pero hay error del condensador que va a MA485, deberia ir de masa y plus, pero ya lo cambiare,
Bien Manolo, te comentaba que no se como implementar los Dip switch, no se como definirlo ya que no encuentro Info o hay otras manera de hacerlo mejor?????
como comprendera el Dip Switch aqui sirve para direcionar los 4 canales entre los 512 canales de la tramas, es asi o me equivoco?
mi idea es con los Switch en OFF ocupara los 4 primero canales y con el Switch 1 - 2 - 3 - etc no se como hacerlo
Alguien tiene algunas ideas???
Muchas gracias

Desconectado ESTECA55

  • PIC24H
  • ******
  • Mensajes: 1404
Re: Receptor DMX con pic 16F876 para 4 PWM canales
« Respuesta #11 en: 26 de Enero de 2008, 19:24:58 »
simplemente tiene que leer el valor del puerto al que tenes conectado el dip Switch,vos estas escribiendo en binario digamos el valor del canal a leer, aunque con 8 bit solo podrás setear 256 canales.

Saludos
Hay que esforzarse por ser el mejor, no creerse el mejor

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: Receptor DMX con pic 16F876 para 4 PWM canales
« Respuesta #12 en: 26 de Enero de 2008, 19:36:19 »
Exacto, como dice Esteban basta con leer PORTB pero sólo tendrás 8 bits ahí. Necesitarás un switch adicional para poder llegar a 512.

Desconectado stk500

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4923
Re: Receptor DMX con pic 16F876 para 4 PWM canales
« Respuesta #13 en: 27 de Enero de 2008, 05:26:02 »



Bien, aqui he hechos los cambios y agregue un interruptor mas como Terminator

Aun sigo si entender como calcular las conmutaciones de los Switch, como dice el Colega Estefan eso me lo imaginaba ya pero como los calculos o lo implemento, tengo mis dudas.
Alguien que sea tan amable y me diga algunos paso o me de algun ejemplo?
ya que todos lo que encuentro en la Red es con Assembler.


Desconectado ESTECA55

  • PIC24H
  • ******
  • Mensajes: 1404
Re: Receptor DMX con pic 16F876 para 4 PWM canales
« Respuesta #14 en: 27 de Enero de 2008, 14:11:30 »
No hay que calcular nada, simplemente lles el valor de ese puerto y listo, ya que con los interruptores vos estas escribiendo el canal en binario, digamos que si vos en los interruptores pones lo siguiente:

00001001   (1= on, 0 = off  del dip Switch)

ese numero en binario es 9, estarias setenado el canal 9, ya que vos cuando lees ese valor, ya sea que lo leas en binario, decimal o en exa obtendrías el valor 9, y para saber si se trata de los primeros 256 numeros o los 256 mas altos tendras que testear el estado de RC7, si RC7 esta en uno, el valor del canal seria 255 + 9 = 264.

Saludos
Hay que esforzarse por ser el mejor, no creerse el mejor


 

anything