Enviando y recibiendo datos de c # a PIC167F877A [cerrado]

-2

¡Buen día! Soy un estudiante de ingeniería informática. Actualmente estamos creando nuestro proyecto de tesis, en el que usamos pic16 como nuestro microcontrolador. Realmente estamos teniendo dificultades para recibir datos de c # a pic para activar un motor determinado. Esperando que si alguien nos puede ayudar. Sería una gran ayuda. Gracias.

Editado para agregar esquema de circuito:

    
pregunta Sylvia Espiña

2 respuestas

1

Si aún no tiene la hoja de datos PIC16F877A , consígala y < em> imprimirlo . Varias copias si hay varios miembros de su equipo trabajando en esta parte del proyecto.

  • En la página 5, muestra que este PIC funciona desde DC a 20MHz. El cristal no está etiquetado en el esquema. Debe estar entre 0-20MHz. Tenga en cuenta que los condensadores de carga de 22 pF conectados a él son generalmente más adecuados para un cristal de rango de frecuencia más bajo, como 2MHz. Esto también depende del cristal exacto utilizado: mire su hoja de datos y vea qué recomienda. Es probable que cualquier cristal funcione, pero si es "demasiado frágil", los topes de carga de valor excesivamente alto pueden dañarlo o hacer que funcione fuera de la frecuencia indicada.

  • Todos los PIC requieren una resistencia del pin 1 MCLR a Vdd. 33k-10k debería funcionar. Por lo que es, MCLR es el pin de reinicio. Se debe permitir que se vaya a tierra para restablecer el PIC. A menudo, un pequeño capacitor está conectado a este también a tierra. Piense en lo que esto logrará cuando el circuito se encienda por primera vez. Investígalo si esto no tiene sentido.

  • El PIC16F877A usa los pines MCLR, PGD y PGC para la programación. A menos que esté eliminando el chip para programarlo, es mejor no usar estos pines para otra cosa (MCLR todavía tiene que estar conectado como el anterior).

  • La alimentación de Vdd aparece como Vcc / Vdd. En un simulador como Proteus ISIS, existe la posibilidad de que pueda interpretar esta etiqueta como una función matemática, literalmente, la tensión Vcc dividida por la tensión Vdd. Es mejor cambiarle el nombre a Vdd. Use Vcc para la tensión de la batería o la fuente.

  • No puedo encontrar una hoja de datos para el Savox SB2273SG servo. El fabricante solo lo establece como un servo digital, con una resolución de 12 bits y una frecuencia de 250-330Hz. Los servos digitales no son mi forté ( aquí y aquí es algo para comenzar, pero parece que necesita una señal de control de (como máximo) 12 bits, 300 veces por segundo. 12 * 300 = 3.600 bits / s o 3.6kb / s o 3.6k / 8 = 450 bytes / seg. Esto se puede hacer con un PIC cronometrado a 20MHz y codificación manual, pero el tiempo será "divertido".

  • El servo Savox está clasificado para el suministro de 7.4v y 6.0v. Es posible que no funcione en absoluto (o que no sea confiable) si se alimenta desde Vdd = 5.0v. Vdd puede tener un máximo de 5,5v según la hoja de datos PIC página 175. Por lo tanto, es posible que tenga que usar un suministro adicional para alimentar este servo.

  • La salida PWM (pin RC2) del PIC puede ser una mejor opción (página 67) que el pin RB7 y la codificación manual, pero es más compleja. La resolución PWM también es de 10 bits, lo que significa que se perderá cierta precisión en la posición del servo. Para muchas aplicaciones esto puede no ser un problema. Esta calculadora es una de muchas en la web que mostrará ¿Qué velocidades de bits están disponibles para determinadas frecuencias de cristal? Mirando a través de una lista de frecuencias de cristal comunes , vi que un cristal de 18.432MHz puede producir una tasa de datos PWM de exactamente 3,600 10 Secuencias de bits por segundo. El código "C" también se genera.

  • Una vez que reciba los datos digitales que se envían al servo, querrá ver esta señal en un osciloscopio. Asegúrese de que los niveles estén en los voltajes Vdd y Vss correctos, y que no se produzcan transiciones lentas o de timbre. Si no se ve muy nítido y limpio, use un transistor para controlar la entrada de datos del servo. (Como se muestra en un enlace anterior).

  • No se muestran en el esquema, son los condensadores de desacoplamiento locales y los rieles de alimentación tanto para el PIC como para el MAX232. En una placa de pruebas o PCB, los condensadores cerámicos de 0.1uF deben conectarse directamente en los pines Vdd a Vss o lo más cerca posible. Sin estos, el circuito puede comportarse de forma errática o en absoluto. Dado que los dispositivos digitales cambian las señales muy rápidamente, estos capacitores proporcionan la corriente instantánea necesaria para evitar que los rieles de alimentación se hundan, lo que evita los reinicios continuos o las condiciones de oscurecimiento.

respondido por el rdtsc
0

Necesita su código C # para enviar datos a PIC a través de uart. Aquí hay un enlace sobre cómo hacerlo. Una vez que su código PIC recibe los datos de la PC a través de uart, puede manejar el motor como desee. Deberá trabajar en cómo planea conectar el motor y conducirlo (es otra parte). Debe asegurarse de que todos los ajustes de baudios coincidan exactamente.

    
respondido por el Akshay Immanuel D

Lea otras preguntas en las etiquetas