Según altos estándares industriales

Busca en nuestro Blog. Encontrarás múltiples aplicaciones, soluciones, ejemplos de código. Navega utilizando la nube de etiquetas o busca utilizando criterios específicos

Interrupción externa mediante sensor de efecto hall con PLC basado en Arduino

Introducción

El sensor de efecto hall M8 de 3 polos es un sensor utilizado para detectar campos metálicos y magnéticos.  Este sensor es digital, y normalmente debe ser manejado con interrupciones. En este caso se muestra un ejemplo de cómo utilizar este sensor utilizando interrupciones externas con controladores basados en Arduino.

 Requisitos

  • Sensor de efecto Hall


Conexiones

Conexión final: 

Odoo CMS - a big picture

Software

Este sencillo boceto nos permite realizar el conteo de lectura digital del sensor de Hall Effect cada 1 s. Para ello hemos utilizado la entrada I0.5 de nuestro M-Duino 21+. I0.5 permiten la funcionalidad de interrupción externa,  por lo que debemos añadir la función attachInterrupt() para establecer la funcionalidad de interrupción.
 

Como prueba comprobaremos el resultado monitoreado por el serial port, abriremos el  serial monitor para ver los niveles de conteo.

/*
   Copyright (c) 2018 Boot&Work Corp., S.L. All rights reserved

   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU Lesser General Public License as published by
   the Free Software Foundation, either version 3 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

////////////////////////////////////////////////////////////

volatile int counter = 0;

void setup() {
   Serial.begin(9600L);
   attachInterrupt(digitalPinToInterrupt(I0_5), count, RISING);
   Serial.println('Hall Effect Sensor started');
}

////////////////////////////////////////////////////////////

void loop() {
  Serial.println(counter);
  delay(1000); 
}

void count() {
  counter+=1;
}

¿Estás buscando tu PLC ideal?


Mira esta comparativa con otros controladores industriales

Comparamos entradas, salidas, comunicaciones y otras características con las de algunas de las marcas relevantes


Comparativa PLCs >>

¿Quieres más información? 

¡Solo llena el formulario! 

¡Quiero saber más!  Por favor, llene el formulario correctamente.