Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?
24/06/2011 #1241

Avatar de atricio

hola gracias por responder si he revisado un poco el driver L298N me podrias explicar un poquito como es eso de entradas y salidas en paralello porque creo que necesito usar un arreglo asi para los motores que requiero ojala me puedas ayudar
25/06/2011 #1242


atricio te recomiendo que mires el puente H SN754410
26/06/2011 #1243

Avatar de mecatrodatos

ya que estoy en vacaciones puedo seguir con mi labor les dejo el tomo uno del Libro Pic Basic Pro y en los otros donde me quede subire los PDF saludos.
Archivos Adjuntos
Tipo de Archivo: pdf LIBRO PIC BASIC PRO.pdf (208,5 KB (Kilobytes), 384 visitas)
26/06/2011 #1244

Avatar de atricio

gracias por el aporte.... amigo autotronico gracias por la recomendacion pero segun mire el driver es hasta 1 amp y es casi la misma configuracion del L293D o me equivoco gracias amigo
27/06/2011 #1245

Avatar de arturouc

atricio dijo: Ver Mensaje
hola gracias por responder si he revisado un poco el driver L298N me podrias explicar un poquito como es eso de entradas y salidas en paralello porque creo que necesito usar un arreglo asi para los motores que requiero ojala me puedas ayudar
claro que si..mira
en la pag. 7 del datasheet del L298N vas a mirar una conexion donde los enables (pin 6 y 11) estan en paralelo (conectados), las entradas (pin 5 y 12) estan en paralelo, las entradas (pin 7 y 10) tambien estan en paralelo, las salidas (pin 2 y 14) que crees...en paralelo y las salidas (pin 3 y 13) tambien. Esta conexion lo que hace es que puedas manejar mayor corriente en la salida, puedes utilizar motores de cd de hasta 4 amps.

en las salidas conectas el motor (con sus respectivos diodos de proteccion del circuito), los enables los puedes tener a +5v CD para que tu motor este habilitado y dependiendo de hacia donde quieres que gire el motor le puedes enviar PWN por una de las entradas

yo utilice este integrado para mover motores paso a paso bipolares y ahora lo estoy utilizando para mover servomotores de CD.... hasta la fecha no me ha reseteado el microcontrolador

espero te sirva...

NOTA: el L293 tambien lo puedes conectar en paralelo para aumentar su salida a 2 amps.

mecatrodatos dijo: Ver Mensaje
ya que estoy en vacaciones puedo seguir con mi labor les dejo el tomo uno del Libro Pic Basic Pro y en los otros donde me quede subire los PDF saludos.
Que tal mecatrodatos gracias por el aporte ...
en la pag. 12 de este curso habias iniciado un tema sobre servomotores con encoder y empezabas a hablar de PID (27 de diciembre del 2009). podrias retomar el tema?
27/06/2011 #1246


Ayuda con simulacion proteus
Hola chicos .. Bueno tengo un problema al simular en proteus una matriz .. No se simula como otras matricez que he visto por aqui ... Haber si alguine lo revisa y me ayuda .... Gracias
pd.:adjunto el programa con simu.
Archivos Adjuntos
Tipo de Archivo: rar 7x32.rar (19,9 KB (Kilobytes), 111 visitas)
28/06/2011 #1247

Avatar de atricio

muchas gracias mirare lo probare y les cuento
29/06/2011 #1248

Avatar de ferdy575

demonjeff dijo: Ver Mensaje
Hola chicos .. Bueno tengo un problema al simular en proteus una matriz .. No se simula como otras matrices que he visto por aquí ... Haber si alguien lo revisa y me ayuda .... Gracias
pd.:adjunto el programa con simu.
Hola estuve viendo tu matriz y encontré que tienes todos los displays conectados al reves, tienes que desconectarlos todos y girarlos 180º y volverlos a conectar tambien te falta conectar el mclr del pic a vcc, por fa revisa y me cuentas como te fue.
30/06/2011 #1249


