{"id":2630,"date":"2020-08-20T04:27:36","date_gmt":"2020-08-19T21:27:36","guid":{"rendered":"https:\/\/www.phidgets.com\/education\/?page_id=2630"},"modified":"2022-08-31T23:53:00","modified_gmt":"2022-08-31T16:53:00","slug":"dataevents_2","status":"publish","type":"page","link":"https:\/\/www.phidgets.com\/education\/learn\/getting-started-kit-tutorial\/dataevents_2\/","title":{"rendered":"Getting Started Kit &#8211; Button &#038; LED Events"},"content":{"rendered":"<p>[et_pb_section bb_built=&#8221;1&#8243; fullwidth=&#8221;off&#8221; specialty=&#8221;on&#8221; inner_width=&#8221;auto&#8221; inner_max_width=&#8221;1200px&#8221;][et_pb_column type=&#8221;1_3&#8243;][et_pb_code admin_label=&#8221;ph-vertical-menu&#8221; _builder_version=&#8221;4.6.6&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;]<\/p>\n<div class=\"ph-vertical-menu ph-vertical-sticky\"><!-- [et_pb_line_break_holder] -->  <a class=\"ph-vertical-menu-item red\" href=\"\/education\/learn\/getting-started-kit-tutorial\/dataevents_1\"><!-- [et_pb_line_break_holder] -->    Button Events<!-- [et_pb_line_break_holder] -->  <\/a><!-- [et_pb_line_break_holder] -->  <a class=\"ph-vertical-menu-item active red\" href=\"\/education\/learn\/getting-started-kit-tutorial\/dataevents_2\/\"><!-- [et_pb_line_break_holder] -->    Button &#038; LED Events<!-- [et_pb_line_break_holder] -->  <\/a><!-- [et_pb_line_break_holder] --><a class=\"ph-vertical-menu-subitem\" href=\"#overview\"><!-- [et_pb_line_break_holder] -->    Overview<!-- [et_pb_line_break_holder] -->  <\/a><!-- [et_pb_line_break_holder] -->  <a class=\"ph-vertical-menu-subitem\" href=\"#write-code\"><!-- [et_pb_line_break_holder] -->    Write Code<!-- [et_pb_line_break_holder] -->  <\/a><!-- [et_pb_line_break_holder] -->  <a class=\"ph-vertical-menu-subitem\" href=\"#run-program\"><!-- [et_pb_line_break_holder] -->    Run Your Program<!-- [et_pb_line_break_holder] -->  <\/a><!-- [et_pb_line_break_holder] -->  <a class=\"ph-vertical-menu-subitem\" href=\"#practice\"><!-- [et_pb_line_break_holder] -->    Practice<!-- [et_pb_line_break_holder] -->  <\/a><!-- [et_pb_line_break_holder] -->  <a class=\"ph-vertical-menu-subitem\" href=\"#troubleshoot\"><!-- [et_pb_line_break_holder] -->    Troubleshoot<!-- [et_pb_line_break_holder] -->  <\/a><!-- [et_pb_line_break_holder] -->  <a class=\"ph-vertical-menu-item red\" href=\"\/education\/learn\/getting-started-kit-tutorial\/dataevents_3\/\"><!-- [et_pb_line_break_holder] -->    Smart Phidget Events<!-- [et_pb_line_break_holder] -->  <\/a><!-- [et_pb_line_break_holder] -->  <a class=\"ph-vertical-menu-item red\" href=\"\/education\/learn\/getting-started-kit-tutorial\/attach\/\"><!-- [et_pb_line_break_holder] -->    Attach\/Detach Events<!-- [et_pb_line_break_holder] -->  <\/a><!-- [et_pb_line_break_holder] -->  <a class=\"ph-vertical-menu-item red\" href=\"\/education\/learn\/getting-started-kit-tutorial\/dataevents_4\/\"><!-- [et_pb_line_break_holder] -->    Data Interval<!-- [et_pb_line_break_holder] -->  <\/a>  <!-- [et_pb_line_break_holder] --><\/div>\n<p>[\/et_pb_code][et_pb_code admin_label=&#8221;ph-vertical-menu&#8221; _builder_version=&#8221;4.6.6&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243; disabled=&#8221;on&#8221; disabled_on=&#8221;on|on|on&#8221;]<\/p>\n<div class=\"ph-vertical-menu ph-vertical-sticky\"><!-- [et_pb_line_break_holder] -->  <a class=\"ph-vertical-menu-item red\" href=\"\/education\/learn\/getting-started-kit-tutorial\/dutycycle\/\"><!-- [et_pb_line_break_holder] -->    LED Brightness<!-- [et_pb_line_break_holder] -->  <\/a><!-- [et_pb_line_break_holder] -->  <a class=\"ph-vertical-menu-item red\" href=\"\/education\/learn\/getting-started-kit-tutorial\/getting-started-kit-advanced-10-closing\/\"><!-- [et_pb_line_break_holder] -->    Closing Phidgets<!-- [et_pb_line_break_holder] -->  <\/a><!-- [et_pb_line_break_holder] -->  <a class=\"ph-vertical-menu-item red\" href=\"\/education\/learn\/getting-started-kit-tutorial\/dataevents_1\"><!-- [et_pb_line_break_holder] -->    Button Events<!-- [et_pb_line_break_holder] -->  <\/a><!-- [et_pb_line_break_holder] -->  <a class=\"ph-vertical-menu-item active red\" href=\"\/education\/learn\/getting-started-kit-tutorial\/dataevents_2\/\"><!-- [et_pb_line_break_holder] -->    Button &#038; LED Events<!-- [et_pb_line_break_holder] -->  <\/a><!-- [et_pb_line_break_holder] --><a class=\"ph-vertical-menu-subitem\" href=\"#overview\"><!-- [et_pb_line_break_holder] -->    Overview<!-- [et_pb_line_break_holder] -->  <\/a><!-- [et_pb_line_break_holder] -->  <a class=\"ph-vertical-menu-subitem\" href=\"#write-code\"><!-- [et_pb_line_break_holder] -->    Write code<!-- [et_pb_line_break_holder] -->  <\/a><!-- [et_pb_line_break_holder] -->  <a class=\"ph-vertical-menu-subitem\" href=\"#practice\"><!-- [et_pb_line_break_holder] -->    Practice<!-- [et_pb_line_break_holder] -->  <\/a><!-- [et_pb_line_break_holder] -->  <a class=\"ph-vertical-menu-subitem\" href=\"#troubleshoot\"><!-- [et_pb_line_break_holder] -->    Troubleshoot<!-- [et_pb_line_break_holder] -->  <\/a><!-- [et_pb_line_break_holder] -->  <a class=\"ph-vertical-menu-item red\" href=\"\/education\/learn\/getting-started-kit-tutorial\/dataevents_3\/\"><!-- [et_pb_line_break_holder] -->    Smart Phidget Events<!-- [et_pb_line_break_holder] -->  <\/a><!-- [et_pb_line_break_holder] -->  <a class=\"ph-vertical-menu-item red\" href=\"\/education\/learn\/getting-started-kit-tutorial\/attach\/\"><!-- [et_pb_line_break_holder] -->    Attach\/Detach Events<!-- [et_pb_line_break_holder] -->  <\/a><!-- [et_pb_line_break_holder] -->  <a class=\"ph-vertical-menu-item red\" href=\"\/education\/learn\/getting-started-kit-tutorial\/dataevents_4\/\"><!-- [et_pb_line_break_holder] -->    Data Interval<!-- [et_pb_line_break_holder] -->  <\/a>  <a class=\"ph-vertical-menu-item red\" href=\"\/education\/learn\/getting-started-kit-tutorial\/addressing_1\/\"><!-- [et_pb_line_break_holder] -->    Two or More Smart Phidgets<!-- [et_pb_line_break_holder] -->  <\/a><!-- [et_pb_line_break_holder] --><a class=\"ph-vertical-menu-item red\" href=\"\/education\/learn\/getting-started-kit-tutorial\/addressing_1-2\/\"><!-- [et_pb_line_break_holder] -->    Two or More VINT Hubs<!-- [et_pb_line_break_holder] -->  <\/a><!-- [et_pb_line_break_holder] --><a class=\"ph-vertical-menu-item red\" href=\"\/education\/learn\/getting-started-kit-tutorial\/getting-started-kit-advanced-9-errors\/\"><!-- [et_pb_line_break_holder] -->    Errors<!-- [et_pb_line_break_holder] -->  <\/a><!-- [et_pb_line_break_holder] --><a class=\"ph-vertical-menu-item red\" href=\"\/education\/learn\/getting-started-kit-tutorial\/getting-started-kit-advanced-11-sensorapi\/\"><!-- [et_pb_line_break_holder] -->    Using the Sensor API<!-- [et_pb_line_break_holder] -->  <\/a><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><a class=\"ph-vertical-menu-item red\" href=\"\/education\/learn\/getting-started-kit-tutorial\/getting-started-kit-advanced-12-phidget-api\/\"><!-- [et_pb_line_break_holder] -->    Using the Phidget API<!-- [et_pb_line_break_holder] -->  <\/a><!-- [et_pb_line_break_holder] --><\/div>\n<p>[\/et_pb_code][\/et_pb_column][et_pb_column type=&#8221;2_3&#8243; specialty_columns=&#8221;4&#8243;][et_pb_row_inner _builder_version=&#8221;4.4.5&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; module_id=&#8221;overview&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;][et_pb_column_inner type=&#8221;4_4&#8243; saved_specialty_column_type=&#8221;2_3&#8243; custom_padding__hover=&#8221;|||&#8221; custom_padding=&#8221;|||&#8221; saved_specialty_column_type=&#8221;2_3&#8243;][et_pb_code admin_label=&#8221;Advanced &#8211; 3 &#8211; Button &#038; LED Events&#8221; _builder_version=&#8221;4.4.5&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;]<\/p>\n<div class=\"ph-overline-text\"><!-- [et_pb_line_break_holder] -->    <a href=\"\/education\/learn\/getting-started-kit-tutorial\">Getting started tutorial<\/a><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"ph-pre-h1 ph-color-grey-200\">Advanced Lesson<\/div>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<h1>Button &#038; LED Events<\/h1>\n<p><!-- [et_pb_line_break_holder] --><pee>In this lesson, you\u2019ll learn how to write a program that gets input from a button using events and outputs to an LED!<\/pee>[\/et_pb_code][et_pb_image _builder_version=&#8221;4.18.0&#8243; src=&#8221;https:\/\/www.phidgets.com\/education\/wp-content\/uploads\/2022\/08\/button-led-press.gif&#8221; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243; align=&#8221;center&#8221; background_pattern_color=&#8221;rgba(0,0,0,0.2)&#8221; background_mask_color=&#8221;#ffffff&#8221; \/][\/et_pb_column_inner][\/et_pb_row_inner][et_pb_row_inner _builder_version=&#8221;4.4.5&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; module_id=&#8221;write-code&#8221; module_class=&#8221;ph-hidden-anchor&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;][et_pb_column_inner type=&#8221;4_4&#8243; saved_specialty_column_type=&#8221;2_3&#8243; custom_padding__hover=&#8221;|||&#8221; custom_padding=&#8221;|||&#8221; saved_specialty_column_type=&#8221;2_3&#8243;][et_pb_code admin_label=&#8221;Write Code &#8211; row hidden anchor&#8221; _builder_version=&#8221;4.4.5&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243; \/][\/et_pb_column_inner][\/et_pb_row_inner][et_pb_row_inner admin_label=&#8221;Row&#8221; _builder_version=&#8221;4.4.5&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; module_class=&#8221;ph-user-java&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;][et_pb_column_inner type=&#8221;4_4&#8243; saved_specialty_column_type=&#8221;2_3&#8243; custom_padding__hover=&#8221;|||&#8221; custom_padding=&#8221;|||&#8221; saved_specialty_column_type=&#8221;2_3&#8243;][et_pb_code admin_label=&#8221;Write code Java&#8221; _builder_version=&#8221;4.6.6&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;]<\/p>\n<h2>Write Code (Java)<\/h2>\n<p><!-- [et_pb_line_break_holder] --><pee>Copy the code below into the project you created. If you don&#8217;t have a project or forgot how to create one, revisit the <a href=\"\/education\/learn\/getting-started-kit-tutorial\/configure-ide\/\">Configure section<\/a>.<\/pee><!-- [et_pb_line_break_holder] --><pee>Not your programming language? <a class=\"ph-toggle-settings\">Set your preferences<\/a> so we can display relevant code examples<\/pee>[\/et_pb_code][et_pb_code admin_label=&#8221;Code Sample &#8211; Netbeans&#8221; _builder_version=&#8221;4.4.5&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243; module_class=&#8221;ph-user-netbeans&#8221;]<\/p>\n<pre class=\"language-java\"><!-- [et_pb_line_break_holder] -->  <code><!-- [et_pb_line_break_holder] -->package gettingstarted;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/\/Add Phidgets Library<!-- [et_pb_line_break_holder] -->import com.phidget22.*;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->public class GettingStarted {<!-- [et_pb_line_break_holder] -->    \/\/Turn on\/off LEDs with Global Variables<!-- [et_pb_line_break_holder] -->    static boolean turnRedLEDOn = false;<!-- [et_pb_line_break_holder] -->    static boolean turnGreenLEDOn = false;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/\/Handle Exceptions<!-- [et_pb_line_break_holder] -->    public static void main(String[] args) throws Exception {<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        \/\/Create<!-- [et_pb_line_break_holder] -->        DigitalInput redButton = new DigitalInput();<!-- [et_pb_line_break_holder] -->        DigitalInput greenButton = new DigitalInput();<!-- [et_pb_line_break_holder] -->        DigitalOutput redLED = new DigitalOutput();<!-- [et_pb_line_break_holder] -->        DigitalOutput greenLED = new DigitalOutput();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        \/\/Address<!-- [et_pb_line_break_holder] -->        redButton.setHubPort(0);<!-- [et_pb_line_break_holder] -->        redButton.setIsHubPortDevice(true);<!-- [et_pb_line_break_holder] -->        greenButton.setHubPort(5);<!-- [et_pb_line_break_holder] -->        greenButton.setIsHubPortDevice(true);<!-- [et_pb_line_break_holder] -->        redLED.setHubPort(1);<!-- [et_pb_line_break_holder] -->        redLED.setIsHubPortDevice(true);<!-- [et_pb_line_break_holder] -->        greenLED.setHubPort(4);<!-- [et_pb_line_break_holder] -->        greenLED.setIsHubPortDevice(true);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        \/\/Event | Event code runs when data input from the sensor changes. The following event is a state change event. The code will listen to the button (Digital Input Object) and only run the contain code when the button is pressed or released (state changes).<!-- [et_pb_line_break_holder] -->        redButton.addStateChangeListener(new DigitalInputStateChangeListener() {<!-- [et_pb_line_break_holder] -->            public void onStateChange(DigitalInputStateChangeEvent e) {<!-- [et_pb_line_break_holder] -->                \/\/Record button state to turn on\/off the red LED<!-- [et_pb_line_break_holder] -->                turnRedLEDOn = e.getState(); <!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] -->        });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        \/\/Event | Event code runs when data input from the sensor changes. The following event is a state change event. It will listen to the button (Digital Input Object) and only run the contain code when the button is pressed or released (state changes).<!-- [et_pb_line_break_holder] -->        greenButton.addStateChangeListener(new DigitalInputStateChangeListener() {<!-- [et_pb_line_break_holder] -->            public void onStateChange(DigitalInputStateChangeEvent e) {<!-- [et_pb_line_break_holder] -->                \/\/Record button state to turn on\/off the green LED<!-- [et_pb_line_break_holder] -->                turnGreenLEDOn = e.getState();<!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] -->        });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        \/\/Open<!-- [et_pb_line_break_holder] -->        redLED.open(1000);<!-- [et_pb_line_break_holder] -->        greenLED.open(1000);<!-- [et_pb_line_break_holder] -->        redButton.open(1000);<!-- [et_pb_line_break_holder] -->        greenButton.open(1000);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        \/\/Use your Phidgets | In the button events you recorded the Button State. Here we will use that data to turn on\/off the LEDs<!-- [et_pb_line_break_holder] -->        while(true) {<!-- [et_pb_line_break_holder] -->            \/\/turn red LED on based on red button input<!-- [et_pb_line_break_holder] -->            redLED.setState(turnRedLEDOn);<!-- [et_pb_line_break_holder] -->            \/\/turn green LED on based on green button input<!-- [et_pb_line_break_holder] -->            greenLED.setState(turnGreenLEDOn);<!-- [et_pb_line_break_holder] -->            \/\/sleep for 150 milliseconds <!-- [et_pb_line_break_holder] -->            Thread.sleep(150);<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->  <\/code><!-- [et_pb_line_break_holder] --><\/pre>\n<p>[\/et_pb_code][et_pb_code admin_label=&#8221;Code Sample &#8211; Eclipse&#8221; _builder_version=&#8221;4.4.5&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243; module_class=&#8221;ph-user-eclipse&#8221;]<\/p>\n<pre class=\"language-java\"><!-- [et_pb_line_break_holder] -->  <code><!-- [et_pb_line_break_holder] -->\/\/Add Phidgets Library<!-- [et_pb_line_break_holder] -->import com.phidget22.*;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->public class GettingStarted {<!-- [et_pb_line_break_holder] -->    \/\/Turn on\/off LEDs with Global Variables<!-- [et_pb_line_break_holder] -->    static boolean turnRedLEDOn = false;<!-- [et_pb_line_break_holder] -->    static boolean turnGreenLEDOn = false;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/\/Handle Exceptions<!-- [et_pb_line_break_holder] -->    public static void main(String[] args) throws Exception {<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        \/\/Create<!-- [et_pb_line_break_holder] -->        DigitalInput redButton = new DigitalInput();<!-- [et_pb_line_break_holder] -->        DigitalInput greenButton = new DigitalInput();<!-- [et_pb_line_break_holder] -->        DigitalOutput redLED = new DigitalOutput();<!-- [et_pb_line_break_holder] -->        DigitalOutput greenLED = new DigitalOutput();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        \/\/Address<!-- [et_pb_line_break_holder] -->        redButton.setHubPort(0);<!-- [et_pb_line_break_holder] -->        redButton.setIsHubPortDevice(true);<!-- [et_pb_line_break_holder] -->        greenButton.setHubPort(5);<!-- [et_pb_line_break_holder] -->        greenButton.setIsHubPortDevice(true);<!-- [et_pb_line_break_holder] -->        redLED.setHubPort(1);<!-- [et_pb_line_break_holder] -->        redLED.setIsHubPortDevice(true);<!-- [et_pb_line_break_holder] -->        greenLED.setHubPort(4);<!-- [et_pb_line_break_holder] -->        greenLED.setIsHubPortDevice(true);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        \/\/Event | Event code runs when data input from the sensor changes. The following event is a state change event. The code will listen to the button (Digital Input Object) and only run the contain code when the button is pressed or released (state changes).<!-- [et_pb_line_break_holder] -->        redButton.addStateChangeListener(new DigitalInputStateChangeListener() {<!-- [et_pb_line_break_holder] -->            public void onStateChange(DigitalInputStateChangeEvent e) {<!-- [et_pb_line_break_holder] -->                \/\/Record button state to turn on\/off the red LED<!-- [et_pb_line_break_holder] -->                turnRedLEDOn = e.getState(); <!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] -->        });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        \/\/Event | Event code runs when data input from the sensor changes. The following event is a state change event. It will listen to the button (Digital Input Object) and only run the contain code when the button is pressed or released (state changes).<!-- [et_pb_line_break_holder] -->        greenButton.addStateChangeListener(new DigitalInputStateChangeListener() {<!-- [et_pb_line_break_holder] -->            public void onStateChange(DigitalInputStateChangeEvent e) {<!-- [et_pb_line_break_holder] -->                \/\/Record button state to turn on\/off the green LED<!-- [et_pb_line_break_holder] -->                turnGreenLEDOn = e.getState();<!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] -->        });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        \/\/Open<!-- [et_pb_line_break_holder] -->        redLED.open(1000);<!-- [et_pb_line_break_holder] -->        greenLED.open(1000);<!-- [et_pb_line_break_holder] -->        redButton.open(1000);<!-- [et_pb_line_break_holder] -->        greenButton.open(1000);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        \/\/Use your Phidgets | In the button events you recorded the Button State. Here we will use that data to turn on\/off the LEDs<!-- [et_pb_line_break_holder] -->        while(true) {<!-- [et_pb_line_break_holder] -->            \/\/turn red LED on based on red button input<!-- [et_pb_line_break_holder] -->            redLED.setState(turnRedLEDOn);<!-- [et_pb_line_break_holder] -->            \/\/turn green LED on based on green button input<!-- [et_pb_line_break_holder] -->            greenLED.setState(turnGreenLEDOn);<!-- [et_pb_line_break_holder] -->            \/\/sleep for 150 milliseconds <!-- [et_pb_line_break_holder] -->            Thread.sleep(150);<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->  <\/code><!-- [et_pb_line_break_holder] --><\/pre>\n<p>[\/et_pb_code][et_pb_code admin_label=&#8221;Code Sample &#8211; Processing&#8221; _builder_version=&#8221;4.6.6&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243; module_class=&#8221;ph-user-processing&#8221;]<\/p>\n<pre class=\"language-java\"><!-- [et_pb_line_break_holder] -->  <code><!-- [et_pb_line_break_holder] -->\/\/Add Phidgets Library<!-- [et_pb_line_break_holder] -->import com.phidget22.*;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/\/Define<!-- [et_pb_line_break_holder] -->DigitalInput redButton;<!-- [et_pb_line_break_holder] -->DigitalInput greenButton;<!-- [et_pb_line_break_holder] -->DigitalOutput redLED;<!-- [et_pb_line_break_holder] -->DigitalOutput greenLED;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->boolean turnRedLEDOn = false;<!-- [et_pb_line_break_holder] -->boolean turnGreenLEDOn = false;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->void setup(){<!-- [et_pb_line_break_holder] -->  try{<!-- [et_pb_line_break_holder] -->    <!-- [et_pb_line_break_holder] -->    \/\/Create <!-- [et_pb_line_break_holder] -->    redButton = new DigitalInput();<!-- [et_pb_line_break_holder] -->    greenButton = new DigitalInput();<!-- [et_pb_line_break_holder] -->    redLED = new DigitalOutput();<!-- [et_pb_line_break_holder] -->    greenLED = new DigitalOutput();<!-- [et_pb_line_break_holder] -->    <!-- [et_pb_line_break_holder] -->    \/\/Address<!-- [et_pb_line_break_holder] -->    redButton.setHubPort(0);<!-- [et_pb_line_break_holder] -->    redButton.setIsHubPortDevice(true);<!-- [et_pb_line_break_holder] -->    greenButton.setHubPort(5);<!-- [et_pb_line_break_holder] -->    greenButton.setIsHubPortDevice(true);<!-- [et_pb_line_break_holder] -->    redLED.setHubPort(1);<!-- [et_pb_line_break_holder] -->    redLED.setIsHubPortDevice(true);<!-- [et_pb_line_break_holder] -->    greenLED.setHubPort(4);<!-- [et_pb_line_break_holder] -->    greenLED.setIsHubPortDevice(true);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/\/Event | Event code runs when data input from the sensor changes. The following event is a state change event. The code will listen to the button (Digital Input Object) and only run the contain code when the button is pressed or released (state changes).<!-- [et_pb_line_break_holder] -->    redButton.addStateChangeListener(new DigitalInputStateChangeListener() {<!-- [et_pb_line_break_holder] -->        public void onStateChange(DigitalInputStateChangeEvent e) {<!-- [et_pb_line_break_holder] -->            \/\/Record button state to turn on\/off the red LED<!-- [et_pb_line_break_holder] -->            turnRedLEDOn = e.getState(); <!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/\/Event | Event code runs when data input from the sensor changes. The following event is a state change event. The code will listen to the button (Digital Input Object) and only run the contain code when the button is pressed or released (state changes).<!-- [et_pb_line_break_holder] -->    greenButton.addStateChangeListener(new DigitalInputStateChangeListener() {<!-- [et_pb_line_break_holder] -->        public void onStateChange(DigitalInputStateChangeEvent e) {<!-- [et_pb_line_break_holder] -->            \/\/Record button state to turn on\/off the green LED<!-- [et_pb_line_break_holder] -->            turnGreenLEDOn = e.getState();<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->    });<!-- [et_pb_line_break_holder] -->        <!-- [et_pb_line_break_holder] -->    \/\/Open<!-- [et_pb_line_break_holder] -->    redLED.open(1000);<!-- [et_pb_line_break_holder] -->    greenLED.open(1000);<!-- [et_pb_line_break_holder] -->    redButton.open(1000);<!-- [et_pb_line_break_holder] -->    greenButton.open(1000);<!-- [et_pb_line_break_holder] -->    <!-- [et_pb_line_break_holder] -->  }catch(Exception e){<!-- [et_pb_line_break_holder] -->    e.printStackTrace();<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->void draw(){<!-- [et_pb_line_break_holder] -->  try{<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/\/Use your Phidgets | In the button events you recorded the Button State. Here we will use that data to turn on\/off the LEDs<!-- [et_pb_line_break_holder] -->    \/\/turn red LED on based on red button input<!-- [et_pb_line_break_holder] -->    redLED.setState(turnRedLEDOn);<!-- [et_pb_line_break_holder] -->    \/\/turn green LED on based on green button input<!-- [et_pb_line_break_holder] -->    greenLED.setState(turnGreenLEDOn);<!-- [et_pb_line_break_holder] -->    delay(150);<!-- [et_pb_line_break_holder] -->    <!-- [et_pb_line_break_holder] -->  }catch(Exception e){<!-- [et_pb_line_break_holder] -->    e.printStackTrace();<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->  <\/code><!-- [et_pb_line_break_holder] --><\/pre>\n<p>[\/et_pb_code][\/et_pb_column_inner][\/et_pb_row_inner][et_pb_row_inner admin_label=&#8221;Row&#8221; _builder_version=&#8221;4.4.5&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; module_class=&#8221;ph-user-python&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;][et_pb_column_inner type=&#8221;4_4&#8243; saved_specialty_column_type=&#8221;2_3&#8243; custom_padding__hover=&#8221;|||&#8221; custom_padding=&#8221;|||&#8221; saved_specialty_column_type=&#8221;2_3&#8243;][et_pb_code admin_label=&#8221;Write code Python&#8221; _builder_version=&#8221;4.6.6&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;]<\/p>\n<h2>Write Code (Python)<\/h2>\n<p><!-- [et_pb_line_break_holder] --><pee>Copy the code below into the project you created. If you don&#8217;t have a project or forgot how to create one, revisit the <a href=\"\/education\/learn\/getting-started-kit-tutorial\/configure-ide\/\">Configure section<\/a>.<\/pee><!-- [et_pb_line_break_holder] --><pee>Not your programming language? <a class=\"ph-toggle-settings\">Set your preferences<\/a> so we can display relevant code examples<\/pee>[\/et_pb_code][et_pb_code admin_label=&#8221;Code Sample&#8221; _builder_version=&#8221;4.6.6&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;]<\/p>\n<pre class=\"language-python\"><!-- [et_pb_line_break_holder] -->  <code><!-- [et_pb_line_break_holder] -->#Add Phidgets Library<!-- [et_pb_line_break_holder] -->from Phidget22.Phidget import *<!-- [et_pb_line_break_holder] -->from Phidget22.Devices.DigitalInput import *<!-- [et_pb_line_break_holder] -->from Phidget22.Devices.DigitalOutput import *<!-- [et_pb_line_break_holder] -->import time<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#Event | Event code runs when data input from the sensor changes. The following event is a state change event. The code will listen to the button (Digital Input Object) and only run the contain code when the button is pressed or released (state changes).<!-- [et_pb_line_break_holder] -->def redButtonStateChange(self, state):<!-- [et_pb_line_break_holder] -->    global turnRedLEDOn<!-- [et_pb_line_break_holder] -->    #Record button state to turn on\/off the red LED<!-- [et_pb_line_break_holder] -->    turnRedLEDOn = state<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#Event | Event code runs when data input from the sensor changes. The following event is a state change event. The code will listen to the button (Digital Input Object) and only run the contain code when the button is pressed or released (state changes).<!-- [et_pb_line_break_holder] -->def greenButtonStateChange(self, state):<!-- [et_pb_line_break_holder] -->    global turnGreenLEDOn<!-- [et_pb_line_break_holder] -->    #Record button state to turn on\/off the green LED<!-- [et_pb_line_break_holder] -->    turnGreenLEDOn = state<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#Create<!-- [et_pb_line_break_holder] -->redButton = DigitalInput()<!-- [et_pb_line_break_holder] -->greenButton = DigitalInput()<!-- [et_pb_line_break_holder] -->redLED = DigitalOutput()<!-- [et_pb_line_break_holder] -->greenLED = DigitalOutput()<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#Address<!-- [et_pb_line_break_holder] -->redButton.setHubPort(0)<!-- [et_pb_line_break_holder] -->redButton.setIsHubPortDevice(True)<!-- [et_pb_line_break_holder] -->greenButton.setHubPort(5)<!-- [et_pb_line_break_holder] -->greenButton.setIsHubPortDevice(True)<!-- [et_pb_line_break_holder] -->redLED.setHubPort(1)<!-- [et_pb_line_break_holder] -->redLED.setIsHubPortDevice(True)<!-- [et_pb_line_break_holder] -->greenLED.setHubPort(4)<!-- [et_pb_line_break_holder] -->greenLED.setIsHubPortDevice(True)<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#Subscribe to events | Subscribing to an Event tells your program to start listening to a Phidget. Here, the program will begin to listen to the state of the button (Digital Input Object).<!-- [et_pb_line_break_holder] -->redButton.setOnStateChangeHandler(redButtonStateChange)<!-- [et_pb_line_break_holder] -->greenButton.setOnStateChangeHandler(greenButtonStateChange)<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#Open<!-- [et_pb_line_break_holder] -->redButton.openWaitForAttachment(1000)<!-- [et_pb_line_break_holder] -->greenButton.openWaitForAttachment(1000)<!-- [et_pb_line_break_holder] -->redLED.openWaitForAttachment(1000)<!-- [et_pb_line_break_holder] -->greenLED.openWaitForAttachment(1000)<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#Turn on\/off LEDs with Global Variables<!-- [et_pb_line_break_holder] -->turnRedLEDOn = False<!-- [et_pb_line_break_holder] -->turnGreenLEDOn = False<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->#Use your Phidgets | In the button events you recorded the Button State. Here we will use that data to turn on\/off the LEDs<!-- [et_pb_line_break_holder] -->while (True):<!-- [et_pb_line_break_holder] -->    #turn red LED on based on red button input<!-- [et_pb_line_break_holder] -->    redLED.setState(turnRedLEDOn)<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    #turn green LED on based on red button input<!-- [et_pb_line_break_holder] -->    greenLED.setState(turnGreenLEDOn)<!-- [et_pb_line_break_holder] -->    time.sleep(0.15)<!-- [et_pb_line_break_holder] -->  <\/code><!-- [et_pb_line_break_holder] --><\/pre>\n<p>[\/et_pb_code][\/et_pb_column_inner][\/et_pb_row_inner][et_pb_row_inner admin_label=&#8221;Row&#8221; _builder_version=&#8221;4.4.5&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; module_class=&#8221;ph-user-csharp&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;][et_pb_column_inner type=&#8221;4_4&#8243; saved_specialty_column_type=&#8221;2_3&#8243; custom_padding__hover=&#8221;|||&#8221; custom_padding=&#8221;|||&#8221; saved_specialty_column_type=&#8221;2_3&#8243;][et_pb_code admin_label=&#8221;Write code C#&#8221; _builder_version=&#8221;4.6.6&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;]<\/p>\n<h2>Write Code (C#)<\/h2>\n<p><!-- [et_pb_line_break_holder] --><pee>Copy the code below into the project you created. If you don&#8217;t have a project or forgot how to create one, revisit the <a href=\"\/education\/learn\/getting-started-kit-tutorial\/configure-ide\/\">Configure section<\/a>.<\/pee><!-- [et_pb_line_break_holder] --><pee>Not your programming language? <a class=\"ph-toggle-settings\">Set your preferences<\/a> so we can display relevant code examples<\/pee>[\/et_pb_code][et_pb_code admin_label=&#8221;Code Sample&#8221; _builder_version=&#8221;4.4.5&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;]<\/p>\n<pre class=\"language-csharp\"><!-- [et_pb_line_break_holder] -->  <code><!-- [et_pb_line_break_holder] -->\/\/Add Phidgets Library<!-- [et_pb_line_break_holder] -->using Phidget22;<!-- [et_pb_line_break_holder] -->using Phidget22.Events;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->namespace GettingStarted<!-- [et_pb_line_break_holder] -->{<!-- [et_pb_line_break_holder] -->    class Program<!-- [et_pb_line_break_holder] -->    {<!-- [et_pb_line_break_holder] -->        \/\/ Turn on\/off LEDs with Global Variables<!-- [et_pb_line_break_holder] -->        static bool turnRedLEDOn = false;<!-- [et_pb_line_break_holder] -->        static bool turnGreenLEDOn = false;<!-- [et_pb_line_break_holder] -->        <!-- [et_pb_line_break_holder] -->        \/\/Event | Event code runs when data input from the sensor changes. The following event is a state change event. The code will listen to the button (Digital Input Object) and only run the contain code when the button is pressed or released (state changes).<!-- [et_pb_line_break_holder] -->        private static void redButton_StateChange(object sender, DigitalInputStateChangeEventArgs e)<!-- [et_pb_line_break_holder] -->        {<!-- [et_pb_line_break_holder] -->            \/\/Record button state to turn on\/off the red LED<!-- [et_pb_line_break_holder] -->            turnRedLEDOn = e.State;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->        <!-- [et_pb_line_break_holder] -->        \/\/Event | Event code runs when data input from the sensor changes. The following event is a state change event. The code will listen to the button (Digital Input Object) and only run the contain code when the button is pressed or released (state changes).<!-- [et_pb_line_break_holder] -->        private static void greenButton_StateChange(object sender, DigitalInputStateChangeEventArgs e)<!-- [et_pb_line_break_holder] -->        { <!-- [et_pb_line_break_holder] -->\t        \/\/Record button state to turn on\/off the green LED<!-- [et_pb_line_break_holder] -->            turnGreenLEDOn = e.State;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        static void Main(string[] args)<!-- [et_pb_line_break_holder] -->        {<!-- [et_pb_line_break_holder] -->            \/\/Create<!-- [et_pb_line_break_holder] -->            DigitalInput redButton = new DigitalInput();<!-- [et_pb_line_break_holder] -->            DigitalInput greenButton = new DigitalInput();<!-- [et_pb_line_break_holder] -->            DigitalOutput redLED = new DigitalOutput();<!-- [et_pb_line_break_holder] -->            DigitalOutput greenLED = new DigitalOutput();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            \/\/Address<!-- [et_pb_line_break_holder] -->            redButton.HubPort = 0;<!-- [et_pb_line_break_holder] -->            redButton.IsHubPortDevice = true;<!-- [et_pb_line_break_holder] -->            greenButton.HubPort = 5;<!-- [et_pb_line_break_holder] -->            greenButton.IsHubPortDevice = true;<!-- [et_pb_line_break_holder] -->            redLED.HubPort = 1;<!-- [et_pb_line_break_holder] -->            redLED.IsHubPortDevice = true;<!-- [et_pb_line_break_holder] -->            greenLED.HubPort = 4;<!-- [et_pb_line_break_holder] -->            greenLED.IsHubPortDevice = true;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            \/\/Subscribe to events | Subscribing to an Event tells your program to start listening to a Phidget. Here, the program will begin to listen to the state of the button (Digital Input Object).<!-- [et_pb_line_break_holder] -->            redButton.StateChange += redButton_StateChange;<!-- [et_pb_line_break_holder] -->            greenButton.StateChange += greenButton_StateChange;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            \/\/Open<!-- [et_pb_line_break_holder] -->            redLED.Open(1000);<!-- [et_pb_line_break_holder] -->            greenLED.Open(1000);<!-- [et_pb_line_break_holder] -->            redButton.Open(1000);<!-- [et_pb_line_break_holder] -->            greenButton.Open(1000);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            \/\/Use your Phidgets | In the button events you recorded the Button State. Here we will use that data to turn on\/off the LEDs<!-- [et_pb_line_break_holder] -->            while (true)<!-- [et_pb_line_break_holder] -->            {<!-- [et_pb_line_break_holder] -->                \/\/ turn red LED on based on red button input<!-- [et_pb_line_break_holder] -->                redLED.State = turnRedLEDOn;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                \/\/ turn green LED on based on red button input<!-- [et_pb_line_break_holder] -->                greenLED.State = turnGreenLEDOn;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->                System.Threading.Thread.Sleep(150);<!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] -->  <\/code><!-- [et_pb_line_break_holder] --><\/pre>\n<p>[\/et_pb_code][\/et_pb_column_inner][\/et_pb_row_inner][et_pb_row_inner admin_label=&#8221;Row&#8221; _builder_version=&#8221;4.4.5&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; module_class=&#8221;ph-user-swift&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;][et_pb_column_inner type=&#8221;4_4&#8243; saved_specialty_column_type=&#8221;2_3&#8243; custom_padding__hover=&#8221;|||&#8221; custom_padding=&#8221;|||&#8221; saved_specialty_column_type=&#8221;2_3&#8243;][et_pb_code admin_label=&#8221;Write code Swift&#8221; _builder_version=&#8221;4.6.6&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;]<\/p>\n<h2>Write Code (Swift)<\/h2>\n<p><!-- [et_pb_line_break_holder] --><pee>Oops, how did you end up here? There is no Button Events lesson for Swift. Go back to the <a href=\"\/education\/learn\/getting-started-kit-tutorial\/\">main tutorial page<\/a>.<\/pee>[\/et_pb_code][\/et_pb_column_inner][\/et_pb_row_inner][et_pb_row_inner admin_label=&#8221;Row&#8221; _builder_version=&#8221;4.6.6&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; module_id=&#8221;run-program&#8221; module_class=&#8221;ph-hidden-anchor&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;][et_pb_column_inner type=&#8221;4_4&#8243; saved_specialty_column_type=&#8221;2_3&#8243; custom_padding__hover=&#8221;|||&#8221; custom_padding=&#8221;|||&#8221; saved_specialty_column_type=&#8221;2_3&#8243;][et_pb_code admin_label=&#8221;Run Program &#8211; row hidden anchor&#8221; _builder_version=&#8221;4.6.6&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243; \/][\/et_pb_column_inner][\/et_pb_row_inner][et_pb_row_inner _builder_version=&#8221;4.4.5&#8243;][et_pb_column_inner type=&#8221;4_4&#8243; saved_specialty_column_type=&#8221;2_3&#8243; custom_padding__hover=&#8221;|||&#8221; custom_padding=&#8221;|||&#8221; saved_specialty_column_type=&#8221;2_3&#8243;][et_pb_code admin_label=&#8221;Run Program&#8221; _builder_version=&#8221;4.6.6&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;]<\/p>\n<h2>Run Your Program<\/h2>\n<p><!-- [et_pb_line_break_holder] --><pee>When you press a button, the corresponding LED will blink.<\/pee>[\/et_pb_code][\/et_pb_column_inner][\/et_pb_row_inner][et_pb_row_inner _builder_version=&#8221;4.4.5&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; module_id=&#8221;practice&#8221; module_class=&#8221;ph-hidden-anchor&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;][et_pb_column_inner type=&#8221;4_4&#8243; saved_specialty_column_type=&#8221;2_3&#8243; custom_padding__hover=&#8221;|||&#8221; custom_padding=&#8221;|||&#8221; saved_specialty_column_type=&#8221;2_3&#8243;][et_pb_code admin_label=&#8221;Practice &#8211; row hidden anchor&#8221; _builder_version=&#8221;4.4.5&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243; \/][\/et_pb_column_inner][\/et_pb_row_inner][et_pb_row_inner admin_label=&#8221;Row&#8221; _builder_version=&#8221;4.4.5&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;][et_pb_column_inner type=&#8221;4_4&#8243; saved_specialty_column_type=&#8221;2_3&#8243; custom_padding__hover=&#8221;|||&#8221; custom_padding=&#8221;|||&#8221; saved_specialty_column_type=&#8221;2_3&#8243;][et_pb_code admin_label=&#8221;Practice&#8221; _builder_version=&#8221;4.4.5&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;]<\/p>\n<h2>Practice<\/h2>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<ol><!-- [et_pb_line_break_holder] -->    <\/p>\n<li>Compare the code sample to the code sample in <a href=\"https:\/\/www.phidgets.com\/education\/learn\/getting-started-kit-tutorial\/button-and-led\/\" target=\"_blank\" rel=\"noopener noreferrer\">Lesson 3<\/a>. Note the differences in the code and the program\u2019s output.<\/li>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<li>Modify your code so the green button controls the red LED and the red button controls the green LED.<\/li>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<li>Modify your code to count the total number of button presses.<\/li>\n<p><!-- [et_pb_line_break_holder] --><\/p>\n<li>Challenge: Recreate the tug of war game from <a href=\"https:\/\/www.phidgets.com\/education\/learn\/getting-started-kit-tutorial\/tug-of-war\/\" target=\"_blank\" rel=\"noopener noreferrer\"> Simple Phidgets <\/a>. Each player is assigned a button (red or green). Players will race to see who can press their button ten times first. You should turn both LEDs on and print the winner to the user.<\/li>\n<p><!-- [et_pb_line_break_holder] --><\/ol>\n<p>[\/et_pb_code][et_pb_code admin_label=&#8221;Email for Solutions&#8221; _builder_version=&#8221;4.6.6&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243; saved_tabs=&#8221;all&#8221; global_module=&#8221;4139&#8243;]<pee><i>Solutions available for educators. <a href=\"mailto:education@phidgets.com\">Email us for access.<\/a><\/i><\/pee>[\/et_pb_code][\/et_pb_column_inner][\/et_pb_row_inner][et_pb_row_inner admin_label=&#8221;Row&#8221; _builder_version=&#8221;4.4.1&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243; module_id=&#8221;troubleshoot&#8221;][et_pb_column_inner type=&#8221;4_4&#8243; saved_specialty_column_type=&#8221;2_3&#8243; custom_padding__hover=&#8221;|||&#8221; custom_padding=&#8221;|||&#8221; saved_specialty_column_type=&#8221;2_3&#8243;][et_pb_toggle admin_label=&#8221;Troubleshoot&#8221; _builder_version=&#8221;4.4.3&#8243; title=&#8221;Troubleshoot&#8221; text_shadow_horizontal_length=&#8221;text_shadow_style,%91object Object%93&#8243; text_shadow_horizontal_length_tablet=&#8221;0px&#8221; text_shadow_vertical_length=&#8221;text_shadow_style,%91object Object%93&#8243; text_shadow_vertical_length_tablet=&#8221;0px&#8221; text_shadow_blur_strength=&#8221;text_shadow_style,%91object Object%93&#8243; text_shadow_blur_strength_tablet=&#8221;1px&#8221; title_text_shadow_horizontal_length=&#8221;title_text_shadow_style,%91object Object%93&#8243; title_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; title_text_shadow_vertical_length=&#8221;title_text_shadow_style,%91object Object%93&#8243; title_text_shadow_vertical_length_tablet=&#8221;0px&#8221; title_text_shadow_blur_strength=&#8221;title_text_shadow_style,%91object Object%93&#8243; title_text_shadow_blur_strength_tablet=&#8221;1px&#8221; closed_title_text_shadow_horizontal_length=&#8221;closed_title_text_shadow_style,%91object Object%93&#8243; closed_title_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; closed_title_text_shadow_vertical_length=&#8221;closed_title_text_shadow_style,%91object Object%93&#8243; closed_title_text_shadow_vertical_length_tablet=&#8221;0px&#8221; closed_title_text_shadow_blur_strength=&#8221;closed_title_text_shadow_style,%91object Object%93&#8243; closed_title_text_shadow_blur_strength_tablet=&#8221;1px&#8221; body_text_shadow_horizontal_length=&#8221;body_text_shadow_style,%91object Object%93&#8243; body_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; body_text_shadow_vertical_length=&#8221;body_text_shadow_style,%91object Object%93&#8243; body_text_shadow_vertical_length_tablet=&#8221;0px&#8221; body_text_shadow_blur_strength=&#8221;body_text_shadow_style,%91object Object%93&#8243; body_text_shadow_blur_strength_tablet=&#8221;1px&#8221; body_link_text_shadow_horizontal_length=&#8221;body_link_text_shadow_style,%91object Object%93&#8243; body_link_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; body_link_text_shadow_vertical_length=&#8221;body_link_text_shadow_style,%91object Object%93&#8243; body_link_text_shadow_vertical_length_tablet=&#8221;0px&#8221; body_link_text_shadow_blur_strength=&#8221;body_link_text_shadow_style,%91object Object%93&#8243; body_link_text_shadow_blur_strength_tablet=&#8221;1px&#8221; body_ul_text_shadow_horizontal_length=&#8221;body_ul_text_shadow_style,%91object Object%93&#8243; body_ul_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; body_ul_text_shadow_vertical_length=&#8221;body_ul_text_shadow_style,%91object Object%93&#8243; body_ul_text_shadow_vertical_length_tablet=&#8221;0px&#8221; body_ul_text_shadow_blur_strength=&#8221;body_ul_text_shadow_style,%91object Object%93&#8243; body_ul_text_shadow_blur_strength_tablet=&#8221;1px&#8221; body_ol_text_shadow_horizontal_length=&#8221;body_ol_text_shadow_style,%91object Object%93&#8243; body_ol_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; body_ol_text_shadow_vertical_length=&#8221;body_ol_text_shadow_style,%91object Object%93&#8243; body_ol_text_shadow_vertical_length_tablet=&#8221;0px&#8221; body_ol_text_shadow_blur_strength=&#8221;body_ol_text_shadow_style,%91object Object%93&#8243; body_ol_text_shadow_blur_strength_tablet=&#8221;1px&#8221; body_quote_text_shadow_horizontal_length=&#8221;body_quote_text_shadow_style,%91object Object%93&#8243; body_quote_text_shadow_horizontal_length_tablet=&#8221;0px&#8221; body_quote_text_shadow_vertical_length=&#8221;body_quote_text_shadow_style,%91object Object%93&#8243; body_quote_text_shadow_vertical_length_tablet=&#8221;0px&#8221; body_quote_text_shadow_blur_strength=&#8221;body_quote_text_shadow_style,%91object Object%93&#8243; body_quote_text_shadow_blur_strength_tablet=&#8221;1px&#8221; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243;]<\/p>\n<p><strong>I am getting a &#8220;Timed Out&#8221; exception.<\/strong><\/p>\n<ol>\n<li>Make sure the USB cable from your VINT Hub to your computer is attached properly.<\/li>\n<li>Make the Phidget cable (the black, red and white one) is connected to your VINT Hub and to your Humidity Phidget properly).<\/li>\n<li>Make sure no other program is running that uses Phidgets. If a Phidget is already in use in another program, it will be busy and won&#8217;t respond to this one.<\/li>\n<\/ol>\n<p><strong>Still having issues?<\/strong><\/p>\n<p>Visit the <a href=\"\/education\/learn\/advanced-troubleshooting\/\" target=\"_blank\" rel=\"noopener noreferrer\">Advanced Troubleshooting Page<\/a> or contact us (education@phidgets.com).<\/p>\n<p>[\/et_pb_toggle][\/et_pb_column_inner][\/et_pb_row_inner][et_pb_row_inner admin_label=&#8221;Row&#8221; _builder_version=&#8221;4.4.3&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; disabled=&#8221;on&#8221; disabled_on=&#8221;on|on|on&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;][et_pb_column_inner type=&#8221;4_4&#8243; saved_specialty_column_type=&#8221;2_3&#8243; custom_padding__hover=&#8221;|||&#8221; custom_padding=&#8221;|||&#8221; saved_specialty_column_type=&#8221;2_3&#8243;][et_pb_code admin_label=&#8221;ph-button-cta: Finish&#8221; _builder_version=&#8221;4.4.1&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;]<!-- Button CTA --><!-- [et_pb_line_break_holder] --><a class=\"ph-button-cta\" href=\"\/education\/learn\/getting-started-kit-tutorial#smart-phidgets-step\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"ph-button-cta__icon\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->  Finish<!-- [et_pb_line_break_holder] --><\/a>[\/et_pb_code][\/et_pb_column_inner][\/et_pb_row_inner][et_pb_row_inner admin_label=&#8221;Row&#8221; disabled_on=&#8221;off|off|off&#8221; disabled=&#8221;off&#8221; _builder_version=&#8221;4.4.3&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;][et_pb_column_inner type=&#8221;4_4&#8243; saved_specialty_column_type=&#8221;2_3&#8243; custom_padding__hover=&#8221;|||&#8221; custom_padding=&#8221;|||&#8221; saved_specialty_column_type=&#8221;2_3&#8243;][et_pb_code admin_label=&#8221;ph-button-progress-ctn&#8221; _builder_version=&#8221;4.4.5&#8243; box_shadow_horizontal_tablet=&#8221;0px&#8221; box_shadow_vertical_tablet=&#8221;0px&#8221; box_shadow_blur_tablet=&#8221;40px&#8221; box_shadow_spread_tablet=&#8221;0px&#8221; vertical_offset_tablet=&#8221;0&#8243; horizontal_offset_tablet=&#8221;0&#8243; z_index_tablet=&#8221;0&#8243;]<!-- Button Progress Container --><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"ph-button-progress-ctn\"><!-- [et_pb_line_break_holder] -->  <!-- Button Progress Next --><!-- [et_pb_line_break_holder] -->  <a class=\"ph-button-progress-previous-adv\" href=\"\/education\/learn\/getting-started-kit-tutorial\/dataevents_1\/\"><!-- [et_pb_line_break_holder] -->    Back to Button Events<!-- [et_pb_line_break_holder] -->  <\/a><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <!-- Button Progress Next --><!-- [et_pb_line_break_holder] -->  <a class=\"ph-button-progress-next-adv\" href=\"\/education\/learn\/getting-started-kit-tutorial\/dataevents_3\/\"><!-- [et_pb_line_break_holder] -->    Next: Smart Phidget Events<!-- [et_pb_line_break_holder] -->  <\/a><!-- [et_pb_line_break_holder] --><\/div>\n<p>[\/et_pb_code][\/et_pb_column_inner][\/et_pb_row_inner][\/et_pb_column][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>package gettingstarted;\/\/Add Phidgets Libraryimport com.phidget22.*;public class GettingStarted { \/\/Turn on\/off LEDs with Global Variables static boolean turnRedLEDOn = false; static boolean turnGreenLEDOn = false; \/\/Handle Exceptions public static void main(String[] args) throws Exception { \/\/Create DigitalInput redButton = new DigitalInput(); DigitalInput greenButton = new DigitalInput(); DigitalOutput redLED = new DigitalOutput(); DigitalOutput greenLED = new DigitalOutput(); [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":309,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"<!-- wp:paragraph -->\r\n<p>This is an example page. It's different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:<\/p>\r\n<!-- \/wp:paragraph --><!-- wp:quote -->\r\n<blockquote class=\"wp-block-quote\">\r\n<p>Hi there! I'm a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like pi\u00f1a coladas. (And gettin' caught in the rain.)<\/p>\r\n<\/blockquote>\r\n<!-- \/wp:quote --><!-- wp:paragraph -->\r\n<p>...or something like this:<\/p>\r\n<!-- \/wp:paragraph --><!-- wp:quote -->\r\n<blockquote class=\"wp-block-quote\">\r\n<p>The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.<\/p>\r\n<\/blockquote>\r\n<!-- \/wp:quote --><!-- wp:paragraph -->\r\n<p>As a new WordPress user, you should go to <a href=\"https:\/\/www.phidgets.com\/education\/wp-admin\/\">your dashboard<\/a> to delete this page and create new pages for your content. Have fun!<\/p>\r\n<!-- \/wp:paragraph -->","_et_gb_content_width":"","footnotes":""},"class_list":["post-2630","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.phidgets.com\/education\/wp-json\/wp\/v2\/pages\/2630","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.phidgets.com\/education\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.phidgets.com\/education\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.phidgets.com\/education\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.phidgets.com\/education\/wp-json\/wp\/v2\/comments?post=2630"}],"version-history":[{"count":36,"href":"https:\/\/www.phidgets.com\/education\/wp-json\/wp\/v2\/pages\/2630\/revisions"}],"predecessor-version":[{"id":8590,"href":"https:\/\/www.phidgets.com\/education\/wp-json\/wp\/v2\/pages\/2630\/revisions\/8590"}],"up":[{"embeddable":true,"href":"https:\/\/www.phidgets.com\/education\/wp-json\/wp\/v2\/pages\/309"}],"wp:attachment":[{"href":"https:\/\/www.phidgets.com\/education\/wp-json\/wp\/v2\/media?parent=2630"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}