KILLERJC mi titulo seria tecnologo en"mantenimiento electrónico e instrumental industrial"
duración 18 meses fase lectiva y 6 meses de practica.
Es una entidad publica llamada Sena forma gratis y con un apoyo económico para jóvenes de bajos recursos que no
pudieron comenzar sus estudios en universidades privadas y publicas que exigen costos económicos y buenas notas en los
exámenes del estado.
La idea principal de la entidad es brindarnos un titulo para conseguir un buen empleo.
También con el titulo se habré la posibilidad de seguir estudiando en cualquier universidad y lograr el
titulo de ingeniero.
El titulo como lo dice nos prepararon para conocer la industria y de electrónica fueron pocos ejemplos del libro
"Compilador C Ccs Y Simulador Proteus Para Microcontroladores Pic" los ingenieros nos decían que nos estaban preparando
en instrumentación mas que todo por que la programación la realizaban los ingenieros en las empresas.
El ingeniero a cargo de certificarnos nos asigno los proyectos nos dividió de 4 personas cada grupo con una tarea de
automatización de aula de estudio como tablero, luces, persianas, absceso, préstamo de herramientas y otros que se fueron
desintegrando por deserción, mi proyecto interfaz USB consiste en conectar los proyectos de mis compañeros y poderlos
controlar desde una terminal.
Al comienzo de la formación se pensaba realizar la conexión por protocolo Zigbee para evitar el cableado y el arduino YUN
para aprovechar su compatibilidad con el Xbee y Internet, Compre todo y en esos días el ingeniero que propuso el proyecto
lo echaron y no nos volvieron a dar programación si unas materias de relleno, hable con el director de grado y me dijo que
desistiera y comenzara de nuevo que le entregara 5 Entradas análogas, 6 Entradas digitales, 8 Salidas digitales y Dotar a el
Pic con una salida analógica faltando un mes ahora faltan 8 días.
Yo comencé solo y busque ayuda con el foro, se me unieron dos compañeros de clase que no estaban haciendo nada
y todavía no están haciendo nada.
Gracias por su ayuda se ve super lo estoy intentando armar el código me gustaría otra ves su ayuda.
Que pena con la molestia
#include <16f877a.h>
#use delay(crystal = 4MHz)
#define LCD_ENABLE_PIN PIN_A0
#define LCD_RS_PIN PIN_A1
#define LCD_RW_PIN PIN_A2
#define LCD_DATA4 PIN_B4
#define LCD_DATA5 PIN_B5
#define LCD_DATA6 PIN_B6
#define LCD_DATA7 PIN_B7
#include "lcd420ap.c"
#include <kbd_lib.c>
#define LED_1 PIN_D0
#define LED_2 PIN_D1
#define LED_3 PIN_D2
#define LED_4 PIN_D3
#define LED_5 PIN_D4
#define LED_6 PIN_D5
#define LED_7 PIN_D6
#define LED_8 PIN_D7
#define ENTRADA1 PIN_C0
#define ENTRADA2 PIN_C1
#define ENTRADA3 PIN_C2
#define ENTRADA4 PIN_C3
#define ENTRADA5 PIN_C4
#define ENTRADA6 PIN_C5
int8 estoy=0;
int8 estado;
int8 puerto;
int8 led1=0;
int8 led2=0;
int8 led3=0;
int8 led4=0;
int8 led5=0;
int8 led6=0;
int8 led7=0;
int8 led8=0;
void mostrar_menu(){
lcd_gotoxy(1,1);
printf(lcd_putc
,"\f>A ENTRADA ANALOGICA\r"); lcd_gotoxy(1,2);
printf(lcd_putc
,">B CONTROL PWM"); lcd_gotoxy(1,3);
printf(lcd_putc
,">C ENTRADAS DIGITALES"); lcd_gotoxy(1,4);
printf(lcd_putc
,">D SALIDAS DIGITALES"); }
void funcion_lectura_entradas_analogas(){
lcd_gotoxy(1,1);
printf(lcd_putc
,"\fpendiente entradas"); lcd_gotoxy(1,2);
printf(lcd_putc
,"analoga y visualizar"); }
void funcion_pwm(){
printf(lcd_putc
,"\fpendiente el PWM"); }
void funcion_lectura_entradas_digitales(){
if(estado_viejo != estado || puerto_viejo != puerto)
{
lcd_gotoxy(1,1);
printf(lcd_putc
,"\fINPUT1=%u",input
(ENTRADA1
)); lcd_gotoxy(1,2);
printf(lcd_putc
,"INPUT2=%u",input
(ENTRADA2
)); lcd_gotoxy(1,3);
printf(lcd_putc
,"INPUT3=%u",input
(ENTRADA3
)); lcd_gotoxy(11,1);
printf(lcd_putc
,"INPUT4=%u",input
(ENTRADA4
)); lcd_gotoxy(11,2);
printf(lcd_putc
,"INPUT5=%u",input
(ENTRADA5
)); lcd_gotoxy(11,3);
printf(lcd_putc
,"INPUT6=%u",input
(ENTRADA6
)); lcd_gotoxy(1,4);
printf(lcd_putc
,"REGRESO MENU PULSE #"); estado_viejo = estado;
puerto_viejo = puerto;
}
}
void funcion_control_salidas_digitales(){
lcd_gotoxy(1,1);
printf(lcd_putc
,"\fled1=%d",led1
); lcd_gotoxy(1,2);
printf(lcd_putc
,"led2=%d",led2
); lcd_gotoxy(1,3);
printf(lcd_putc
,"led3=%d",led3
); lcd_gotoxy(1,4);
printf(lcd_putc
,"led4=%d",led4
); lcd_gotoxy(10,1);
printf(lcd_putc
,"led5=%d",led5
); lcd_gotoxy(10,2);
printf(lcd_putc
,"led6=%d",led6
); lcd_gotoxy(10,3);
printf(lcd_putc
,"led7=%d",led7
); lcd_gotoxy(10,4);
printf(lcd_putc
,"led8=%d",led8
);
}
void main ()
{
CHAR k;
lcd_init();
kbd_init();
port_b_pullups(TRUE);
output_low(LED_1),(LED_2),(LED_3),(LED_4),(LED_5),(LED_6),(LED_7),(LED_8);
lcd_gotoxy(2,2);
printf(lcd_putc
,"Bienvenidos (^^,)"); lcd_gotoxy(1,3);
printf(lcd_putc
,"Pulsa # para ir menu");
while (kbd_getc()!='#'){};
mostrar_menu();
while (true)
{
k = kbd_getc();
if (k!=0)
{
switch(k)
{
case '#':
estado=0;
break;
case 'A':
estado=1;
break;
case 'B':
estado=2;
break;
case 'C':
estado=3;
break;
case 'D':
estado=4;
break;
default:
if(k >= '1' && k<= '8')
{
PORTD = (1 << (k - 49))
}
break;
}
k=0;
}
// ACA COMIENZO A MOSTRAR EN EL LCD
switch(estado)
{
case 0:
mostrar_menu(); // se podria tener una varaible como "estado_anterior" si sigue en el mismo estado no actualize
break;
case 1:
funcion_pwm(); // Mismo que el de lectura de las entradas digitales
break;
case 2:
funcion_lectura_entradas_digitales(); // A esta funcion agregarle una comparacion de un valor viejo del puerto con el nuevo de esa forma si es distinto actualiza todo el LCD
break;
case 3:
funcion_control_salidas_digitales(); // Mismo caso que el de lecturas de entradas digitales, hasta se puede usar la misma variable para estas 3 funciones
break
case 4:
mostrar_menu();
break;
default:
mostrar_menu();
break;
}
}
}