Sensor de gas analógico
mecatrodatos dijo: Ver Mensaje
chapin: te dejo el proyecto de 38 khz con pwm.
ruse85 : tu programa esta bien mira el contraste del LCD con el potenciometro ubicado en el pic 3 del mismo o da mayor retardo al LCD para que muestre mensajes una ve utilices el comando $fe,1 que es el de limpiar Lcd y ubicar el primer carácter en la primera linea o al pic que estas utilizando la coneccion del MCLR a vdd con resistencia de 1k.
dabopeyton: en el tutorial y manual de proton te respondo.
ivanchomao: Te recomendaría el PIC de la sera 16f con entrada A/D puede ser le 16f628A, el pic 16f873A o el pic 16f877A por si los sensores de gas son analógicos.
Mecatrodatos: En días pasados me habías ayudado con este tema y me habías recomendado trabajar con PIC de la serie 16f. Te cuento que sigo con el proyecto, pero estudiando sobre el tema y revisando las fichas técnicas de los PIC, entiendo que ellos deben recibir señales con voltajes más altos (superiores a 2 voltios). Para esto he estado tratando de amplificar la señal del sensor con amplificadores operacionales 741 y 358. Las ultimas pruebas que hice con LM358 (Vcc de 5V) me da una salida de 3.66 voltios sin haber conectado el sensor, cuando conecto el sensor (sin hacer mediciones) la señal baja hasta 2 voltios aproximadamente y empieza a oscilar mucho (desde 1.7 hasta 2.2 aprox.).

Te agradezco si me puedes orientar sobre si lo que estoy haciendo esta bien y si es asi como puedo evitar la oscilación de voltaje a la salida del amplificador... o que otras recomendaciones puedes darme. Agradezco enormemente la ayuda con este tema. Gracias.
03/07/2011 #1250

Avatar de ferdy575

Hola a todos estoy haciendo un trabajo donde tenemos 2 compresores, ambos funcionan al mismo tiempo y cada uno tiene su respectivo presostato que lo apaga cuando esta cargado, uno de ellos tiene motor trifásico de 3 HP con encendido normal y el otro tiene un motor trifásico de 8 HP con encendido inicial en Y y luego se pasa a delta todo esto se está haciendo manualmente con cuchillas, quise automatizar y que el circuito además tenga la función de guardamotor verificando que siempre estén las 3 fases, escribí un código que debería funcionar pero no lo hace por favor alguien que me lo revise a ver que me quedo mal.
De antemano les agradezco su ayuda.
Archivos Adjuntos
Tipo de Archivo: rar control motores.rar (27,8 KB (Kilobytes), 104 visitas)
04/07/2011 #1251

Avatar de lpnavy

hola a todos!! ando haciendo un sistema de control usando el sensor de temperatura MCP9700a ya que segun entiendo es identico a LM35, pero a la hora de simular en proteus el MCP9700a no me arroja los valores reales en lcd. ejemplo el sensor esta en 30º Cº y en lcd sale 78º, ademas la logica de programacion no deberia cambiar ya que el LM35 y el MCP9700 su resolucion es de 1ºC por cada 10mV y estoy usando 8 bit de resolucion. les dejo un fragmento donde estoy haciendo la conversion

sensor var byte
tempera var byte
adcon1=0

inicio:
adcin 0, sensor
tempera=2*sensor
LCDOUT $FE,2,"TEMPERATURA:",dec tempera,"C"
goto inicio
04/07/2011 #1252

Avatar de atricio

amigos he tenido problemas al querer hacer funcionar el L298N tiene unas resistencias y otros elementos adicionales que no entiendo para que son ojala me pudieran ayudar por favor para poderlo manejar gracias de antemano
04/07/2011 #1253

Avatar de mecatrodatos

lpnavy dijo: Ver Mensaje
hola a todos!! ando haciendo un sistema de control usando el sensor de temperatura MCP9700a ya que segun entiendo es identico a LM35, pero a la hora de simular en proteus el MCP9700a no me arroja los valores reales en lcd. ejemplo el sensor esta en 30º Cº y en lcd sale 78º, ademas la logica de programacion no deberia cambiar ya que el LM35 y el MCP9700 su resolucion es de 1ºC por cada 10mV y estoy usando 8 bit de resolucion. les dejo un fragmento donde estoy haciendo la conversion

