Mensajes recientes

Páginas: [1] 2 3 ... 10
1
Basate en el último ejercicio que vimos en clase, sobre el uso de claves y al final haces la desactivación del relevador.

char clave[]= "CLAVE?";
char claveIgual[] = "Clave = ";
char claveUsuario [] = "1234";  //contraseña predeterminada
char error404 [] = "Error"; //Código incorrecto
char entrada;
int i;
int error = 0;

void main(void)
{
   init_bolt();
Inicio:
   InitLCD();
   PrintString(clave); //A = si, B= no.
   entrada = GetBot();   
      if(entrada =='A')   
      {
         ClearScreen();         
         GotoXY(1,0);
         for(i=0; i<4; i++)
         {
            claveUsuario = GetBot();
            PutLCD(claveUsuario);
            writeeeprom(i,claveUsuario);         
          }   
         goto Inicio;   
      }
      else
      {   
         repite:
         GotoXY(0,0);
         PrintString(claveIgual);  //autentica contraseñas
         GotoXY(1,0);
         for(i=0; i<4; i++)   //proceso de lectura de digitos
         {
            claveUsuario = GetBot();
            PutLCD(claveUsuario);
            if(claveUsuario != readeeprom(i)) error = 1;                                 
          }
         if(error == 1)
         {
         ClearScreen();
         PrintString(error404);  //imprime contraseña incorrecta
         goto repite;
         }
         else
            RELE = 0;  // se desativa el revevador
      }
   while(1);
}
2
Y por último cómo podria desacticar el relevador por medio de ingresar un código en el teclado, para simular que la alarma ésta apagada???
3
Después utilizando un if, dependiendo la condición de la temperatura deseada para
activar el relevador sólo se usa RELE = 1 para encenderlo; ya que previamente
configurado.

En el display puede aparecer la alerta y la temperatura, editando a la
plantilla anterior, esta parte:

char temperatura[]="Tempe=";
char alarma[]="ALARMA ACTIVADA";
 
void main()
{
init_bolt( );
InitLCD( );
   while(1)
   {
   ClearScreen( );
   PrintString(alarma);
   PrintString(temperatura);
4
Para leer la temperatura se puede adaptar la siguiente plantilla:

#include <p18cxxx.h>
#include <delays.h>
#include <stdio.h>      
#include <stdlib.h>      
#include "18F2550BOLT.h"
#include "ONEWIRE-BOLT.h"

extern void _startup( void ); // See c018i.c in your C18 compiler dir
#pragma code _RESET_INTERRUPT_VECTOR = 0x000800
void _reset( void )
{
    _asm goto _startup _endasm
}

#pragma code

float a;
int entero,decimal;
char array[10];
char temperatura[]="Tempe=";
char alarma[]="ALARMA ACTIVADA";
 
void main()
{
init_bolt( );
InitLCD( );
   while(1)
   {
   ClearScreen( );
   PrintString(alarma);
   PrintString(temperatura);
   a=ds1820_read();
   entero=a; //Entero
   decimal=(a-entero)*10; //Decimal
   sprintf(array,"%2d.%d %cC",entero,decimal,214); //CONVIERTE A STRING
   GotoXY(1,0);
   PrintString(array);
   delay_ms(1000);
   }
      
}
5
Exactamente, se puede usar la plantilla de lectura de temperatura, después se implemetaria un if para cuando este dentro o fuera de la temperatura permitida. Una vez cumplida la condición impimiria la alerta, y creo que con el ultimo ejemplo que vimos de ingreso de código se puede adaptar para reiniciar el programa y apagar el relevador (equivadria a desactivar la alarma).

Para el desarrollo de éste simulador se necesitaria la adaptación de las plantillas:
1. Medidor de temperatura.
2. Activación del relevador mediante una condición.
3. Comparación de claves.
4. Desactivación

Gracias.
6
Para leer el sensor de temperatura 18B20, puedes utilizar la función que se describe aquí:
http://puntoflotante.net/DS18B20ANSICPLUS.htm
Para leer del teclado la temperatura deseada, así como para mostrar un letrero en el LCD, sigue las funciones que se muestran aquí:
http://puntoflotante.net/FUNCIONES-C18.htm
Para activar el relevador solamente tienes que usar el siguiente comando:
RB0=1;
7
Buenas tardes!

Cómo le puedo hacer para que mi programa realicen las siguientes funciones:

1. Detectar la tempratura
2. Si detecta temperatura>=X, se activa el relevador.
3. Se muestra una alerta en el display que diga "ALARMA".
4. Para desactivar el revelador y apagar display, ingresar al teclado una clave.

Esto como si fuera un simulador de alarma contra incendios.

Gracias.
8
Bolt v.Lite 18F2550 board / Tarjeta Bolt v.Lite / Re:Corrimiento en ANCI C
« Último mensaje por Juan Martinez abril 18, 2016, 10:25:42 pm »
Por favor ve a la página de alumnos y baja los archivos con los ejercicios de clase:
http://puntoflotante.net/Ejercicios-ANSI-C-2016-2.zip
El ejercicio que mencionas es el 7. Recuerda que tenemos lógica negada en los dip switches, de tal manera que el número 7 debes seleccionarlo: SW1,SW2,SW3= OFF, SW4=ON
Saludos.
9
Bolt v.Lite 18F2550 board / Tarjeta Bolt v.Lite / Corrimiento en ANCI C
« Último mensaje por Hugo abril 13, 2016, 05:58:56 pm »
En la clase del día 12 de abril se realizó un ejemplo con corrimientos en ANCI C para el sistema Bold.

Al cargar el código en el PIC en el case del dipswitch 7 el corrimiento nos se realiza más que una sola vez. Copié el código tal cual lo realizamos en le salón de clase.

Alguien tiene alguna solución, si es así lo agradeceré.

Saludos
10
Puedes utilizar el siguiente producto, el cual se conecta directamente al puerto DB9 del Bolt 18F2550. Aquí se detalla también la manera de operar el módulo bluetooth desde tu celular ó desde tu PC.
http://www.puntoflotante.net/MODULO-BLUETOOTH-CON-PUERTO-SERIAL.htm
Páginas: [1] 2 3 ... 10