Hola amigos del foro.
estoy haciendo mi proyecto final de robotica industrial
como proyecto hice una mano robotica, funciona bien, pero para complementar el trabajo me pidieron hacer una pantalla en visual basic y yo no entiendo nada lo que es visual basic.
El programa es el siguiente:
#include <16f887.h>
#device ADC=10
#use delay (clock=20000000)
#include <lcd.c>
#use fast_io(a)
#use fast_io(c)
#define pinServo0 PIN_C0
#define pinServo1 PIN_C1
#define pinServo2 PIN_C2
#define pinServo3 PIN_C3
#define pinServo4 PIN_C4
#define pinServo5 PIN_C5
#define pinServo6 PIN_C6
#define pinServo7 PIN_C7
int16 ticksTotalServo = 12500; //tickAltoMaximo = 11500 tickAltoMinimo = 3500
int16 ticksAltoServo[8];
int8 servoAMover=0;
int1 subir=1, enableServo[8]={1,1,1,1,1,0,0,0};
#int_timer1
void intTimer(void)
{
if(subir==1)
{
if(servoAMover == 0 && enableServo[0] == 1) output_high(pinServo0);
if(servoAMover == 1 && enableServo[1] == 1) output_high(pinServo1);
if(servoAMover == 2 && enableServo[2] == 1) output_high(pinServo2);
if(servoAMover == 3 && enableServo[3] == 1) output_high(pinServo3);
if(servoAMover == 4 && enableServo[4] == 1) output_high(pinServo4);
if(servoAMover == 5 && enableServo[5] == 1) output_high(pinServo5);
if(servoAMover == 6 && enableServo[6] == 1) output_high(pinServo6);
if(servoAMover == 7 && enableServo[7] == 1) output_high(pinServo7);
set_timer1(65535 - ticksAltoServo[servoAMover]);
subir = 0;
}
else if(subir==0)
{
if(servoAMover == 0 && enableServo[0] == 1) output_low(pinServo0);
if(servoAMover == 1 && enableServo[1] == 1) output_low(pinServo1);
if(servoAMover == 2 && enableServo[2] == 1) output_low(pinServo2);
if(servoAMover == 3 && enableServo[3] == 1) output_low(pinServo3);
if(servoAMover == 4 && enableServo[4] == 1) output_low(pinServo4);
if(servoAMover == 5 && enableServo[5] == 1) output_low(pinServo5);
if(servoAMover == 6 && enableServo[6] == 1) output_low(pinServo6);
if(servoAMover == 7 && enableServo[7] == 1) output_low(pinServo7);
set_timer1(65535 - ticksTotalServo + ticksAltoServo[servoAMover]);
servoamover++;
if (servoAMover > 7) servoAMover = 0 ;
subir = 1;
}
}
void main()
{
int8 i;
set_tris_c(0x00);
set_tris_a(0xFF);
setup_adc(ADC_CLOCK_INTERNAL);
setup_adc_ports(ALL_ANALOG);
disable_interrupts(global);
setup_counters(RTCC_INTERNAL,RTCC_DIV_2);
setup_timer_1(T1_INTERNAL | T1_DIV_BY_1);
setup_timer_2(T2_DISABLED,0,1);
port_b_pullups(FALSE);
enable_interrupts(int_timer1);
enable_interrupts(global);
set_timer1(60000);
while(1)
{
for(i=0;i<8;i++) //leyendo los valores de los LDR
{
if(enableServo==1)
set_adc_channel(i);
delay_ms(10);
ticksAltoServo = 4750 + (read_adc()*5) ;
}
}
}
Falta del programa el direccionamiento para cada servo comunicacion serial y la pantalla en visual basic
Cualquier aporte sirve
de ante mano
gracias
Saludos