desktop

Curso de programación de PIC en PICBasic Pro

gracias viejo... pero ya pude hacerlo funcionar :)
voy a dejarlo un poco mas comentado y lo subo...

Saludos..
Pd: lo hice mediante UsbCDC

-------------Edit1----------------

viendo lo que mandaste.. el pdf tiene un error...

-------------Edit2----------------

me funcionaron ambos metodos con el USB!!!!!:aplauso::aplauso::aplauso::aplauso::aplauso::LOL:
Aca les dejo ambos proyectos (que son de pruebas asi que no esperen un gran proyecto) que son para entender ambos metodos, el CDC y el HID, el primero simula un puerto serie en el PC, por lo tanto la adquisicion de datos es como cualquier otra de puerto serie con un baudrate de 9600 8n1 y el HID para usarlo como dispositivo de interfaz humana y para adquirir o enviar datos viene con su ejemplo..
Los peros... el ejemplo de con CDC esta en Visual Basic 2008 y traspasarlo a otro lenguaje no es muy dificil, ya que la web esta ya trillado con ejemplos de comunicación serie..
El HID esta con un ejemplo en Visual Basic 6, un poco viejito ya.... al 2008 no pude pasar el código dado que me genera unos errores los cuales no supe solucionar..
El USB CDC necesita de un driver al conectarse al PC que esta en las carpetas y HID como es de esperar no usa driver..:LOL:

Cualquier cosa en que pueda ayudar me dicen.. Saludos!!

PD: Si alguien puede pasar el código del visual basic 6 (el del usb como HID) al 2008 o 2010, se lo agradeceré mucho ya que no pude, y programar en visual basic 6 no me tira mucho...
 

Adjuntos

  • Ejemplos USB 18f4550.rar
    304.9 KB · Visitas: 429
Última edición:
Saludo a los foreros,

Quiero realizar un programa donde tome valores que se van a adquirir por diferentes métodos como teclado, sensores, etc... y compararlos con unos guardados en la eeprom, muy parecido a la clave de acceso ya comentada, sinembargo no me sale bien y me gustaría tener la opinión o comentario de los visitantes. A continuación agrego el código que no me funciona:

PHP:
DEFINE LCD_DREG PORTB 'UTILIZAR 4 BITS DEL PUERTO B PARA TX DE DATOS
DEFINE LCD_DBIT 4     'DESDE EL BIT B.4 AL BIT B.7
DEFINE LCD_RSREG PORTB'UTILIZAR EL REGISTRO  DE CONTROL/DATOS EN EL PUERTO B
DEFINE LCD_RSBIT 1    'EN EL BIT B.1
DEFINE LCD_EREG PORTB 'UTILIZAR EL ENABLE EN EL PUERTO B
DEFINE LCD_EBIT 3     'EN EL BIT B.3

 VAL3 var byte
 VAL4 var byte  
 E1 VAR BYTE
 E2 VAR BYTE 
 TRISB=0   

 EEPROM 5,[10,14]
 
 READ 5,E1
 READ 6,E2
 
 INICIO:
VAL3=10
VAL4=14

    PAUSE 100 
    Lcdout $fe, 1  
	Lcdout $fe, 2  
	Lcdout  #E1
	PAUSE 300
    Lcdout $fe, 1  
	Lcdout $fe, 2  
    Lcdout #E2
	PAUSE 300
    GOSUB EVALUAR
    GOTO INICIO
    
    
 EVALUAR:
 IF (E1=VAL3)  THEN  VERIFICA
 GOSUB FALSO

  
 VERIFICA:
 IF (E2=VAL4) THEN  VERDADERO
 GOSUB FALSO
 
 
  VERDADERO:
    Lcdout $fe, 1   ' Limpia la pantalla
	Lcdout $fe, 2   ' Posiciona el cursor en el inicio 
	Lcdout  "CLAVE CORRECTA" 
  	
 FALSO:
    Lcdout $fe, 1   ' Limpia la pantalla
	Lcdout $fe, 2   ' Posiciona el cursor en el inicio 
	Lcdout  "CLAVE FALSA" 

 
 END
 
Última edición por un moderador:
hola amigos, tengo una duda, que puede ser un tanto básica pero necesito ayuda:

