TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Byakuya en 10 de Febrero de 2018, 14:05:47
-
Hola buen dia, bueno, estoy comenzando a plantear los cálculos previos para el diseño de un POV y quería ver si me ayudan un poco. he comprado este dispositivo, el cual tenia posibilidad de insertar un maximo de 40 imagenes por Usb, he borrado el dispositivo, y estoy intentando hacer algo simple, el diseño de la PCB es de 44 Cm de largo, por un ancho de 1Cm, usando led de 3mm separados 7mm entre led y led.
Como Driver para controlar 24 leds se han usado el registro 74HC595 un total de 3 chips, y para 24 leds restantes se han conectado directo al MicroControlador. el sensor para el cruce por cero es un Hall. conectado a un pin de interrupcion en el microcontrolador. Alguno quiere proponer alguna idea seria bien recibida... Por donde comenzar.
-
Suponiendo que el control de velocidad es independiente.
Comenzaria:
- Haciendo circulos. Esto evita pensar en el cruce por 0, y podes tranquilamente probar todos los leds, es decir podes hacer que el circulo vaya decrementando poco a poco su radio.
- Tratar de hacer pasos, volviendo al circulo, tomar desde el cruce por 0, activar un led, y luego desactivarlo luego de cierto tiempo. Esto es para tener una referencia temporal, interesante seria poder hacer 1/4 de vuelta, 1/2 vuelta, 3/4 y luego entero Y que cambie a cada segundo.
De aca pienso que lo que se trata es crear una funcion que me transforme una "imagen" plana facil de editar, por un array que sea facil de mostrar.
Entonces vos te dedicas unicamente a actualizar esta imagen plana (array ), para el texto seria simple de hacer, lo mas complejo es esa funcion que transforme lo que uno quiere respecto al tiempo y velocidad de giro.
Espero haberme hecho entender.
-
Hola gracias por responder, he logrado identificar las conexiones, el microcontrolador no es Pic pero creo que si todo se hace pensando en lenguaje C podria llevarnos a algo, el Micro Tiene un Cristal a 8 MHZ internamente podrian configurarse algunos Pll para subirlo a su maximo que es 72 MHZ estos son los pines y el programa de prueba para el POV :lol: .
//*************** Led Verde Superior
#define V1 PC15
#define V2 PA1
#define V3 PA2
#define V4 PA3
#define V5 PA4
#define V6 PA5
#define V7 PA6
#define V8 PA7
//**************** Led Azul
#define B1 PB0
#define B2 PB1
#define B3 PB2
#define B4 PB3
#define B5 PB4
#define B6 PB5
#define B7 PB6
#define B8 PB7
//*****************Led Rojo
#define R1 PB8
#define R2 PB9
#define R3 PB10
#define R4 PB11
#define R5 PB12
#define R6 PB13
#define R7 PB14
#define R8 PB15
//****************Pines dedicados a los Regitros
#define Data PA10
#define Clock PA9
#define Latch PA8
const int LEDVerde[ ] = {V1,V2,V3,V4,V5,V6,V7,V8}; // Se define Arreglo 8 led Superiores
const int LEDAzul [ ] = {B1,B2,B3,B4,B5,B6,B7,B8};
const int LEDRojo [ ] = {R1,R2,R3,R4,R5,R6,R7,R8}; //se define arreglo 8 led centro de circulo
// Todos los led estan conectados a VCC y se encienden en Cero
void main (void)
{
//0 Apagamos 24 Leds conectado a los puertos del Micro
for (i = 0; i < rows; i++){ output_bit(LEDVerde[i], 1);
output_bit(LEDAzul [i], 1);
output_bit(LEDRojo [i], 1);
delay(100); }
//1 Endendemos 24 Leds
for (i = 0; i < rows; i++){ output_bit(LEDVerde[i], 0);
output_bit(LEDAzul [i], 0);
output_bit(LEDRojo [i], 0);
delay(100); }
}
[/youtube]
-
Y el programa jamas tuvo un loop infinito. Que micro es ?
-
tema cerrado
-
tema cerrado
-
Realmente no usaria Keil o IAR por que son pagos, me iria a una version gratuita. Y con STMCubemx mucho mas facil para empezar un proyecto desde la nada.
Por la forma que lo estas programando parece como si fuera el entorno arduino.