ARDUINO MEGA Functions Sensors
From ROBOTC API Guide
(Created page with "<yambe:breadcrumb>ARDUINO_MEGA_Functions_and_Variables|Functions and Variables</yambe:breadcrumb> <br /> {| |- | ''For more examples and explanations, head over to [[VEX2_Sen...") |
|||
| (24 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
| − | <yambe:breadcrumb>ARDUINO_MEGA_Functions_and_Variables|Functions and Variables</yambe:breadcrumb> | + | {{DISPLAYTITLE:2560 (MEGA) Sensor Functions}} |
| − | + | <yambe:breadcrumb self="2560 (MEGA) Sensor Functions">ARDUINO_MEGA_Functions_and_Variables|Functions and Variables</yambe:breadcrumb> | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
<br /> | <br /> | ||
| Line 16: | Line 7: | ||
== Information == | == Information == | ||
| − | {| | + | The Arduino MEGA has 16 analog sensor ports and 53 digital sensor ports. |
| + | |||
| + | === Analog === | ||
| + | {|style="font-family:Verdana, Geneva, sans-serif; color:black; background-color:#FFFFFF; text-align:center; font-size:100%; border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #000;" cellpadding="5%" | ||
| + | ! style="background-color:#E3E3E3; text-align:left; border-style: solid; border-width: 0px 0px 1px 0px"|Sensor Type: | ||
| + | ! style="background-color:#E3E3E3; text-align:left; border-style: solid; border-width: 0px 0px 1px 0px"|Comments: | ||
|- | |- | ||
| − | | | + | | style="text-align:left; border-style: solid; border-width: 1px 0px 1px 0px"|'''No Sensor''' |
| − | + | | style="text-align:left; border-style: solid; border-width: 1px 0px 1px 0px"|No Sensor Attached. Pin is disabled. | |
| − | + | |- | |
| − | + | |style="text-align:left; border-style: solid; border-width: 0px 0px 1px 0px"|'''Analog''' | |
| − | + | |style="text-align:left; border-style: solid; border-width: 0px 0px 1px 0px"|Standard Analog Input (0-1023), no modification to raw value. | |
| − | + | |- | |
| − | + | |style="text-align:left; border-style: solid; border-width: 0px 0px 1px 0px"|'''Potentiometer''' | |
| − | + | |style="text-align:left; border-style: solid; border-width: 0px 0px 1px 0px"|Standard Analog Input (0-1023), no modification to raw value. | |
| − | + | |- | |
| + | |style="text-align:left; border-style: solid; border-width: 0px 0px 1px 0px"|'''Light Sensor''' | ||
| + | |style="text-align:left; border-style: solid; border-width: 0px 0px 1px 0px"|Standard Analog Input (0-1023), no modification to raw value. | ||
| + | |- | ||
| + | |style="text-align:left; border-style: solid; border-width: 0px 0px 1px 0px"|'''Line Follower''' | ||
| + | |style="text-align:left; border-style: solid; border-width: 0px 0px 1px 0px"|Standard Analog Input (0-1023), no modification to raw value. | ||
| + | |- | ||
| + | |style="text-align:left; border-style: solid; border-width: 0px 0px 1px 0px"|'''Gyro Sensor''' | ||
| + | |style="text-align:left; border-style: solid; border-width: 0px 0px 1px 0px"|Support for VEX Gyro Sensor. See documentation here. | ||
|- | |- | ||
| + | |style="text-align:left; border-style: solid; border-width: 0px 0px 1px 0px"|'''Accelerometer''' | ||
| + | |style="text-align:left; border-style: solid; border-width: 0px 0px 1px 0px"|Support for VEX Accelerometer. See documentation here. | ||
| + | |- | ||
| + | |style="text-align:left; border-style: solid; border-width: 0px 0px 1px 0px"|'''Digital In''' | ||
| + | |style="text-align:left; border-style: solid; border-width: 0px 0px 1px 0px"|Use an analog pin as a digital input (not currently supported) | ||
| + | |- | ||
| + | |style="text-align:left; border-style: solid; border-width: 0px 0px 0px 0px"|'''Digital Out''' | ||
| + | |style="text-align:left; border-style: solid; border-width: 0px 0px 0px 0px"|Use an analog pin as a digital output (not currently supported) | ||
|} | |} | ||
<br /> | <br /> | ||
| − | == | + | === Digital === |
| − | {| style="color:black; | + | {|style="font-family:Verdana, Geneva, sans-serif; color:black; background-color:#FFFFFF; text-align:center; font-size:100%; border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #000;" cellpadding="5%" |
| + | !style="background-color: #E3E3E3;text-align:left; border-style: solid; border-width: 0px 0px 1px 0px"|Sensor Type: | ||
| + | !style="background-color: #E3E3E3;text-align:left; border-style: solid; border-width: 0px 0px 1px 0px"|Comments: | ||
|- | |- | ||
| − | | | + | |style="text-align:left; border-style: solid; border-width: 1px 0px 1px 0px"|'''No Sensor''' |
| + | |style="text-align:left; border-style: solid; border-width: 1px 0px 1px 0px"|No Sensor Attached. Pin is disabled. | ||
|- | |- | ||
| − | | style=" | + | |style="text-align:left; border-style: solid; border-width: 0px 0px 1px 0px"|'''Touch''' |
| − | + | |style="text-align:left; border-style: solid; border-width: 0px 0px 1px 0px"|Digital Input for touch sensors. (reversed from "Digital In" command) | |
| − | + | |- | |
| − | + | |style="text-align:left; border-style: solid; border-width: 0px 0px 1px 0px"|'''Quadrature Encoder (Two Pins)''' | |
| − | + | |style="text-align:left; border-style: solid; border-width: 0px 0px 1px 0px"|Support for VEX Quadrature Encoder. See documentation here. | |
| − | + | |- | |
| − | + | |style="text-align:left; border-style: solid; border-width: 0px 0px 1px 0px"|'''LED to Vcc''' | |
| − | + | |style="text-align:left; border-style: solid; border-width: 0px 0px 1px 0px"|Pin configured as digital output with reversed logic (for LEDs) (0 = LED on, 1 = LED off) | |
| − | + | |- | |
| − | + | |style="text-align:left; border-style: solid; border-width: 0px 0px 1px 0px"|'''Digital In''' | |
| − | + | |style="text-align:left; border-style: solid; border-width: 0px 0px 1px 0px"|Pin configured as digital input with internal "Pull-Up" resistor enabled. | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
|- | |- | ||
| + | |style="text-align:left; border-style: solid; border-width: 0px 0px 1px 0px"|'''Digital Out''' | ||
| + | |style="text-align:left; border-style: solid; border-width: 0px 0px 1px 0px"|Pin configured as digital output. | ||
| + | |- | ||
| + | |style="text-align:left; border-style: solid; border-width: 0px 0px 1px 0px"|'''Digital High Inpedance''' | ||
| + | |style="text-align:left; border-style: solid; border-width: 0px 0px 1px 0px"|Pin configured as digital input without the "Pull-Up" resistor enabled. | ||
| + | |- | ||
| + | |style="text-align:left; border-style: solid; border-width: 0px 0px 1px 0px"|'''Sonar [Ping]''' | ||
| + | |style="text-align:left; border-style: solid; border-width: 0px 0px 1px 0px"|Support for Parallax Ping Sonar Sensor (returns distance in cm, mm, inches, raw) | ||
| + | |- | ||
| + | |style="text-align:left; border-style: solid; border-width: 0px 0px 0px 0px"|'''Sonar [SRP-04] (Two Pins)''' | ||
| + | |style="text-align:left; border-style: solid; border-width: 0px 0px 0px 0px"|Support for VEX Robotics Sonar Sensor (returns distance in cm, mm, inches, raw) | ||
|} | |} | ||
| − | <br /> | + | <br /><br /> |
| − | == | + | == SensorType == |
{| style="color:black;" width="100%" cellpadding="5%" cellspacing="0" border="0" | {| style="color:black;" width="100%" cellpadding="5%" cellspacing="0" border="0" | ||
|- | |- | ||
| − | | class=" | + | | class="variableType"| <span class="bigKeywordB">TSensorTypes </span><span class="bigKeywordB">SensorType</span><span class="bigCodePunc">[</span><span class="bigCodeBasic">tSensors sensor</span><span class="bigCodePunc">]</span> |
|- | |- | ||
| − | | style="font-family:Verdana, Geneva, sans-serif; color:black; background-color:#FFFFFF; text-align:left; font-size:100%;"|([[Data_Types# | + | | style="font-family:Verdana, Geneva, sans-serif; color:black; background-color:#FFFFFF; text-align:left; font-size:100%;"|([[Data_Types#dataType_TSensorTypes|TSensorTypes]]) The SensorType array is used to manually specify what type of sensor is connected to a specific pin. Most users should not have to use this functionality and should use the Motors and Sensor Setup instead. |
| Line 89: | Line 100: | ||
|- | |- | ||
|<syntaxhighlight lang="robotc"> | |<syntaxhighlight lang="robotc"> | ||
| − | + | SensorType[dgtl3] = sensorTouch; // set digital pin #3 to be of type sensorTouch | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|- | |- | ||
| Line 101: | Line 108: | ||
<br /> | <br /> | ||
| − | == | + | == SensorValue == |
{| style="color:black;" width="100%" cellpadding="5%" cellspacing="0" border="0" | {| style="color:black;" width="100%" cellpadding="5%" cellspacing="0" border="0" | ||
|- | |- | ||
| − | | class=" | + | | class="variableType"| <span class="bigKeywordBI">word </span><span class="bigKeywordB">SensorValue</span><span class="bigCodePunc">[</span><span class="bigCodeBasic">tSensors sensor</span><span class="bigCodePunc">]</span> |
|- | |- | ||
| − | | style="font-family:Verdana, Geneva, sans-serif; color:black; background-color:#FFFFFF; text-align:left; font-size:100%;"|([[Data_Types# | + | | style="font-family:Verdana, Geneva, sans-serif; color:black; background-color:#FFFFFF; text-align:left; font-size:100%;"|([[Data_Types#dataType_word|word]]) This array value will return and modify the value of the sensor. When a pin is set as an "input" the SensorValue array command will return the value from the sensor attached to that pin. When a pin is set as an "output", the SensorValue array can be written to set the output value of the pin (typically Digital Outs will be set to 0 for Low and 1 for High). |
| Line 124: | Line 131: | ||
|- | |- | ||
|<syntaxhighlight lang="robotc"> | |<syntaxhighlight lang="robotc"> | ||
| − | + | while(SensorValue[dgtl6] == 0) //Loop while digital pin #6 is low (set to zero) | |
| − | + | { | |
| + | motor[motor_2] = 63; // Motor pin #2 is run at half (63) power forward | ||
| + | motor[motor_3] = 63; // Motor pin #3 is run at half (63) power forward | ||
| + | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|- | |- | ||
|} | |} | ||
| − | |||
| − | |||
| − | |||
| − | + | {| | |
| − | + | ! Writing to digitalOut | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | {| | + | |
| − | ! | + | |
| − | + | ||
| − | + | ||
|- | |- | ||
| − | | | + | |<syntaxhighlight lang="robotc"> |
| − | + | #pragma config(Sensor, dgtl24, dOut, sensorDigitalOut) | |
| − | + | //*!!Code automatically generated by 'ROBOTC' configuration wizard !!*// | |
| + | task main() | ||
| + | { | ||
| + | while(true) // infinite loop to keep the program running | ||
| + | { | ||
| + | SensorValue[dOut] = 1; // set the value of 'dOut' to 1 | ||
| + | wait1Msec(1000); // wait 1 second | ||
| + | SensorValue[dOut] = 0; // set the value of 'dOut' to 0 | ||
| + | wait1Msec(1000); // wait 1 second | ||
| + | } | ||
| + | } | ||
| + | </syntaxhighlight> | ||
|- | |- | ||
|} | |} | ||
| − | + | {| | |
| − | + | ! Reading from digitalIn | |
|- | |- | ||
|<syntaxhighlight lang="robotc"> | |<syntaxhighlight lang="robotc"> | ||
| − | + | #pragma config(Sensor, dgtl25, dIn, sensorDigitalIn) | |
| + | //*!!Code automatically generated by 'ROBOTC' configuration wizard !!*// | ||
| + | task main() | ||
{ | { | ||
| − | + | int incomingSensor; // create int variable, 'incomingSensor' | |
| − | + | while(true) // infinite loop to keep the program running | |
| + | { | ||
| + | incomingSensor = SensorValue[dIn]; // set the value of 'incomingSensor' to the value of 'dIn' | ||
| + | } | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Latest revision as of 13:44, 11 May 2012
ARDUINO → Functions and Variables → 2560 (MEGA) Sensor Functions
|
| |||||||
Information
The Arduino MEGA has 16 analog sensor ports and 53 digital sensor ports.
Analog
| Sensor Type: | Comments: |
|---|---|
| No Sensor | No Sensor Attached. Pin is disabled. |
| Analog | Standard Analog Input (0-1023), no modification to raw value. |
| Potentiometer | Standard Analog Input (0-1023), no modification to raw value. |
| Light Sensor | Standard Analog Input (0-1023), no modification to raw value. |
| Line Follower | Standard Analog Input (0-1023), no modification to raw value. |
| Gyro Sensor | Support for VEX Gyro Sensor. See documentation here. |
| Accelerometer | Support for VEX Accelerometer. See documentation here. |
| Digital In | Use an analog pin as a digital input (not currently supported) |
| Digital Out | Use an analog pin as a digital output (not currently supported) |
Digital
| Sensor Type: | Comments: |
|---|---|
| No Sensor | No Sensor Attached. Pin is disabled. |
| Touch | Digital Input for touch sensors. (reversed from "Digital In" command) |
| Quadrature Encoder (Two Pins) | Support for VEX Quadrature Encoder. See documentation here. |
| LED to Vcc | Pin configured as digital output with reversed logic (for LEDs) (0 = LED on, 1 = LED off) |
| Digital In | Pin configured as digital input with internal "Pull-Up" resistor enabled. |
| Digital Out | Pin configured as digital output. |
| Digital High Inpedance | Pin configured as digital input without the "Pull-Up" resistor enabled. |
| Sonar [Ping] | Support for Parallax Ping Sonar Sensor (returns distance in cm, mm, inches, raw) |
| Sonar [SRP-04] (Two Pins) | Support for VEX Robotics Sonar Sensor (returns distance in cm, mm, inches, raw) |
SensorType
| TSensorTypes SensorType[tSensors sensor] | |||||||
| (TSensorTypes) The SensorType array is used to manually specify what type of sensor is connected to a specific pin. Most users should not have to use this functionality and should use the Motors and Sensor Setup instead.
|
SensorValue
| word SensorValue[tSensors sensor] | |||||||||||
| (word) This array value will return and modify the value of the sensor. When a pin is set as an "input" the SensorValue array command will return the value from the sensor attached to that pin. When a pin is set as an "output", the SensorValue array can be written to set the output value of the pin (typically Digital Outs will be set to 0 for Low and 1 for High).
|