quiero utilizar la instrucción POT para controlar la intensidad luminosa de un led utilizando PWM, logro hacerlo pero el brillo maximo que logro es demasiado bajo.
que puedo hacer?..uso un pic16f628a.
 
hola amigos, tengo una duda, que puede ser un tanto básica pero necesito ayuda:

quiero utilizar la instrucción POT para controlar la intensidad luminosa de un led utilizando PWM, logro hacerlo pero el brillo maximo que logro es demasiado bajo.
que puedo hacer?..uso un pic16f628a.

Posiblemente este mal el valor SCALE, que sirve para ajustar el valor de la salida dependiendo de la resistencia del pote, hay algunas rutinas que te permiten ajustarlo de forma automatica poniendo el pote al maximo...
 
Saludo a todos,

Me quiero embarcar en la construcción de un carro a control remoto, tengo 2 servos y un módulo rf de los baratos, he estado mirando por los foros alguna información que ya tengo pero me gustaría saber si alguien ya lo ha hecho para solicitarle más orientación pues me preocupa el control preciso de los servos ya que hasta el momento he logrado moverlos pero no muy eficientemente.
 
primero es obligatorio el uso de servos, puedes usar servos trucados es una alternativa mira he intentado eso en microcode pero no logre exito depende del micro que vayas a usar puede que te ayude este documento te da una idea bastante buena de lo que se vaya a hacer pudes usar un L293D para activar los motores y atravez de un micro receptor activar las salidas necesarias para un L293D y hacer que vaya adelante atras izquierda derecha yo lo logre en Proton pero talvez tu puedas hacerlo asi porque aqui en mi pais no se puede encontrar con facilidad el 16F84A es muy caro aqui
 

Adjuntos

  • Introducción a la Radio Frecuencia con módulos de LAIPAC.pdf
    317.3 KB · Visitas: 298
Gracias Atricio,

Algo que se me olvidó preguntar también es cuál es el reemplazo del l297 pues tengo un par de motores de paso bipolares pero el dichoso integrado, que es el único que he visto en todos los diagramas, está agotado en todos los almacenes aquí en Medellín (Colombia).
 
la verdad no he usado el L297 segun mire es un driver para motores a paso lo que no mire es la corriente que soporta pero he usado un L293 para motores a paso y me ha ido muy bien claro esta este funciona muy bien para motores de corriente no tan alta creo que no supera el 1.5 amp de tolerancia depende de lo que tu vayas a usar
 
Hola nuevamente,

Pues los motores que tengo son pequeños, de alguna impresora vieja no recuerdo cual modelo, el hecho es que me gustaría ponerlos a trabajar y después mirar en que proyecto los pongo, quizás una cnc casera o un robot básico, me toca esperar un poco pues me falta mucho en programación y como había comentado anteriormente no he podido ni realizar un programa eficiente para manejar servos, a duras penas movimientos deficientes a derecha e izquierda.

Saludos.
 
primero es obligatorio el uso de servos

No estoy de acuerdo en esa afirmacion, los servos si bien son mas exactos no tienen buena velocidad y el control de una rotacion continua es mas complicado. Los motores con un juego de engranajes que den una buena relacion fuerza/velocidad son mucho mas faciles de controlar con un sencillo puente hecho de algunos transistores rapidos y unos diodos (4 de ambos para ser mas exactos). Tambien esta en juego el precio ya que si se necesita arrastrar un peso mesomenos considerable el servo va a ser muy caro.
bueno, esa es mi opinion. Saludos.
 
Hola mecatrodatos muy bueno tu aporte sobre programar el pic con contraseña. Bueno tu programacion lo eh hecho compilar en el codestudio y me sale error en la compilacion nose si has usado este programa o otro para hacerlo compilar. porfavor necesito una respuesta tengo un proyecto final sobre control de seguridad y un punto es el de poner contraseña no se si me podrias dar unos consejos del programa y como seria el circuito.gracias
 
Bueno amigos, solo querìa comentarles que comprè un l293 y l298, francamente es cierto que los transistores son una mejor opciòn pues no me gustò el precio de estos integrados, el primero me costo unos 3 dolares (6500 pesos aquì en Colombia) y el segundo me costo 5 dolares (10.000 pesos), bastante caros me parece, y solo es para entretenimiento aunque de cualquier forma quiero probar ambas opciones y despues comentarè.

