Arduino Button Protocol
OzButtonController uses a protocol to check the status of any button wired to the microcontroller.
How to build a test circuit with a button and an Arduino Mega?
Arduino codes are included.
I. "Welcome" event from microcontroller
Example
c=welcome&type=OzButtonController&id=A47vvH&pos=2&t=3
Parameters
Parameter | Type | Range | Functionality |
c | String | 'welcome' | Identifies the welcome message. |
type | String | 'OzButtonController' | Determines the type of the device. |
id | String | 6 characters (numbers, uppercase and lowercase characters) | The ID of the device which is chosen by the microcontroller. |
pos | Byte | 0-255 | Determines the position of the device on the list of the ID manager of the microcontroller. Please make sure there are no other devices in the same position. |
t | Byte | 0-255 | Counts the number of events and responses sent combined. Counts from 0 to 255 then from 0 again. |
II. Commands to microcontroller
'EnablePullup' command
Adds resistor to button pin by setting it HIGH in INPUT mode. It is useful if there is a problem with the button. Malfunctions can happen if the button is not grounded, which can be prevented by using this command.
c=enablepullup&state=1&id=A47vvH&t=0
Parameters
Parameter | Type | Range | Functionality |
c | String | 'enablepullup' | Identifies the command. |
state | Bool | 0,1 | With 1 you can add an integrated resistor, 0 disconnects the integrated resistor. If the button is perfectly wired, it should work in both states. |
id | String | 6 characters (numbers, uppercase and lowercase characters) | Identifies the device. The ID is never changed during communication. |
t | Byte | 0-255 | Counts the number of commands. Counts from 0 to 255 then from 0 again. |
Response
c=enablepullup_resp&state=1&id=A47vvH&t=4
Parameters
Parameter | Type | Range | Functionality |
c | String | 'enablepullup_resp' | Identifies the event. |
state | Bool | 0,1 | If 1 the resistor is connected, 0 means the integrated resistor is disconnected. If the button is in perfect condition it should work in both states. |
id | String | 6 characters (numbers, uppercase and lowercase characters) | The ID of the device which is chosen by the microcontroller. |
t | Byte | 0-255 | Counts the number of events and responses sent combined. Counts from 0 to 255 then from 0 again. |
'GetState' command
This command returns the actual state of the connected button.
c=getstate&id=A47vvH&t=1
Parameters
Parameter | Type | Range | Functionality |
c | String | 'getstate' | Identifies the command. |
id | String | 6 characters (numbers, uppercase and lowercase characters) | Identifies the device. The ID is never changed during communication. |
t | Byte | 0-255 | Counts the number of commands sent. Counts from 0 to 255 then from 0 again. |
Response
c=getstate_resp&state=1&id=A47vvH&t=5
Parameters
Parameter | Type | Range | Functionality |
c | String | 'getstate_resp' | Identifies the response. |
state | Bool | 0,1 | It is the actual state of the button. 0 means LOW STATE, 1 means HIGH STATE. |
id | String | 6 characters (numbers, uppercase and lowercase characters) | Identifies the device. The ID is never changed during communication. |
t | Byte | 0-255 | Counts the number of events and responses sent combined. Counts from 0 to 255 then from 0 again. |
'SetMode' command
This command sets the mode of the 'ButtonStateChange' event.
c=setmode&mode=3&id=A47vvH&t=2
Parameters
Parameter | Type | Range | Functionality |
c | String | 'setmode' | Identifies the command. |
mode | Byte | 1: change 2: falling 3: rising |
Sets which cases the 'ButtonStateChange' event should be sent. |
id | String | 6 characters (numbers, uppercase and lowercase characters) | Identifies the device. The ID is never changed during communication. |
t | Byte | 0-255 | Counts the number of commands sent. Counts from 0 to 255 then from 0 again. |
Response
The mode of the 'ButtonStateChange' event has been set.
c=setmode_resp&state=3&id=A47vvH&t=6
Parameters
Parameter | Type | Range | Functionality |
c | String | 'setmode_resp' | Identifies the response. |
mode | Byte | 1: change 2: falling 3: rising |
Responds the mode of the 'ButtonStateChange' event. |
id | String | 6 characters (numbers, uppercase and lowercase characters) | Identifies the device. The ID is never changed during communication. |
t | Byte | 0-255 | Counts the number of events and responses sent combined. Counts from 0 to 255 then from 0 again. |
'GetMode' command
Requests how the 'ButtonStateChange' event works.
c=getmode&id=A47vvH&t=3
Parameters
Parameter | Type | Range | Functionality |
c | String | 'getmode' | Identifies the command. |
id | String | 6 characters (numbers, uppercase and lowercase characters) | Identifies the device. The ID is never changed during communication. |
t | Byte | 0-255 | Counts the number of commands sent. Counts from 0 to 255 then from 0 again. |
Response
The current mode of the 'ButtonStateChange' event.
c=getmode_resp&state=3&id=A47vvH&t=7
Parameters
Parameter | Type | Range | Functionality |
c | String | 'getmode_resp' | Identifies the response. |
mode | Byte | 1: change 2: falling 3: rising |
Responds the mode of the 'ButtonStateChange' event. |
id | String | 6 characters (numbers, uppercase and lowercase characters) | Identifies the device. The ID is never changed during communication. |
t | Byte | 0-255 | Counts the number of events and responses sent combined. Counts from 0 to 255 then from 0 again. |
III. Event from microcontroller
'ButtonStateChange' event
This event is sent from the microcontroller if the button is pressed or released. It depends on the mode you have previously set.
Example
//Button state changed to false c=buttonstatechange&state=0&id=A47vvH&t=1 //Button state changed to true c=buttonstatechange&state=1&id=A47vvH&t=2
Parameters
Parameter | Type | Range | Functionality |
c | String | 'buttonstatechange' | Identifies the event. |
state | Bool | 0,1 | It is the actual state of the button. 0 means LOW STATE, 1 means HIGH STATE. |
id | String | 6 characters (numbers, uppercase and lowercase characters) | Identifies the device. The ID is never changed during communication. |
t | Byte | 0-255 | Counts the number of events and responses sent combined. Counts from 0 to 255 then from 0 again. |
More information
- RF 433 MHz Transceiver serial protocol
- Analog Joystick serial protocol
- Analog Sensor serial protocol
- Button serial protocol
- Buzzer serial protocol
- DC Motor serial protocol
- DHT Sensor serial protocol
- EEPROM serial protocol
- Keyboard serial protocol
- Gyroscope Sensor serial protocol
- ID Manager serial protocol
- IR Transceiver serial protocol
- LCD Display serial protocol
- NFC Reader serial protocol
- Optical Gate serial protocol
- Register
- RF24 Transceiver serial protocol
- RGB Led serial protocol
- RGB Sensor serial protocol
- Rotary Encoder serial protocol
- Servo Motor serial protocol
- Step Counter serial protocol
- Stepper Motor serial protocol
- Switch serial protocol
- Temperature Sensor serial protocol
- Timer serial protocol
- Ultrasonic Sensor serial protocol
- Welcome messages of the Ozeki 3D Printer