TheMemberFormerlyKnownAsAWOL:
You'd normally do the reverse in the servo write/writeMicroseconds.
// same as 31 mar 2020
// but 1 april changed lcd to be non-i2c
//***************************************************************************
// ************* check the screen, pin and button pin numbers ***************
//***************************************************************************
// *** this version V2 uses microseconds not degrees ***
// but still uses degrees for display purposes
// V2.1 is non-i2c lcd
// not clear from those ^^^^ instructions if the servo has to go in sequence
// *** code below allows movement in any order
// *** code below is tested with 2x "normal" 0-180 servos ***
// *** change these values for the real 0-270 servos ***
// V2: these pos values are for the LCD display
const byte pos1 = 0;
const byte pos2 = 90; //will be 90
const byte pos3 = 180; //will be 180
const byte pos4 = 270; //will be 270
byte pos;
// V2: these microPos values are for the write.microseconds <<<< adjust these
const int micropos1 = 600; // <<<< adjust these, I just stuck some values in to test
const int micropos2 = 1200;
const int micropos3 = 1800;
const int micropos4 = 2300;
int micropos;
char posMessage[] = " DOWN"; // later will hold the actual word to display
// **** V2.1 i2c lcd stuff commented out
/*
//bperrybap library for lcd
// install from ide: Sketch > Include Library > Manage Libraries, search hd44780
#include <Wire.h>
#include <hd44780.h> // main hd44780 header
#include <hd44780ioClass/hd44780_I2Cexp.h> // i2c expander i/o class header
hd44780_I2Cexp lcd; // declare lcd object: auto locate & auto config expander chip
// LCD geometry
const int LCD_COLS = 16;
const int LCD_ROWS = 2;
*/
// *** and replaced with
#include <LiquidCrystal.h>
//const int rs = 6, en = 7, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
//LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); //dfr0009 shield uses different pins
#include <Servo.h>
Servo servoLeft;
Servo servoRight;
// ******** check pins in next lines
//dfr0009 shield leaves different pins vacant
const byte servoLeftPin = 2; //was 8
const byte servoRightPin = 3; //was 9
const byte button1 = 19; //aka A5, was 10
const byte button2 = 11;
const byte button3 = 12;
const byte button4 = 13;
void setup()
{
Serial.begin(9600);
servoLeft.attach(servoLeftPin, 544, 2400); // <<<<<<<< set these min and max to suit a 270 servo
servoRight.attach(servoRightPin, 2400, 544); // <<<<<<<< set these min and max to suit a 270 servo
pinMode(13, OUTPUT);
pinMode(button1, INPUT_PULLUP);
pinMode(button2, INPUT_PULLUP);
pinMode(button3, INPUT_PULLUP);
pinMode(button4, INPUT_PULLUP);
//lcd.begin(LCD_COLS, LCD_ROWS); //out
lcd.begin(16, 2); //in
lcd.setCursor(0, 0);
lcd.print(" 673090..V2.1 ");
delay(1000);
lcd.setCursor(0, 1);
lcd.print("Pos: ");
}//setup
void loop()
{
if (!digitalRead(button1))
{
pos = pos1; // for the display
strcpy(posMessage, " DOWN"); // for the display, I may have these wrong for the degrees
<<<<
micropos = micropos1; //for the servo
}
if (!digitalRead(button2))
{
pos = pos2;
strcpy(posMessage, " RIGHT"); // for the display, I may have these wrong for the degrees 
micropos = micropos2;
}
if (!digitalRead(button3))
{
pos = pos3;
strcpy(posMessage, " UP"); // for the display, I may have these wrong for the degrees 
micropos = micropos3;
}
if (!digitalRead(button4))
{
pos = pos4;
strcpy(posMessage, " LEFT"); // for the display, I may have these wrong for the degrees 
micropos = micropos4;
}
//servoLeft.write(pos);
//servoRight.write(pos); //these replaced by next 2:
servoLeft.writeMicroseconds(micropos);
servoRight.writeMicroseconds(micropos);
lcd.setCursor(5, 1);
if (pos < 10) lcd.print(" ");
if (pos < 100) lcd.print(" ");
lcd.print(pos);
lcd.print((char)223); //degree symbol
lcd.print(posMessage);
}//loop
here is the sketch