[Aporte] Central de Alarma con PIC

...La forma en que estoy encarando esa lectura de SMSs es usar un bucle y hacer la consulta cada 3s usando el "famoso delay", Quizá alguien diga por ahí "3s de delay... eso es una atrocidad..., etc", pero tomando en cuenta que mientras se inicia el módem no se hace ninguna tarea mas no importa tener al uC "trabado"

...Concluyendo afirmo que los delays son perfectamente utilizables siempre que haya un buen criterio para su uso.

:aplauso: :aplauso: :aplauso: :aplauso: :aplauso:
(y) (y) (y) (y) (y)
 
Desaconsejo el 7805 me ha dado muuuchos problemas. Yo usaba el LM323, que iba sensiblemente mejor sin ser tampoco la panacea.
Regular corriente no tiene sentido en este circuito. Si lo haces caerá la tensión y la liarás.
Por supuesto fuentes separadas para las cargas, optoacopladores, varistores...
Usa relés de 5V, digo yo.

Y si, a mi 1ms de delay me parece una atrocidad aberrante, nunca he usado uno de mas de 20 o 30µs. Pero para gustos los colores. De delays de segundos enteros ya huelga mi opinión por conocida. Opino que absolutamente siempre hay cosas que hacer.
 
Última edición:
Desaconsejo el 7805 me ha dado muuuchos problemas. Yo usaba el LM323, que iba sensiblemente mejor sin ser tampoco la panacea.
Regular corriente no tiene sentido en este circuito. Si lo haces caerá la tensión y la liarás.
Por supuesto fuentes separadas para las cargas, optoacopladores, varistores...
Usa relés de 5V, digo yo.

Y si, a mi 1ms de delay me parece una atrocidad aberrante, nunca he usado uno de mas de 20 o 30µs. Pero para gustos los colores. De delays de segundos enteros ya huelga mi opinión por conocida. Opino que absolutamente siempre hay cosas que hacer.

:apreton: (y) :aplauso: :alabanza:


Por las dudas, voy a buscar la hoja de datosby ver si aca en la patagobia se consigue el LM323... respecto a la lectura de entradas, lanultima modificacion ya lee por tmr0 mas una bamdera que indique que esta en mod activado, asi que ya esta denteo de losbgustos de susncomentarios...
Igualmente, las lineas de lanprimerq beta, si miran con mas detenimiento, tiene una pausa de 50ms (en lanparte que espera un datonserial) , y los sensores comerciales Alonso, dsc, honepiripipi,etc etc, mandan un tren de pulsos qie supera el segundo; O sea... no hay manera de que no lea un disparo.... igualmente, fue lindo como quedobahora con el tmr0....
En lineas anteriores comente que qieroa usar unas librerias y cuqndonjinte todas esas librwrias de int., se estanco todo... perdi mucho tiempo tratando de entender por que se estanco, asonque para evitar dolores de cabeza/meterme en la cabeza del que armo ñas librerias, volvi de cero implementqndo int que pbp tiene...miren lonque les comento:

Código:
;***************************
;En esta seccion, la alarma trabaja en modo armado
;***************************

INICIO:
LCDOUT $FE,1
PAUSE 200
LCDOUT $FE,$80,"  MODO ALARMA   "
LCDOUT $FE,$C0,"    ACTIVADA    "

RF:
SERIN PORTB.1,T2400,50,ZONAS,SENAL
if SENAL="A" then BACKUP    
if SENAL="B" then DISPARO 
if SENAL="C" then DISPARO
if SENAL="D" then DISPARO

zonas:
if zona1 = 0 then disparo
if zona2 = 0 then disparo
if zona3 = 0 then disparo
if zona4 = 0 then disparo
if zona5 = 0 then disparo
if zona6 = 0 then disparo
IF PORTB.0=0 THEN
   LCDOUT $FE,1
   LCDOUT $FE,$80," ALARMA PANICO  "
   LCDOUT $FE,$C0,"    LLAMANDO    "
   PAUSE 1500
   GOTO DISPARO
  ENDIF
PAUSE 50
goto RF

Seguro victor o retmi tiene la solucion entre manos.



Ojo...no me las seeeeee todas :rolleyes:
Se qie so dejo misnotras obligaciones que me dan de comer, esto lo saco adelante; Pero comonse que aca tengo buenos amigos, quizas entre todos podamos armar algo para alguien que necesite una alarma "como la gente" :LOL:
Gracias por la suma de materia gris... Dr, pense que su aporte era para retarme :oops:
:LOL:
 