sensor var byte
tempera var byte
adcon1=0

inicio:
adcin 0, sensor
tempera=2*sensor
LCDOUT $FE,2,"TEMPERATURA:",dec tempera,"C"
goto inicio
Aqui te dejo un ejemplo

Atricio: mira la imagen anexa dc motor
Archivos Adjuntos
Tipo de Archivo: rar glcd-pic-mcp9700a.rar (69,4 KB (Kilobytes), 150 visitas)
Tipo de Archivo: rar DC_Motor_298_motor_control.rar (41,3 KB (Kilobytes), 141 visitas)
05/07/2011 #1254

Avatar de lpnavy

gracias mecatrodatos, probare ese factor de conversion en mi codigo a ver que tal me sale.
08/07/2011 #1255

Avatar de Nano24

mecatrodatos dijo: Ver Mensaje
Aqui te dejo un ejemplo

Atricio: mira la imagen anexa dc motor
Hola mecatrodatos, quería comentarte que use el generador de 38Khz directo desde el PIC justo como me habías aconsejado hace tiempo, pero la cuestión es que programe un robot que envía el tren de pulsos de esta manera:

TRISB=%11110110 'B.3= salida PWM , B.1&2= pulsadores
PR2=25 'Setleccionar PWM a 38KHz
CCPR1L=13 'Seleccionar ciclo util de PWM a 50%
CCP1CON=%00001100 'modo de seleccion PWM?ON/OFF
T2CON=%00000100 'Timer2 ON + 1:1 prescale

Los sensores cuando captan la señal a 38Khz ellos caen a 0V y cuando no hay señal están a 5V, lo digo porque ya medí con el tester, bueno cuando le coloco el LED infrarrojo que esta conectado al PIC no pasa nada, no capta la emisión infrarroja que esta enviando el microcontrolador, ¿que podría estar pasando? no entiendo amigo, todo lo que quiero hacer es que cuando uno de los sensores cae a 0V haga una función es todo.

Nano24 dijo: Ver Mensaje
Hola mecatrodatos, quería comentarte que use el generador de 38Khz directo desde el PIC justo como me habías aconsejado hace tiempo, pero la cuestión es que programe un robot que envía el tren de pulsos de esta manera:

TRISB=%11110110 'B.3= salida PWM , B.1&2= pulsadores
PR2=25 'Setleccionar PWM a 38KHz
CCPR1L=13 'Seleccionar ciclo util de PWM a 50%
CCP1CON=%00001100 'modo de seleccion PWM?ON/OFF
T2CON=%00000100 'Timer2 ON + 1:1 prescale

Los sensores cuando captan la señal a 38Khz ellos caen a 0V y cuando no hay señal están a 5V, lo digo porque ya medí con el tester, bueno cuando le coloco el LED infrarrojo que esta conectado al PIC no pasa nada, no capta la emisión infrarroja que esta enviando el microcontrolador, ¿que podría estar pasando? no entiendo amigo, todo lo que quiero hacer es que cuando uno de los sensores cae a 0V haga una función es todo.

Esta es la programacion que estoy usando para el robot evita obstaculos mejorado

