Difference between revisions of "ARDUINO MEGA Functions Sensors"

From ROBOTC API Guide
Jump to: navigation, search
(SensorType)
 
(15 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 />
 +
 
 
{{tl|1|1}}
 
{{tl|1|1}}
 
<br />
 
<br />
Line 6: Line 9:
 
The Arduino MEGA has 16 analog sensor ports and 53 digital sensor ports.
 
The Arduino MEGA has 16 analog sensor ports and 53 digital sensor ports.
  
Analog:
+
=== Analog ===
No Sensor - No Sensor Attached. Pin is disabled.
+
{|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:
Potentiometer - Standard Analog Input (0-1023), no modification to raw value.
+
! style="background-color:#E3E3E3; text-align:left; border-style: solid; border-width: 0px 0px 1px 0px"|Comments:
 
+
|-
Light Sensor - Standard Analog Input (0-1023), no modification to raw value.
+
| 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.
Line Follower - Standard Analog Input (0-1023), no modification to raw value.
+
|-
 
+
|style="text-align:left; border-style: solid; border-width: 0px 0px 1px 0px"|'''Analog'''
Gyro Sensor - Support for VEX Gyro Sensor. See documentation here.
+
|style="text-align:left; border-style: solid; border-width: 0px 0px 1px 0px"|Standard Analog Input (0-1023), no modification to raw value.
 
+
|-
Accelerometer - Support for VEX Accelerometer. See documentation here.
+
|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.
Digital In - Use an analog pin as a digital input (not currently supported)
+
|-
 
+
|style="text-align:left; border-style: solid; border-width: 0px 0px 1px 0px"|'''Light Sensor'''
Digital Out - Use an analog pin as a digital output (not currently supported)
+
|style="text-align:left; border-style: solid; border-width: 0px 0px 1px 0px"|Standard Analog Input (0-1023), no modification to raw value.
 
+
|-
Digital:
+
|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.
No Sensor - No Sensor Attached. Pin is disabled.
+
|-
 
+
|style="text-align:left; border-style: solid; border-width: 0px 0px 1px 0px"|'''Gyro Sensor'''
Touch - Digital Input for touch sensors. (reversed from "Digital In" command)
+
|style="text-align:left; border-style: solid; border-width: 0px 0px 1px 0px"|Support for VEX Gyro Sensor. See documentation here.
 
+
|-
Quadrature Encoder (Two Pins) - Support for VEX Quadrature Encoder. 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.
LED to Vcc - 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'''
Digital In - Pin configured as digital input with internal "Pull-Up" resistor enabled.
+
|style="text-align:left; border-style: solid; border-width: 0px 0px 1px 0px"|Use an analog pin as a digital input (not currently supported)
 
+
|-
Digital Out - Pin configured as digital output.
+
|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)
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)
+
 
<br />
 
<br />
 +
 +
=== Digital ===
 +
{|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"|'''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 />
  
 
== SensorType ==
 
== SensorType ==
 
{| style="color:black;" width="100%" cellpadding="5%" cellspacing="0" border="0"
 
{| style="color:black;" width="100%" cellpadding="5%" cellspacing="0" border="0"
 
|-
 
|-
| class="functionType"| <span class="bigKeywordB">TSensorTypes </span><span class="bigKeywordB">SensorType</span><span class="bigCodePunc">[</span><span class="bigCodeBasic">tSensors sensor</span><span class="bigCodePunc">]</span>
+
| 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#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.
 
| 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 78: Line 111:
 
{| style="color:black;" width="100%" cellpadding="5%" cellspacing="0" border="0"
 
{| style="color:black;" width="100%" cellpadding="5%" cellspacing="0" border="0"
 
|-
 
|-
| class="functionType"| <span class="bigKeywordBI">word </span><span class="bigKeywordB">SensorValue</span><span class="bigCodePunc">[</span><span class="bigCodeBasic">tSensors sensor</span><span class="bigCodePunc">]</span>
+
| 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#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).
 
| 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 102: Line 135:
 
   motor[motor_2] = 63;  // Motor pin #2 is run at half (63) power forward
 
   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
 
   motor[motor_3]  = 63;  // Motor pin #3 is run at half (63) power forward
 +
}
 +
</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">
 +
#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 20:44, 11 May 2012

ARDUINOFunctions and Variables → 2560 (MEGA) Sensor Functions


Color Key
Function:
Variable:


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.


Parameter Explanation Data Type
sensor A sensor port or name tSensors


SensorType[dgtl3] = sensorTouch;  // set digital pin #3 to be of type sensorTouch


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).


Parameter Explanation Data Type
sensor A sensor port or name tSensors


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
}
Writing to digitalOut
#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
  }
}
Reading from digitalIn
#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'
  }
}