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

External interrupt using hall effect sensor sensor with Arduino based PLC

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;
}

¿Quieres más información?

Con la tecnología Open Source, puedes ejecutar tus propias instalaciones.

Rellena el formulario y contactaremos contigo lo más pronto posible.

Enviar  Por favor, completa el formulario correctamente.