;************************************************* ******************************
DEFINE OSC 4
DEFINE LCD_DREG PORTD
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTD
DEFINE LCD_RSBIT 2
DEFINE LCD_EREG PORTD
DEFINE LCD_EBIT 3
DEFINE ADC_BITS 8
DEFINE ADC_CLOCK 3
DEFINE ADC_SAMPLEUS 50
define LOADER_USER 1
;************************************************* ******************************
TRISC.2 = 0
PR2 = 25
CCPR1L = 13
CCP1CON = %00001100
T2CON = %00000100
;************************************************* ******************************
TRISB=%00011111
PORTB.5=0:PORTB.6=0:PORTB.7=0
TRISD=%00000011
PORTD=0
;************************************************* ******************************
LED_DERECHO VAR PORTB.5
LED_CENTRAL VAR PORTB.6
LED_IZQUIERDO VAR PORTB.7
LED_DERECHO=0
LED_CENTRAL=0
LED_IZQUIERDO=0
PITIDO VAR PORTC.1
PITIDO=0
BOTON_1 VAR PORTD.0
BOTON_2 VAR PORTD.1
;************************************************* ******************************
SENSOR_DERECHO VAR PORTB.0
SENSOR_DERECHO_LATERAL VAR PORTB.1
SENSOR_IZQUIERDO VAR PORTB.2
SENSOR_IZQUIERDO_LATERAL VAR PORTB.3
;************************************************* ******************************
MOTOR_DERECHO_A VAR PORTC.4
MOTOR_DERECHO_B VAR PORTC.5
MOTOR_IZQUIERDO_A VAR PORTC.6
MOTOR_IZQUIERDO_B VAR PORTC.7
;************************************************* ******************************
ACTIVAR CON 1
DESACTIVAR CON 0
SI CON 1
NO CON 0
Res var word
Voltaje_total var word
PULSOS_1 var word
Volts1 var word
Volts2 var word
Conv1 con 19
Conv2 con 53
POSICION_1 var byte
POSICION_1=$CF
POSICION_2 VAR BYTE
POSICION_2=$80
lcdout $fe,1
pause 200
GOTO BUCLE_INICIO
PAUSA_1:
HIGH PITIDO
PAUSE 150
LOW PITIDO
PAUSE 150
GOTO BUCLE_INICIO
;************************************************* ******************************
BUCLE_INICIO:
lcdout $fe,1
IF BOTON_1=1 THEN GOSUB MEDIR_CARGA
IF BOTON_2=1 THEN GOSUB MEDIR_CARGA
PULSIN SENSOR_DERECHO,1500,PULSOS_1
IF PULSOS_1>100 THEN
gosub INICIANDO_PROGRAMA
ELSE
LCDOUT $FE,2,"ROBOT EN ESPERA"
ENDIF
pause 2000
GOTO BUCLE_INICIO
;************************************************* ******************************
INICIANDO_PROGRAMA:
LED_DERECHO=ACTIVAR:LED_CENTRAL=DESACTIVAR:LED_IZQ UIERDO=ACTIVAR:PITIDO=ACTIVAR
PAUSE 200
LED_DERECHO=DESACTIVAR:LED_CENTRAL=ACTIVAR:LED_IZQ UIERDO=DESACTIVAR:PITIDO=DESACTIVAR
PAUSE 300
LED_DERECHO=DESACTIVAR:LED_CENTRAL=ACTIVAR:LED_IZQ UIERDO=ACTIVAR:PITIDO=ACTIVAR
PAUSE 200
LED_DERECHO=ACTIVAR:LED_CENTRAL=ACTIVAR:LED_IZQUIE RDO=DESACTIVAR:PITIDO=DESACTIVAR
PAUSE 300
LED_DERECHO=DESACTIVAR:LED_CENTRAL=ACTIVAR:LED_IZQ UIERDO=DESACTIVAR:PITIDO=ACTIVAR
PAUSE 200
LED_DERECHO=DESACTIVAR:LED_CENTRAL=DESACTIVAR:LED_ IZQUIERDO=ACTIVAR:PITIDO=DESACTIVAR
PAUSE 300
LED_DERECHO=ACTIVAR:LED_CENTRAL=DESACTIVAR:LED_IZQ UIERDO=ACTIVAR:PITIDO=ACTIVAR
PAUSE 200
LED_DERECHO=DESACTIVAR:LED_CENTRAL=DESACTIVAR:LED_ IZQUIERDO=DESACTIVAR:PITIDO=DESACTIVAR
PAUSE 300
GOTO BLOQUE_PRINCIPAL
;************************************************* ******************************
BLOQUE_PRINCIPAL:
PULSIN SENSOR_DERECHO,1500,PULSOS_1
IF PULSOS_1>100 THEN
gosub PAUSA_1
ELSE
GOSUB LOGICA_CONTROL:GOSUB MEDIR_CARGA
PAUSE 100
endif
GOTO BLOQUE_PRINCIPAL
;************************************************* ******************************
LOGICA_CONTROL:
if sensor_derecho=1 and sensor_derecho_lateral=1 and sensor_izquierdo=1 and sensor_izquierdo_lateral=1 then gosub MARCHAR
IF SENSOR_DERECHO=0 AND SENSOR_DERECHO_LATERAL=1 AND sensor_izquierdo=1 and sensor_izquierdo_lateral=1 then gosub IZQUIERDA
IF SENSOR_DERECHO=1 AND SENSOR_DERECHO_LATERAL=1 AND sensor_izquierdo=0 and sensor_izquierdo_lateral=1 then gosub DERECHA
IF SENSOR_DERECHO=1 AND SENSOR_DERECHO_LATERAL=0 AND sensor_izquierdo=1 and sensor_izquierdo_lateral=1 then gosub DERECHA
IF SENSOR_DERECHO=0 AND SENSOR_DERECHO_LATERAL=0 AND sensor_izquierdo=1 and sensor_izquierdo_lateral=1 then gosub IZQUIERDA
if sensor_derecho=1 and sensor_derecho_lateral=1 and sensor_izquierdo=0 and sensor_izquierdo_lateral=0 then gosub DERECHA
if sensor_derecho=0 and sensor_derecho_lateral=1 and sensor_izquierdo=0 and sensor_izquierdo_lateral=1 then gosub RETROCEDER
if sensor_derecho=0 and sensor_derecho_lateral=0 and sensor_izquierdo=0 and sensor_izquierdo_lateral=0 then gosub TESTEAR_ZONA
if sensor_derecho=1 and sensor_derecho_lateral=0 and sensor_izquierdo=1 and sensor_izquierdo_lateral=0 then gosub MARCHAR
RETURN
;************************************************* ******************************
MEDIR_CARGA:
LCDOUT $FE,$40,$E,$1B,$1F,$1F,$1F,$1F,$1F,$1F
LCDOUT $FE,$48,$E,$1B,$11,$11,$1F,$1F,$1F,$1F
LCDOUT $FE,$50,$E,$1B,$11,$19,$15,$13,$1F,$1F
ADCIN 0, Res
Volts1 = Res * Conv1
Volts2 = Res * Conv2
Volts2 = Volts2 / 100
voltaje_total = Volts1 + Volts2
if voltaje_total => 4000 THEN GOSUB FULL_CARGA
if voltaje_total < 3900 and voltaje_total > 3500 THEN GOSUB CARGA_MEDIA
if voltaje_total < 3500 THEN GOSUB BATERIA_BAJA
return
;************************************************* ******************************
FULL_CARGA:
LCDOUT $FE,1
LCDOUT $FE,POSICION_1,0:lcdout $fe,$c0,"V =",DEC voltaje_total," mV"
return
;************************************************* ******************************
CARGA_MEDIA:
LCDOUT $FE,1
LCDOUT $FE,POSICION_1,1:lcdout $fe,$c0,"V =",DEC voltaje_total," mV"
return
;************************************************* ******************************
BATERIA_BAJA:
LCDOUT $FE,1
LCDOUT $FE,POSICION_1,2:lcdout $fe,$c0,"V =",DEC voltaje_total," mV"
RETURN
;************************************************* ******************************
MARCHAR:
MOTOR_DERECHO_A=NO:MOTOR_DERECHO_B=SI:MOTOR_IZQUIE RDO_A=NO:MOTOR_IZQUIERDO_B=SI
RETURN
;************************************************* ******************************
RETROCEDER:
MOTOR_DERECHO_A=SI:MOTOR_DERECHO_B=NO:MOTOR_IZQUIE RDO_A=SI:MOTOR_IZQUIERDO_B=NO
PAUSE 800
MOTOR_DERECHO_A=SI:MOTOR_DERECHO_B=NO:MOTOR_IZQUIE RDO_A=NO:MOTOR_IZQUIERDO_B=SI
PAUSE 800
RETURN
;************************************************* ******************************
IZQUIERDA:
MOTOR_DERECHO_A=SI:MOTOR_DERECHO_B=NO:MOTOR_IZQUIE RDO_A=NO:MOTOR_IZQUIERDO_B=SI
PAUSE 800
RETURN
;************************************************* ******************************
DERECHA:
MOTOR_DERECHO_A=NO:MOTOR_DERECHO_B=SI:MOTOR_IZQUIE RDO_A=SI:MOTOR_IZQUIERDO_B=NO
PAUSE 800
RETURN
;************************************************* ******************************
TESTEAR_ZONA:
if sensor_derecho=0 and sensor_derecho_lateral=0 and sensor_izquierdo=0 and sensor_izquierdo_lateral=0 then
MOTOR_DERECHO_A=NO:MOTOR_DERECHO_B=SI:MOTOR_IZQUIE RDO_A=SI:MOTOR_IZQUIERDO_B=NO
PAUSE 800
else
goto BLOQUE_PRINCIPAL
endif
END
09/07/2011 #1256

