本文整理汇总了Java中com.pi4j.io.gpio.event.GpioPinAnalogValueChangeEvent.getValue方法的典型用法代码示例。如果您正苦于以下问题:Java GpioPinAnalogValueChangeEvent.getValue方法的具体用法?Java GpioPinAnalogValueChangeEvent.getValue怎么用?Java GpioPinAnalogValueChangeEvent.getValue使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.pi4j.io.gpio.event.GpioPinAnalogValueChangeEvent
的用法示例。
在下文中一共展示了GpioPinAnalogValueChangeEvent.getValue方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: main
import com.pi4j.io.gpio.event.GpioPinAnalogValueChangeEvent; //导入方法依赖的package包/类
public static void main(String args[]) throws Exception {
System.out.println("<--Pi4J--> MCP3008 ADC Example ... started.");
// Create gpio controller
final GpioController gpio = GpioFactory.getInstance();
// Create custom MCP3008 analog gpio provider
// we must specify which chip select (CS) that that ADC chip is physically connected to.
final AdcGpioProvider provider = new MCP3008GpioProvider(SpiChannel.CS0);
// Provision gpio analog input pins for all channels of the MCP3008.
// (you don't have to define them all if you only use a subset in your project)
final GpioPinAnalogInput inputs[] = {
gpio.provisionAnalogInputPin(provider, MCP3008Pin.CH0, "MyAnalogInput-CH0"),
gpio.provisionAnalogInputPin(provider, MCP3008Pin.CH1, "MyAnalogInput-CH1"),
gpio.provisionAnalogInputPin(provider, MCP3008Pin.CH2, "MyAnalogInput-CH2"),
gpio.provisionAnalogInputPin(provider, MCP3008Pin.CH3, "MyAnalogInput-CH3"),
gpio.provisionAnalogInputPin(provider, MCP3008Pin.CH4, "MyAnalogInput-CH4"),
gpio.provisionAnalogInputPin(provider, MCP3008Pin.CH5, "MyAnalogInput-CH5"),
gpio.provisionAnalogInputPin(provider, MCP3008Pin.CH6, "MyAnalogInput-CH6"),
gpio.provisionAnalogInputPin(provider, MCP3008Pin.CH7, "MyAnalogInput-CH7")
};
// Define the amount that the ADC input conversion value must change before
// a 'GpioPinAnalogValueChangeEvent' is raised. This is used to prevent unnecessary
// event dispatching for an analog input that may have an acceptable or expected
// range of value drift.
provider.setEventThreshold(100, inputs); // all inputs; alternatively you can set thresholds on each input discretely
// Set the background monitoring interval timer for the underlying framework to
// interrogate the ADC chip for input conversion values. The acceptable monitoring
// interval will be highly dependant on your specific project. The lower this value
// is set, the more CPU time will be spend collecting analog input conversion values
// on a regular basis. The higher this value the slower your application will get
// analog input value change events/notifications. Try to find a reasonable balance
// for your project needs.
provider.setMonitorInterval(250); // milliseconds
// Print current analog input conversion values from each input channel
for(GpioPinAnalogInput input : inputs){
System.out.println("<INITIAL VALUE> [" + input.getName() + "] : RAW VALUE = " + input.getValue());
}
// Create an analog pin value change listener
GpioPinListenerAnalog listener = new GpioPinListenerAnalog()
{
@Override
public void handleGpioPinAnalogValueChangeEvent(GpioPinAnalogValueChangeEvent event)
{
// get RAW value
double value = event.getValue();
// display output
System.out.println("<CHANGED VALUE> [" + event.getPin().getName() + "] : RAW VALUE = " + value);
}
};
// Register the gpio analog input listener for all input pins
gpio.addListener(listener, inputs);
// Keep this sample program running for 10 minutes
for (int count = 0; count < 600; count++) {
Thread.sleep(1000);
}
// When your program is finished, make sure to stop all GPIO activity/threads by shutting
// down the GPIO controller (this method will forcefully shutdown all GPIO monitoring threads
// and background scheduled tasks)
gpio.shutdown();
System.out.println("Exiting MCP3008GpioExample");
}
示例2: main
import com.pi4j.io.gpio.event.GpioPinAnalogValueChangeEvent; //导入方法依赖的package包/类
public static void main(String args[]) throws Exception {
System.out.println("<--Pi4J--> MCP3204 ADC Example ... started.");
// Create gpio controller
final GpioController gpio = GpioFactory.getInstance();
// Create custom MCP3204 analog gpio provider
// we must specify which chip select (CS) that that ADC chip is physically connected to.
final AdcGpioProvider provider = new MCP3204GpioProvider(SpiChannel.CS0);
// Provision gpio analog input pins for all channels of the MCP3204.
// (you don't have to define them all if you only use a subset in your project)
final GpioPinAnalogInput inputs[] = {
gpio.provisionAnalogInputPin(provider, MCP3204Pin.CH0, "MyAnalogInput-CH0"),
gpio.provisionAnalogInputPin(provider, MCP3204Pin.CH1, "MyAnalogInput-CH1"),
gpio.provisionAnalogInputPin(provider, MCP3204Pin.CH2, "MyAnalogInput-CH2"),
gpio.provisionAnalogInputPin(provider, MCP3204Pin.CH3, "MyAnalogInput-CH3")
};
// Define the amount that the ADC input conversion value must change before
// a 'GpioPinAnalogValueChangeEvent' is raised. This is used to prevent unnecessary
// event dispatching for an analog input that may have an acceptable or expected
// range of value drift.
provider.setEventThreshold(100, inputs); // all inputs; alternatively you can set thresholds on each input discretely
// Set the background monitoring interval timer for the underlying framework to
// interrogate the ADC chip for input conversion values. The acceptable monitoring
// interval will be highly dependant on your specific project. The lower this value
// is set, the more CPU time will be spend collecting analog input conversion values
// on a regular basis. The higher this value the slower your application will get
// analog input value change events/notifications. Try to find a reasonable balance
// for your project needs.
provider.setMonitorInterval(250); // milliseconds
// Print current analog input conversion values from each input channel
for(GpioPinAnalogInput input : inputs){
System.out.println("<INITIAL VALUE> [" + input.getName() + "] : RAW VALUE = " + input.getValue());
}
// Create an analog pin value change listener
GpioPinListenerAnalog listener = new GpioPinListenerAnalog()
{
@Override
public void handleGpioPinAnalogValueChangeEvent(GpioPinAnalogValueChangeEvent event)
{
// get RAW value
double value = event.getValue();
// display output
System.out.println("<CHANGED VALUE> [" + event.getPin().getName() + "] : RAW VALUE = " + value);
}
};
// Register the gpio analog input listener for all input pins
gpio.addListener(listener, inputs);
// Keep this sample program running for 10 minutes
for (int count = 0; count < 600; count++) {
Thread.sleep(1000);
}
// When your program is finished, make sure to stop all GPIO activity/threads by shutting
// down the GPIO controller (this method will forcefully shutdown all GPIO monitoring threads
// and background scheduled tasks)
gpio.shutdown();
System.out.println("Exiting MCP3204GpioExample");
}
示例3: main
import com.pi4j.io.gpio.event.GpioPinAnalogValueChangeEvent; //导入方法依赖的package包/类
public static void main(String args[]) throws Exception {
System.out.println("<--Pi4J--> MCP3004 ADC Example ... started.");
// Create gpio controller
final GpioController gpio = GpioFactory.getInstance();
// Create custom MCP3004 analog gpio provider
// we must specify which chip select (CS) that that ADC chip is physically connected to.
final AdcGpioProvider provider = new MCP3004GpioProvider(SpiChannel.CS0);
// Provision gpio analog input pins for all channels of the MCP3004.
// (you don't have to define them all if you only use a subset in your project)
final GpioPinAnalogInput inputs[] = {
gpio.provisionAnalogInputPin(provider, MCP3004Pin.CH0, "MyAnalogInput-CH0"),
gpio.provisionAnalogInputPin(provider, MCP3004Pin.CH1, "MyAnalogInput-CH1"),
gpio.provisionAnalogInputPin(provider, MCP3004Pin.CH2, "MyAnalogInput-CH2"),
gpio.provisionAnalogInputPin(provider, MCP3004Pin.CH3, "MyAnalogInput-CH3")
};
// Define the amount that the ADC input conversion value must change before
// a 'GpioPinAnalogValueChangeEvent' is raised. This is used to prevent unnecessary
// event dispatching for an analog input that may have an acceptable or expected
// range of value drift.
provider.setEventThreshold(100, inputs); // all inputs; alternatively you can set thresholds on each input discretely
// Set the background monitoring interval timer for the underlying framework to
// interrogate the ADC chip for input conversion values. The acceptable monitoring
// interval will be highly dependant on your specific project. The lower this value
// is set, the more CPU time will be spend collecting analog input conversion values
// on a regular basis. The higher this value the slower your application will get
// analog input value change events/notifications. Try to find a reasonable balance
// for your project needs.
provider.setMonitorInterval(250); // milliseconds
// Print current analog input conversion values from each input channel
for(GpioPinAnalogInput input : inputs){
System.out.println("<INITIAL VALUE> [" + input.getName() + "] : RAW VALUE = " + input.getValue());
}
// Create an analog pin value change listener
GpioPinListenerAnalog listener = new GpioPinListenerAnalog()
{
@Override
public void handleGpioPinAnalogValueChangeEvent(GpioPinAnalogValueChangeEvent event)
{
// get RAW value
double value = event.getValue();
// display output
System.out.println("<CHANGED VALUE> [" + event.getPin().getName() + "] : RAW VALUE = " + value);
}
};
// Register the gpio analog input listener for all input pins
gpio.addListener(listener, inputs);
// Keep this sample program running for 10 minutes
for (int count = 0; count < 600; count++) {
Thread.sleep(1000);
}
// When your program is finished, make sure to stop all GPIO activity/threads by shutting
// down the GPIO controller (this method will forcefully shutdown all GPIO monitoring threads
// and background scheduled tasks)
gpio.shutdown();
System.out.println("Exiting MCP3004GpioExample");
}
示例4: main
import com.pi4j.io.gpio.event.GpioPinAnalogValueChangeEvent; //导入方法依赖的package包/类
public static void main(String args[]) throws InterruptedException, UnsupportedBusNumberException, IOException {
System.out.println("<--Pi4J--> ADS1115 GPIO Example ... started.");
// number formatters
final DecimalFormat df = new DecimalFormat("#.##");
final DecimalFormat pdf = new DecimalFormat("###.#");
// create gpio controller
final GpioController gpio = GpioFactory.getInstance();
// create custom ADS1115 GPIO provider
final ADS1115GpioProvider gpioProvider = new ADS1115GpioProvider(I2CBus.BUS_1, ADS1115GpioProvider.ADS1115_ADDRESS_0x48);
// provision gpio analog input pins from ADS1115
GpioPinAnalogInput myInputs[] = {
gpio.provisionAnalogInputPin(gpioProvider, ADS1115Pin.INPUT_A0, "MyAnalogInput-A0"),
gpio.provisionAnalogInputPin(gpioProvider, ADS1115Pin.INPUT_A1, "MyAnalogInput-A1"),
gpio.provisionAnalogInputPin(gpioProvider, ADS1115Pin.INPUT_A2, "MyAnalogInput-A2"),
gpio.provisionAnalogInputPin(gpioProvider, ADS1115Pin.INPUT_A3, "MyAnalogInput-A3"),
};
// ATTENTION !!
// It is important to set the PGA (Programmable Gain Amplifier) for all analog input pins.
// (You can optionally set each input to a different value)
// You measured input voltage should never exceed this value!
//
// In my testing, I am using a Sharp IR Distance Sensor (GP2Y0A21YK0F) whose voltage never exceeds 3.3 VDC
// (http://www.adafruit.com/products/164)
//
// PGA value PGA_4_096V is a 1:1 scaled input,
// so the output values are in direct proportion to the detected voltage on the input pins
gpioProvider.setProgrammableGainAmplifier(ProgrammableGainAmplifierValue.PGA_4_096V, ADS1115Pin.ALL);
// Define a threshold value for each pin for analog value change events to be raised.
// It is important to set this threshold high enough so that you don't overwhelm your program with change events for insignificant changes
gpioProvider.setEventThreshold(500, ADS1115Pin.ALL);
// Define the monitoring thread refresh interval (in milliseconds).
// This governs the rate at which the monitoring thread will read input values from the ADC chip
// (a value less than 50 ms is not permitted)
gpioProvider.setMonitorInterval(100);
// create analog pin value change listener
GpioPinListenerAnalog listener = new GpioPinListenerAnalog()
{
@Override
public void handleGpioPinAnalogValueChangeEvent(GpioPinAnalogValueChangeEvent event)
{
// RAW value
double value = event.getValue();
// percentage
double percent = ((value * 100) / ADS1115GpioProvider.ADS1115_RANGE_MAX_VALUE);
// approximate voltage ( *scaled based on PGA setting )
double voltage = gpioProvider.getProgrammableGainAmplifier(event.getPin()).getVoltage() * (percent/100);
// display output
System.out.println(" (" + event.getPin().getName() +") : VOLTS=" + df.format(voltage) + " | PERCENT=" + pdf.format(percent) + "% | RAW=" + value + " ");
}
};
myInputs[0].addListener(listener);
myInputs[1].addListener(listener);
myInputs[2].addListener(listener);
myInputs[3].addListener(listener);
// keep program running for 10 minutes
Thread.sleep(600000);
// stop all GPIO activity/threads by shutting down the GPIO controller
// (this method will forcefully shutdown all GPIO monitoring threads and scheduled tasks)
gpio.shutdown();
System.out.println("Exiting ADS1115GpioExample");
}
示例5: main
import com.pi4j.io.gpio.event.GpioPinAnalogValueChangeEvent; //导入方法依赖的package包/类
public static void main(String args[]) throws InterruptedException, UnsupportedBusNumberException, IOException {
System.out.println("<--Pi4J--> ADS1015 GPIO Example ... started.");
// number formatters
final DecimalFormat df = new DecimalFormat("#.##");
final DecimalFormat pdf = new DecimalFormat("###.#");
// create gpio controller
final GpioController gpio = GpioFactory.getInstance();
// create custom ADS1015 GPIO provider
final ADS1015GpioProvider gpioProvider = new ADS1015GpioProvider(I2CBus.BUS_1, ADS1015GpioProvider.ADS1015_ADDRESS_0x48);
// provision gpio analog input pins from ADS1015
GpioPinAnalogInput myInputs[] = {
gpio.provisionAnalogInputPin(gpioProvider, ADS1015Pin.INPUT_A0, "MyAnalogInput-A0"),
gpio.provisionAnalogInputPin(gpioProvider, ADS1015Pin.INPUT_A1, "MyAnalogInput-A1"),
gpio.provisionAnalogInputPin(gpioProvider, ADS1015Pin.INPUT_A2, "MyAnalogInput-A2"),
gpio.provisionAnalogInputPin(gpioProvider, ADS1015Pin.INPUT_A3, "MyAnalogInput-A3"),
};
// ATTENTION !!
// It is important to set the PGA (Programmable Gain Amplifier) for all analog input pins.
// (You can optionally set each input to a different value)
// You measured input voltage should never exceed this value!
//
// In my testing, I am using a Sharp IR Distance Sensor (GP2Y0A21YK0F) whose voltage never exceeds 3.3 VDC
// (http://www.adafruit.com/products/164)
//
// PGA value PGA_4_096V is a 1:1 scaled input,
// so the output values are in direct proportion to the detected voltage on the input pins
gpioProvider.setProgrammableGainAmplifier(ProgrammableGainAmplifierValue.PGA_4_096V, ADS1015Pin.ALL);
// Define a threshold value for each pin for analog value change events to be raised.
// It is important to set this threshold high enough so that you don't overwhelm your program with change events for insignificant changes
gpioProvider.setEventThreshold(500, ADS1015Pin.ALL);
// Define the monitoring thread refresh interval (in milliseconds).
// This governs the rate at which the monitoring thread will read input values from the ADC chip
// (a value less than 50 ms is not permitted)
gpioProvider.setMonitorInterval(100);
// create analog pin value change listener
GpioPinListenerAnalog listener = new GpioPinListenerAnalog()
{
@Override
public void handleGpioPinAnalogValueChangeEvent(GpioPinAnalogValueChangeEvent event)
{
// RAW value
double value = event.getValue();
// percentage
double percent = ((value * 100) / ADS1015GpioProvider.ADS1015_RANGE_MAX_VALUE);
// approximate voltage ( *scaled based on PGA setting )
double voltage = gpioProvider.getProgrammableGainAmplifier(event.getPin()).getVoltage() * (percent/100);
// display output
System.out.println(" (" + event.getPin().getName() +") : VOLTS=" + df.format(voltage) + " | PERCENT=" + pdf.format(percent) + "% | RAW=" + value + " ");
}
};
myInputs[0].addListener(listener);
myInputs[1].addListener(listener);
myInputs[2].addListener(listener);
myInputs[3].addListener(listener);
// keep program running for 10 minutes
Thread.sleep(600000);
// stop all GPIO activity/threads by shutting down the GPIO controller
// (this method will forcefully shutdown all GPIO monitoring threads and scheduled tasks)
gpio.shutdown();
System.out.println("Exiting ADS1015GpioExample");
}
示例6: main
import com.pi4j.io.gpio.event.GpioPinAnalogValueChangeEvent; //导入方法依赖的package包/类
public static void main(String args[]) throws Exception {
System.out.println("<--Pi4J--> MCP3208 ADC Example ... started.");
// Create gpio controller
final GpioController gpio = GpioFactory.getInstance();
// Create custom MCP3208 analog gpio provider
// we must specify which chip select (CS) that that ADC chip is physically connected to.
final AdcGpioProvider provider = new MCP3208GpioProvider(SpiChannel.CS0);
// Provision gpio analog input pins for all channels of the MCP3208.
// (you don't have to define them all if you only use a subset in your project)
final GpioPinAnalogInput inputs[] = {
gpio.provisionAnalogInputPin(provider, MCP3208Pin.CH0, "MyAnalogInput-CH0"),
gpio.provisionAnalogInputPin(provider, MCP3208Pin.CH1, "MyAnalogInput-CH1"),
gpio.provisionAnalogInputPin(provider, MCP3208Pin.CH2, "MyAnalogInput-CH2"),
gpio.provisionAnalogInputPin(provider, MCP3208Pin.CH3, "MyAnalogInput-CH3"),
gpio.provisionAnalogInputPin(provider, MCP3208Pin.CH4, "MyAnalogInput-CH4"),
gpio.provisionAnalogInputPin(provider, MCP3208Pin.CH5, "MyAnalogInput-CH5"),
gpio.provisionAnalogInputPin(provider, MCP3208Pin.CH6, "MyAnalogInput-CH6"),
gpio.provisionAnalogInputPin(provider, MCP3208Pin.CH7, "MyAnalogInput-CH7")
};
// Define the amount that the ADC input conversion value must change before
// a 'GpioPinAnalogValueChangeEvent' is raised. This is used to prevent unnecessary
// event dispatching for an analog input that may have an acceptable or expected
// range of value drift.
provider.setEventThreshold(100, inputs); // all inputs; alternatively you can set thresholds on each input discretely
// Set the background monitoring interval timer for the underlying framework to
// interrogate the ADC chip for input conversion values. The acceptable monitoring
// interval will be highly dependant on your specific project. The lower this value
// is set, the more CPU time will be spend collecting analog input conversion values
// on a regular basis. The higher this value the slower your application will get
// analog input value change events/notifications. Try to find a reasonable balance
// for your project needs.
provider.setMonitorInterval(250); // milliseconds
// Print current analog input conversion values from each input channel
for(GpioPinAnalogInput input : inputs){
System.out.println("<INITIAL VALUE> [" + input.getName() + "] : RAW VALUE = " + input.getValue());
}
// Create an analog pin value change listener
GpioPinListenerAnalog listener = new GpioPinListenerAnalog()
{
@Override
public void handleGpioPinAnalogValueChangeEvent(GpioPinAnalogValueChangeEvent event)
{
// get RAW value
double value = event.getValue();
// display output
System.out.println("<CHANGED VALUE> [" + event.getPin().getName() + "] : RAW VALUE = " + value);
}
};
// Register the gpio analog input listener for all input pins
gpio.addListener(listener, inputs);
// Keep this sample program running for 10 minutes
for (int count = 0; count < 600; count++) {
Thread.sleep(1000);
}
// When your program is finished, make sure to stop all GPIO activity/threads by shutting
// down the GPIO controller (this method will forcefully shutdown all GPIO monitoring threads
// and background scheduled tasks)
gpio.shutdown();
System.out.println("Exiting MCP3208GpioExample");
}