Colapsar columna

Menu Usuario -

Hola, Visitante
avatar


Mas Activos -

nocturno
Mensajes: 1967
Meta
Mensajes: 276
djfreeman
Mensajes: 272
spiderman
Mensajes: 257
HJ.0x00
Mensajes: 213

Autor Tema: pasar un codigo de arduino a pic16f628a  (Leído 310 veces)

Desconectado isa

  • Nuevo fichaje
  • *
  • Mensajes: 2
pasar un codigo de arduino a pic16f628a
« en: Noviembre 27, 2017, 23:38 »
hola buenas tardes tengo dudas en como pasar un codigo de arduino  a pic16f628a
Código: [Seleccionar]
#include <LiquidCrystal.h>

#include <Wire.h> // Librería comunicación I2C
#define COLS 16 // Columnas del LCD
#define ROWS 2 // Filas del LCD
#define VELOCIDAD 300 // Velocidad a la que se mueve el texto
 
// Lo primero is inicializar la librería indicando los pins de la interfaz
LiquidCrystal lcd(12, 11, 6, 5, 4, 3);
   
  const int sensor = 2; // Pin digital para el sensor de flujo YF-S201
  int litros_Hora; // Variable que almacena el caudal (L/hora)
  volatile int pulsos = 0; // Variable que almacena el número de pulsos
  unsigned long tiempoAnterior = 0; // Variable para calcular el tiempo transcurrido
  unsigned long pulsos_Acumulados = 0; // Variable que almacena el número de pulsos acumulados
  float litros; // // Variable que almacena el número de litros acumulados
 
  // Rutina de servicio de la interrupción (ISR)
  void flujo()
  {
    pulsos++; // Incrementa en una unidad el número de pulsos
  }
   
  void setup()
  {
   
  }
   
  void loop ()
  {
    // Cada segundo calculamos e imprimimos el  pinMode(sensor, INPUT_PULLUP); // Pin digital como entrada con conexión PULL-UP interna
    lcd.begin(16,2); // Inicializo el LCD 2004
    Serial.begin(9600);
    interrupts(); // Habilito las interrupciones
    // Interrupción INT0, llama a la ISR llamada "flujo" en cada flanco de subida en el pin digital 2
    attachInterrupt(digitalPinToInterrupt(sensor), flujo, RISING); 
    tiempoAnterior = millis(); // Guardo el tiempo que tarda el ejecutarse el setupcaudal y el número de litros consumidos
    if(millis() - tiempoAnterior > 1000)
    {
      // Realizo los cálculos
      tiempoAnterior = millis(); // Actualizo el nuevo tiempo
      pulsos_Acumulados += pulsos; // Número de pulsos acumulados
      litros_Hora = (pulsos * 60 / 7.5); // Q = frecuencia * 60/ 7.5 (L/Hora)
      litros = pulsos_Acumulados*1.0/450; // Cada 450 pulsos son un litro
      pulsos = 0; // Pongo nuevamente el número de pulsos a cero
   
      // Llamada a la función que muestra los resultados en el LCD 2017
      FuelFull_2017();     
    }
  }
 
  // Función que muestra los resultados en el LCD 2017
  void FuelFull_2017()
  {
    // Imprimo la cabecera del sistema
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print(">FuelFull-2017<");       
    lcd.setCursor(0,1);   
    lcd.print("* * * * * * * * * *"); 
    // Presento los valores a través del LCD 2017
    lcd.setCursor(0,2);
    // Imprimo el caudal en L/hora
    lcd.print("-> ");
    lcd.print(litros_Hora, DEC);
    lcd.print(" L/Hora");
    lcd.setCursor(0,3);
    // Imprimo el número de litros acumulados
    lcd.print("-> ");
    lcd.print(litros);   
    lcd.print(" Litros"); 
      Serial.print (litros_Hora, DEC);
      Serial.print (" Litros/min\r\n");
  }


 

login