Avatar de ferdy575

hola, quisiera saber sí en basic pbp existe una función que haga repetir de forma obligada e infinita el programa así como en C lo hace la función: "while(TRUE) { } //loop forever", por favor alguien que me ayude gracias de antemano
09/07/2011 #1257


ferdy575 dijo: Ver Mensaje
hola, quisiera saber sí en basic pbp existe una función que haga repetir de forma obligada e infinita el programa así como en C lo hace la función: "while(TRUE) { } //loop forever", por favor alguien que me ayude gracias de antemano
pues si lo que petendes es hacer que tu programa cuando llegue a la utima linea vuelva al inicio del prgrama pues muy sencillo: goto etiqueta

EJEMPLO

inicio: 'etiqueta de inico

portb.0 = 1 ' prende por 1 segundo el pin 0 del puerto B
pause 1000
portb.0 = 0 ' apaga por 1 segundo el pin 0 del puerto B
pause 1000


goto inicio ' vuelve a la etiqueta inicio

end ' fin

este ejemplo prende y apaga un led indefinidamente hasta que el micro sufra un reset o se apague o se reinicie. espero que esto sea lo que necesites. si no es lo que necesitas explica con mas detalle y si puedo aydar con gusto lo hare.
10/07/2011 #1258

Avatar de ferdy575

