• Home
  • pcDuino
  • WiKi
  • Store
  • Distributors
  • Home
  • pcDuino
  • WiKi
  • Store
  • Distributors
HomepcDuinoJavaRead the Status of Linker Hall Sensor with Java
Previous Next

Read the Status of Linker Hall Sensor with Java

Posted by: Alvin Jin , March 4, 2014

[vc_row][vc_column width=”1/1″][vc_tour][vc_tab title=”Introduction” tab_id=”1393938574-1-83″][vc_column_text]The Hall effect is the production of a voltage difference (the Hall voltage) across an electrical conductor, transverse to an electric current in the conductor and a magnetic field perpendicular to the current.

In this post, we will look at how to read the status of Linker hall module using Java.

Linker_hall[/vc_column_text][/vc_tab][vc_tab title=”Parts List” tab_id=”1393938574-2-91″][vc_column_text]

  1. Several make to female jumper wires
  2. 1 x [bigcommerce link=”/pcduino-an-minipc-with-arduino-headers-ubuntu-android-google-tv/” target=”_blank”]pcDuino[/bigcommerce]
  3. 1 x [bigcommerce link=”/hall-module-of-linker-kit-for-pcduino-arduino/” target=”_blank”]Linker Hall Sensor[/bigcommerce]

[/vc_column_text][/vc_tab][vc_tab title=”Wiring Diagram” tab_id=”1393939180791-2-0″][vc_column_text]QQ图片20140226200611

Linker Hall module    pcDuino
VCC     3.3V
GND GND
RX  one of D1-D13 must be the same as the code

[/vc_column_text][/vc_tab][vc_tab title=”Sample Code” tab_id=”1393939346967-3-7″][vc_column_text]GPIO control Class:

package com.test;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class GPIO_Pin {

    private String modeURI = "/sys/devices/virtual/misc/gpio/mode/";
    private String statusURI = "/sys/devices/virtual/misc/gpio/pin/";
    private int pin = 0;
    public static final String HIGH = "1", LOW = "0", INPUT = "0", OUTPUT = "1", INPUT_PU = "8";

    public GPIO_Pin(int pin) {
        modeURI += "gpio" + pin;
        statusURI += "gpio" + pin;
        this.pin = pin;
    }

    public GPIO_Pin(String pin) {
        // Finalize file paths
        modeURI += "gpio" + pin;
        statusURI += "gpio" + pin;
        this.pin =Integer.parseInt(pin);
    }

    public int getPin() {
        return pin;
    }

    public void overrideURI(String uri) {
        modeURI = uri + "mode/gpio" + pin;
        statusURI = uri + "pin/gpio" + pin;
    }

    public void setMode(String mode) {
        writeToFile(getModeURI(), mode);
    }

    public void set(String state) {
        writeToFile(getStatusURI(), state);
    }

    public void setHIGH() {
        writeToFile(getStatusURI(), HIGH);
    }

    public void setLOW() {
        writeToFile(getStatusURI(), LOW);
    }

    public void setModeINPUT() {
        writeToFile(getModeURI(), INPUT);
    }

    public void setModeOUTPUT() {
        writeToFile(getModeURI(), OUTPUT);
    }

    public void setModeINPUT_PU() {
        writeToFile(getModeURI(), INPUT_PU);
    }

    public String getModeURI() {
        return modeURI;
    }

    public String getStatusURI() {
        return statusURI;
    }

    public String getPinMode() {
        try {
            BufferedReader reader = new BufferedReader(new FileReader(getModeURI()));
            String data = reader.readLine();
            reader.close();
            return data;
        } catch (IOException e) {
        }
        return "";
    }

    public String getPinStatus() {
        try {
            BufferedReader reader = new BufferedReader(new FileReader(getStatusURI()));
            String data = reader.readLine();
            reader.close();
            return data;
        } catch (IOException e) {
        }
        return "";
    }

    private void writeToFile(String URI, String data) {
        try {
            File file = new File(URI);
            file.delete();
            File newFile = new File(URI);
            newFile.createNewFile();
            FileWriter writer = new FileWriter(URI);
            writer.write(data);
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public static void main(String[] args) throws InterruptedException {
        GPIO_Pin ledpin=new GPIO_Pin(1);
        ledpin.setModeOUTPUT();
        while (true) {
            ledpin.setHIGH();
            Thread.sleep(400);
            ledpin.setLOW();
            Thread.sleep(400);
        }
    }
}

Test code:

package com.trc.gpio;

public class test {

    /**
     * @param args
     * @throws InterruptedException 
     */
    public static void main(String[] args) throws InterruptedException {
        // TODO Auto-generated method stub
        GPIO_Pin buttenpin=new GPIO_Pin(9);
        GPIO_Pin ledpin=new GPIO_Pin(8);
        buttenpin.setModeINPUT();
        ledpin.setModeOUTPUT();

        while (true) {
            System.out.println();
            //ledpin.setLOW();
            System.out.println(buttenpin.getPinMode());
            Thread.sleep(4);
            }
    }

}

[/vc_column_text][/vc_tab][vc_tab title=”Test Result” tab_id=”1393939565117-4-1″][vc_column_text]When there is a magnet nearby, we will have a different reading.

QQ截图20140305170853[/vc_column_text][/vc_tab][/vc_tour][/vc_column][/vc_row]

Tags: Java

Share!
Tweet

Alvin Jin

About the author

Leave a Reply Cancel reply

You must be logged in to post a comment.

Category

  • Home
  • pcDuino
  • WiKi
  • Store
  • Distributors