[vc_row][vc_column][vc_column_text]Linker magnetic switch works as a regular mechanical switch: it turns a circuit on or off depending on the position of the mechanical arm. The only difference is that the status of a magnetic switch is controlled by a presence of a magnet, rather than a mechanical force.
[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column width=”1/1″][vc_tour][vc_tab title=”Parts list” tab_id=”1393999330-1-2″][vc_column_text]We need the following parts:
- 1 x Linker Magnetic Switch Module
- Several male to female jumper wires
- 1 x pcDuino2
[/vc_column_text][/vc_tab][vc_tab title=”Wiring diagram” tab_id=”1393999330-2-72″][vc_column_text]We wire the parts according to the following way:
- SIG of Linker Magnetic Switch module -> Digital 9 of pcDuino2
[/vc_column_text][/vc_tab][vc_tab title=”Sample Code” tab_id=”1394000971671-2-9″][vc_column_text]GPIO class code:
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(); } } }
Test Code:
package com.test; public class test { public static void main(String[] args) throws InterruptedException { // TODO Auto-generated method stub GPIO_Pin buttenpin=new GPIO_Pin(9); buttenpin.setModeINPUT(); while (true) { if("1".equals(buttenpin.getPinStatus())){ System.out.println("Enter the magnetic field !"); }else{ System.out.println("In the magnetic field !"); } Thread.sleep(400); } } }
[/vc_column_text][/vc_tab][vc_tab title=”Test Results” tab_id=”1394000972884-3-7″][vc_column_text]The status of the Linker magnetic switch module will be different depending on the presence of the magnet or not:
Leave a Reply
You must be logged in to post a comment.