guigo dijo: Ver Mensaje
pues si lo que pretendes es hacer que tu programa cuando llegue a la utima linea vuelva al inicio del programa pues muy sencillo: goto etiqueta

EJEMPLO

inicio: 'etiqueta de inicio

portb.0 = 1 ' prende por 1 segundo el pin 0 del puerto B
pause 1000
portb.0 = 0 ' apaga por 1 segundo el pin 0 del puerto B
pause 1000


goto inicio ' vuelve a la etiqueta inicio

end ' fin

este ejemplo prende y apaga un led indefinidamente hasta que el micro sufra un reset o se apague o se reinicie. espero que esto sea lo que necesites. si no es lo que necesitas explica con mas detalle y si puedo ayudar con gusto lo hare.

si tienes razón esto lo se bien, pero tengo un proyectito donde el pic no se actualiza no se por que motivo, sí quiero que actualice debo resetearlo para que vuelva a empezar el programa como sí el "goto main" no estuviera funcionando, y estuviera haciendo solo una lectura del programa y no volviera a empezar, te pongo una copia del código para que lo veas y sí puedes me ayudes a corregir lo que este mal o lo que me haya faltado te agradezco tu ayuda...

@ DEVICE pic16F877A, WDT_ON ;Watchdog Timer ON conectado
@ DEVICE pic16F877A, PWRT_ON ;Power-On Timer conectado
@ DEVICE pic16F877A, BOD_ON ;Brown-Out Detect conectado
@ DEVICE pic16F877A, LVP_OFF ;Bajo voltaje de programación desconectado
@ DEVICE pic16F877A, CPD_OFF ;Protección del código de memoria OFF
@ DEVICE pic16F877A, PROTECT_OFF ;protección de código OFF
@ device xt_osc ;oscilador externo XT
DEFINE osc 20 ;cristal de 20MHz
AdcOn1=7 ;todos los puertos serán digitales