Gracias por su interès y la gran ayuda que me han prestado!
 
hola amigos, estoy usando un pic16f88, y me ha sido imposible utilizar el conversor A/D, simulo en proteus y no me funciona les adjunto los archivos para ver si alguien me puede ayudar, la idea es que el led rojo encienda al comenzar el programa, el azul cuando la luz es baja y el verde cuando es alta.

saludos!!


Código:
define osc 20
DEFINE ADC_BITS 8  
DEFINE ADC_CLOCK 3   ' USE A/D INTERNAL RC CLOCK
DEFINE ADC_SAMPLEUS 50   'SET SAMPLING TIME IN uS
'VARIABLES
RES VAR WORD  'A/D CONVERTER RESULT
VOLTS1 VAR WORD  'FIRST PART OF RESULT IN mV
VOLTS2 VAR WORD   'SECOND PART OF RESULT IN mV

'CONSTANTS
CONV1 CON 19 '5000/256=19.53, THIS IS THE DECIMAL PART
CONV2 CON 53  'THIS IS THE FRACTIONAL PART

    TRISA=1  'RA0 (AN0) IS INPUT
    TRISB=0  'PORTB IS OUTPUT
    
 'INIATIALIZE THE A/D CONVERTER 
 
    ADCON1=0   'MAKE AN0 TO AN4 AS ANALOG INPUTS, MAKE REFERENCE VOLTAGE=VDD
    
    ADCON0=%11000001  'A/D CLOCK IS INTERNAL RC, SELECT CHANNEL AN0, TURN ON A/D CONVERTER
   HIGH PORTB.2 
   PAUSE 3000
 AGAIN:
 
 'START A/D CONVERSION
 
    ADCIN 0,RES       'READ CHANNEL 0 DATA   
    VOLTS1=RES*CONV1   'MULTIPLY BY 19
    VOLTS2=RES*CONV2    'MULTIPLY 53
    VOLTS2=VOLTS2/100
    VOLTS1=VOLTS1+VOLTS2  'RESULT IN mV
    IF VOLTS1 < 2500 THEN
    HIGH PORTB.0 
    ELSE                                     
    HIGH PORTB.1
    ENDIF
    PAUSE 2000
    GOTO AGAIN     
    END

Aqui adjunto el archivo para el proteus. :)

GRACIAS!
 

Adjuntos

  • PROTEUS.rar
    14.8 KB · Visitas: 271
Última edición:
Gente tengo una duda que me gustaria aclarar, viendo la pagina neoteo encontre un voltimetro para pilas, en realidad lo que yo queria es aprender a usar el ADC...
El problema surgio al querer compilar el codigo en el "picbasic plus 2.00", me tiraba muchos errores y no logre hacerlo andar... pero ahora me di cuenta el posible problema, en la pagina dice que lo compilan usando el "pic simulator ide"(con el cual si compilo a la primera), y aca esta mi duda... es lo mismo el "pbp plus", el "pic simulator ide" y el "microcode studio" ??? que diferencias tienen?
Desde ya agradezco su respuesta, y si alguien me puede explicar el tema del adc en esos lenguajes mucho mejor, saludos.

Pd: el link es este http://www.neoteo.com/medidor-de-tension-con-pic12f675/pg-4.neo
Y a pesar de que anda cuando toco el pic se enciende parcialmente uno de los leds... problema de codigo o problema del micro? estuve probando bastante y por ahi se jodio algo :)

@lanpu
fijate el codigo ese de neoteo, ya lo tengo funcionando, te puede servir ;)
 
Última edición:
Fernandoae

Supongo que son diferentes variantes de BASIC. Al menos tengo instalados en esta PC el "Pic Sumulator Ide 6.65" y el "Pic Basic Pro 2.50C" dentro del "MicroCode Studio Plus 3.0.0.5".

Leo detenidamente este thread y otras paginas en la Web y siempre dudo con que Basic estan hechos los programas, habia empezado a pensar de colocar algo al principio del pragrama para facilitarle las cosas a quienes son como yo MUY NOVATOS.

Saludos. JuanKa.-
 
Atrás
Arriba