Making a program start using a switch




Connecting the Switch

To connect the switch to the Arduino, you will need the switch, two jumper wires, and a 10kΩ (brown-black-orange) resistor.

Once you have all the required parts, you will need to wire the switch to the Arduino using the breadboard.

NOTE: The virtual board may be slightly different from the physical one. This is because of some limitations of the program used to create the virtual layout. Both the physical and virtual layout will work the same way.

Making a program start using a switch




Configuring ROBOTC

Now that we have everything connected, we need to tell ROBOTC how to configure the pins before we can program. We need to tell ROBOTC that we are using the Parallax BOE Shield, and that we have the drive servos connected to pins 10 and 11. We also need to tell ROBOTC that pin 2 is a digital input (the start switch) and name it “startSwitch”.

  • Parallax Boe Shield
  • Continuous Rotation Servo named “leftServo” on pin 10
  • reversed Continuous Rotation Servo named “rightServo” on pin 11
  • Digital High Impedance named “startSwitch” on pin 2

Once that is done you should have the following at the top of your source code file.

#pragma config(CircuitBoardType, typeCktBoardUNO)
#pragma config(PluginCircuitBoard, typeShieldParallaxBoeBot)
#pragma config(UART_Usage, UART0, uartSystemCommPort, baudRate200000, IOPins, dgtl1, dgtl0)
#pragma config(Sensor, dgtl2,  startSwitch, sensorDigitalHighImpedance)
#pragma config(Motor, servo_10, LeftServo, tmotorServoContinuousRotation, openLoop, IOPins, dgtl10, None)
#pragma config(Motor, servo_11, RightServo, tmotorServoContinuousRotation, openLoop, reversed, IOPins, dgtl11, None)
//*!!Code automatically generated by 'ROBOTC' configuration wizard               !!*//

Making a program start using a switch schematic

Programming

For this project we just want to demonstrate how the switch can be used to start a program. To keep it simple, we will just have the robot drive forwards, backwards, and stop. Since we already have code to drive forwards and backwards, we will just copy that code into the current file and modify it.

task main()
{
while(true) //repeat indefinitely
{
// code to drive forward for 2 seconds
motor[leftServo] = 20;   //Set the left servo to go forward at power level 20
motor[rightServo] = 20;  //Set the right servo to go forward at power level 20
wait1Msec(2000);         //pause code execution for 2000ms (2 seconds)
// code to stop the robot for 1 second
motor[leftServo] = 0;    //Set the left servo stop
motor[rightServo] = 0;   //Set the right servo stop
wait1Msec(1000);         //pause code execution for 1000ms (1 second)
// code to drive backwards for 2 seconds
motor[leftServo] = -20;  //Set the left servo to go backwards at power level -20 (absolute power of 20)
motor[rightServo] = -20; //Set the right servo to go backwards at power level -20 (absolute power of 20)
wait1Msec(2000);         //pause code execution for 2000ms (2 seconds)
// code to stop the robot for 1 second
motor[leftServo] = 0;    //Set the left servo stop
motor[rightServo] = 0;   //Set the right servo stop
wait1Msec(1000);         //pause code execution for 1000ms (1 second)
}
}

To read the status of the switch we use the command

 

For more detail: Making a program start using a switch




Clip to Evernote

Leave a Comment

(Spamcheck Enabled)

Read previous post:
arduino Programmer Combination Shield
ArduinoISP Bootloader/Programmer Combination Shield

I started recently to get interested in building Arduino based robots. Since it is a traumatizing process to take any...

Close
Scroll to top