trisb = %00000000
trisc = %00000000
trisd = %11111111

SYMBOL fase1 = PORTD.0
SYMBOL fase2 = PORTD.1
SYMBOL fase3 = PORTD.2
SYMBOL psi1 = PORTD.3
SYMBOL psi2 = PORTD.4
SYMBOL motor_1 = PORTC.0
SYMBOL motor_2_Y = PORTC.1
SYMBOL motor_2_delta = PORTC.2

'' Define registros y bits del LCD
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 0
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 4
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 5
LCDOUT $FE, 1


main:
IF fase1 = 1 AND fase2 = 1 AND fase3 = 1 THEN
GOSUB normal
ELSE
GOSUB falla_electrica
ENDIF
GOTO main


normal:
GOSUB mensaje1
IF PSI1 = 1 THEN motor_1 = 1
IF PSI1 = 0 THEN motor_1 = 0
IF PSI2 = 1 THEN encender_motor2
IF psi2 = 0 THEN apagar_motor2
RETURN

falla_electrica:
GOSUB mensaje2
motor_1 = 0
motor_2_Y = 0
motor_2_delta = 0
RETURN

encender_motor2:
motor_2_Y = 1
motor_2_delta = 0
pause 10000
motor_2_Y = 0
motor_2_delta = 1
stop
return

apagar_motor2:
motor_2_Y = 0
motor_2_delta = 0
return

mensaje1:
LCDOUT $FE,$81, "Funcionamiento" ;mensaje en la primera linea
LCDOUT $FE,$c5, "Normal" ;mensaje en la segunda linea
return

mensaje2:
LCDOUT $FE,$81, "ERROR" ;mensaje en la primera linea
LCDOUT $FE,$c1, "FALLA ELECTRICA" ;mensaje en la segunda linea
return

end

Se supone que el pic debe verificar la presencia de las 3 fases del circuito eléctrico de un taller, sí llegara a faltar alguna debe parar los motores para que no se averíen y debe dar el informe en un lcd 2x16.
12/07/2011 #1259


como tomar una variable como tiempo??
hola amigos nuevamente recurro a uds. y sus conocimientos en pbp, bueno esta vez tengo problema para poner una variable como tiempo, bueno lo que estoy haciendo es contar los pulsos en el pin porta.2 el resultado multiplicarlo por 2 y este tomarlo como tiempo, algo asi ... sorry si hay error en el ejemplo perorecien comienzo a entender este tipo de programacion.

pulsos var byte
tiem var byte

inicio:
count porta.2,1000,pulsos
tiem= pulsos * 2

portb=%0000011
pause ----> aqui quiero poner "tiem"

portb=%1111111
pause ----> aqui quiero poner "tiem"

portb=%0000011
pause ----> aqui quiero poner "tiem"
.
.
.
end

cuando pongo
pause tiem ... me sale error al compilar

espero que acudan en mi ayuda .....de antemano gracias
atte. Jeff A. L.
16/07/2011 #1260


demonjeff que tal si haces una subrutina con la pausa y luego la llamas cuando la necesites algo asi

pulsos var byte
tiem var byte

inicio:
count porta.2,1000,pulsos

portb=%0000011
gosub tiempo

portb=%1111111
gosub tiempo

portb=%0000011
gosub tiempo

tiempo:
tiem= pulsos * 2
.
end

amigos del foro vuelvo con una duda, necesito identificar los pulsos provenientes de un sensor digital, lo primero es identificar una cabecera compuesta con 11011 y luego de eso me envia una trama de 40 bits lo que necesito es almacenar cada uno de los bits en un vector para luego utilizarlos en el programa.
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.