External interrupt using hall effect sensor with Arduino based PLC

March 21, 2019 by
External interrupt using hall effect sensor with Arduino based PLC
Bernat Garcia

Introduction

The M8 3-pole hall effect sensor is a sensor used to detect metal and magnetic fields. This sensor is digital, and normally must be handled with interrupts. In this case example is showed how to use this sensor using external interrupts with Arduino based controllers.

Requirements


Connections

Final Connection: 

Odoo CMS - a big picture

Software

This simple sketch allows us to perform digital reading counting of the Hall Effect Sensor every 1 sec. For this, we have used the input I0.5 of our M-Duino 21+. I0.5 allows external interrupt functionality, so we must add the attachInterrupt() function to set the interrupt functionality. 

As a test, we will check the result monitored by the serial port, open the serial monitor to see the counting levels.

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

​Search in our Blog

External interrupt using hall effect sensor with Arduino based PLC
Bernat Garcia March 21, 2019

Looking for your ideal Programmable Logic Controller?

Take a look at this product comparison with other industrial controllers Arduino-based. 

We are comparing inputs, outputs, communications and other features with the ones of the relevant brands.


Industrial PLC comparison >>>