[vc_row][vc_column][vc_column_text]It is a common phenomenon that the each operation of Linux is read-write operation, so is to the program that control the GPIO of pcDuino.
The path for pcDuino GPIO pin saved is /sys/devices/virtual/misc/gpio/pin/
Pin controller corresponding file saved in /sys/devices/virtual/misc/gpio/mode/
[/vc_column_text][vc_tour][vc_tab title=”Part list” tab_id=”1393684236-1-19″][vc_column_text]1. [bigcommerce link=”/5mm-green-led-module-of-linker-kit-for-pcduino-arduino/” target=”_blank”]LED Module[/bigcommerce] x 1
2. Male to female DuPont line x 2
3. [bigcommerce link=”/pcduino-an-minipc-with-arduino-headers-ubuntu-android-google-tv/” target=”_blank”]pcDuino[/bigcommerce] x 1
[/vc_column_text][/vc_tab][vc_tab title=”Diagram wiring” tab_id=”1393684236-2-67″][vc_column_text]led GND pin – > cDuino GND pin
led SIG – > pcDuino GPIO 1 pin
[/vc_column_text][/vc_tab][vc_tab title=”Test code” tab_id=”1393684348633-2-5″][vc_column_text]First,create GPIO_pin entity class. code as follows:
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(); } } } Next, create test class,code as follows: package com.test; public class Test { public static void main(String[] args) throws Interrupted Exception { GPIO_Pin ledpin=new GPIO_Pin(1); ledpin.setModeOUTPUT(); while (true) { ledpin.setHIGH(); Thread.sleep(400); ledpin.setLOW(); Thread.sleep(400); } } }
[/vc_column_text][/vc_tab][vc_tab title=”Test result” tab_id=”1393684350346-3-6″][vc_column_text]The LED keep flashing after the program started.
[/vc_column_text][/vc_tab][vc_tab title=”The source program” tab_id=”1393684360004-4-9″][vc_column_text]Download the source program : Java control the GPIO pin Lamp [/vc_column_text][/vc_tab][/vc_tour][/vc_column][/vc_row]
Leave a Reply
You must be logged in to post a comment.