mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-20 00:51:42 +00:00
[examples] Improve Pneumatics example coverage in Solenoid and RapidReactCmdBot examples (#4998)
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
// Copyright (c) FIRST and other WPILib contributors.
|
||||
// Open Source Software; you can modify and/or share it under the terms of
|
||||
// the WPILib BSD license file in the root directory of this project.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <frc/AnalogPotentiometer.h>
|
||||
#include <frc/Compressor.h>
|
||||
#include <frc/DoubleSolenoid.h>
|
||||
#include <frc/Joystick.h>
|
||||
#include <frc/PneumaticsControlModule.h>
|
||||
#include <frc/Solenoid.h>
|
||||
#include <frc/TimedRobot.h>
|
||||
|
||||
/**
|
||||
* This is a sample program showing the use of the solenoid classes during
|
||||
* operator control.
|
||||
*
|
||||
* Three buttons from a joystick will be used to control two solenoids: One
|
||||
* button to control the position of a single solenoid and the other two buttons
|
||||
* to control a double solenoid.
|
||||
*
|
||||
* Single solenoids can either be on or off, such that the air diverted through
|
||||
* them goes through either one channel or the other.
|
||||
*
|
||||
* Double solenoids have three states: Off, Forward, and Reverse. Forward and
|
||||
* Reverse divert the air through the two channels and correspond to the on and
|
||||
* off of a single solenoid, but a double solenoid can also be "off", where both
|
||||
* channels are diverted to exhaust such that there is no pressure in either
|
||||
* channel.
|
||||
*
|
||||
* Additionally, double solenoids take up two channels on your PCM whereas
|
||||
* single solenoids only take a single channel.
|
||||
*/
|
||||
|
||||
class Robot : public frc::TimedRobot {
|
||||
public:
|
||||
void RobotInit() override;
|
||||
void TeleopPeriodic() override;
|
||||
|
||||
private:
|
||||
frc::Joystick m_stick{0};
|
||||
|
||||
// Solenoid corresponds to a single solenoid.
|
||||
// In this case, it's connected to channel 0 of a PH with the default CAN
|
||||
// ID.
|
||||
frc::Solenoid m_solenoid{frc::PneumaticsModuleType::REVPH, 0};
|
||||
|
||||
// DoubleSolenoid corresponds to a double solenoid.
|
||||
// In this case, it's connected to channels 1 and 2 of a PH with the default
|
||||
// CAN ID.
|
||||
frc::DoubleSolenoid m_doubleSolenoid{frc::PneumaticsModuleType::REVPH, 1, 2};
|
||||
|
||||
// Compressor connected to a PH with a default CAN ID
|
||||
frc::Compressor m_compressor{frc::PneumaticsModuleType::REVPH};
|
||||
|
||||
static constexpr int kSolenoidButton = 1;
|
||||
static constexpr int kDoubleSolenoidForward = 2;
|
||||
static constexpr int kDoubleSolenoidReverse = 3;
|
||||
static constexpr int kCompressorButton = 4;
|
||||
};
|
||||
Reference in New Issue
Block a user