Última edición:
Hola torres.electronico, veo por ahi un pocible incombeniente en el codigo que subiste.
RF:
SERIN PORTB.1,T2400,50,ZONAS,SENAL
.
.
.
if zona6 = 0 then disparo
IF PORTB.0=0 THEN
LCDOUT $FE,1
LCDOUT $FE,$80," ALARMA PANICO "
LCDOUT $FE,$C0," LLAMANDO "
PAUSE 1500
GOTO DISPARO
ENDIF
PAUSE 50
goto RF

Por lo que veo: En la primera linea de codigo se espera un dato por dato serial a 2400bps, hasta ahi todo bien pero en la penultima linea de codigo tienes pause de 50ms (al menos eso asumo) y eso puede causar algún inconveniente.
A 2400bps un byte tardara en llegar 4.16ms y si por "motivo del destino" ese dato serial llega cuando se inicia o mientras se este en el pause 50 lastimosamente ese dato se perderá.
Para evitar ese problema podrias:
1) Eliminar el pause 50.
2)cambiar de pin de entrada al correspondiente del puerto serie hardware y reducir el pause 50 a uno menor o igual a 4.16ms.
3)usar interrupción de puerto serie y guardar los datos llegados en un buffer para luego leerlo.
4)si por algún motivo los pines del puerto serie están ocupados puedes usar la interrupción externa1 (pic18f) para atender al dato serial que este llegando.
 
Última edición:
SERIN PORTB.1,T2400,50,ZONAS,SENAL

Significa que al llegar a esta linea, espera una transmision serial por PORTB.1... si al cabo de 50mS no enta nada, salta a la etiqueta "ZONAS"... si entra algo, lo guaarda en la variable "SENAL".
Mira, estos son dos tipos diferentes de sensor PIR...
2016-03-15 14.46.41.png

Screenshot_2016-03-15-14-45-11.png
ambos dos, se pueden configurar la cantidad de pulsos que queres que mande cuando se dispara, y como minimo, es un segundo en alto... osea, 50 mS dentro de 1 Segundo, es nada...Igualmente, solo por que lo sugeris, voy a cambiar esta parte y voy a sumar las interrupciones del puerto serie asi solo salta a leer el mensaje cuando entra algo....
ahi consegui unos varistores, pero el LM323 no :facepalm:
 
Última edición:
parece mentira, pero acostumbrado a la gama 16F87X, no puedo adecuarme al 18F4550 :cabezon:
primero chancleteo metiendo la pata en la configuracion; O sea, lo hice sin pensar a las apuradas antes de que se vuele la idea, y puses los fueses como si fuera un 877... perdi 40 minutos tratando de entender por que no funcinaba :oops: movia esto, reforme lo otro :rolleyes: y nada de nada :cry:... cuando me di cuenta, busque info al respecto (menos la hoja de datos :facepalm:) y tampoco pude hacerlo por que se ve que le pegue una vista "muy" gorda... dame dos dias mas que ando con bastante laburo particular, y me voy a mirar la hoja de datos y buscar algun ejemplo; Pero tu idea vale...saludos
 
los fuses en pic18 pueden ser algo complicados ya que hay varias cosas que configurar.
sugiero que le des mas preferencia a la configuracion del PLL. por ejemplo podrías configurar :

FOSC3:FOSC0: 001X (XTPLL) //cristal hasta 4Mhz con pll activado
PLLDIV2:pLLDIV0: 000 (PLLDIV1) //la frecuencia del cristal entra directamente al pll
CPUDIV1:CPUDIV0: 00 //reloj de la cpu a 48Mhz
 
Muy buen aporte. Como todo primer prototipo, (después de armarlo) vienen las mejoras. Solo una duda, los relevadores que activan? No se ven conectados a nada en el esquema?
 
Muy buen aporte. Como todo primer prototipo, (después de armarlo) vienen las mejoras. Solo una duda, los relevadores que activan? No se ven conectados a nada en el esquema?

Hola Ruben tenes un relay para la sirena, y el resto es para la version nueva que tiene control telemetrico con el mismo telefono qaue cito usar como backup ;)
 
Atrás
Arriba