Cockpit

* User Profile

Welcome, Guest. Please login or register.

Login with username, password and session length

Who's Online

  • *Users: 1
  • *Guests: 35
  • *Total: 36

Our Discord

WORLDFLIGHT 2018 - TEAM USA SUPPORTERS (HERO'S)


We would like to thank our HERO'S for Donating to support WORLDFLIGHT Team USA - 2018

-Sam LLorca, Fred Kurasiewicz, Ray Sotkiewicz, Warren Soeldner  -
  -
Kyle Hathaway, John Miller, John Combs, Karen Combs, Mick Cliffe, John Ziegler, Vincent Thomas -
- Roy Stewart, Joe Lavery, Dr. Steve Eisenberg, Les Barwick, Doug Snow, Greg Hembree -
- James Williams, Edwin Burton Jasper Koelewijn, James Twomey, John Skibo, Trevor Hale -

- Jason Garrett, Scott Wegner, Frank Radl, Ryan O'Keefe, David Bullock, Bob Reed, Don Emersoln, Lisa Lopez-Floriano -

Ruscool Electronics Intercom #1 - Won by GyverX
Ruscool Electronics Intercom #2 - Won by dj_Boelie
Ruscool Electronics Intercom #3 -Ryan O'Keefe
Geetech A10 3D printer - James Twomey

Thanks to all of you, so far this year we have raised

$3600.00 USD


Author Topic: Teensy LC Hydralic Panel  (Read 193 times)

Online kurt-olsson

  • I am chained to this website!
  • *
  • Posts: 1,075
  • 737 -mixed year OEM panel builder.
  • First Name: Peter
  • Home Location: Gothenburg
Teensy LC Hydralic Panel
« on: October 10, 2018, 04:52:42 PM »
Hi!

Here is my sketch for my Haudralic panel for the Zibo 737 and X-Plane 11 using Teensy LC.


const int PIN_5V_BACKLIGHT = 6;
const int PIN_KORRY_PUSH_TO_TEST = 4;

const int PIN_KORRY_LIGHT_ELEC_LOW_PRESSURE_1 = 3;
const int PIN_KORRY_LIGHT_ELEC_LOW_PRESSURE_2 = 23;
const int PIN_KORRY_LIGHT_ELEC_OVERHEAT_1 = 22;
const int PIN_KORRY_LIGHT_ELEC_OVERHEAT_2 = 17;
const int PIN_KORRY_LIGHT_ENG_LOW_PRESSURE_1 = 16;
const int PIN_KORRY_LIGHT_ENG_LOW_PRESSURE_2 = 20;

const int PIN_SWITCH_ENGINE_1 = 15;
const int PIN_SWITCH_ENGINE_2 = 19;
const int PIN_SWITCH_ELEC_1 = 18; //Check these, the ground might be touching
const int PIN_SWITCH_ELEC_2 = 21; //check these, the ground might be touching

FlightSimFloat xPlane_light_elec_low_pressure_1;
FlightSimFloat xPlane_light_elec_low_pressure_2;
FlightSimFloat xPlane_light_eng_low_pressure_1;
FlightSimFloat xPlane_light_eng_low_pressure_2;
FlightSimFloat xPlane_light_el_hyd_ovht_1;
FlightSimFloat xPlane_light_el_hyd_ovht_2;

FlightSimFloat xPlane_engine1_pos;
FlightSimFloat xPlane_engine2_pos;
FlightSimFloat xPlane_elec1_pos;
FlightSimFloat xPlane_elec2_pos; 

FlightSimFloat xPlane_panel_brightness_ratio_manual;

void setup() {
 
  xPlane_engine1_pos = XPlaneRef("laminar/B738/toggle_switch/hydro_pumps1_pos");
  xPlane_engine2_pos = XPlaneRef("laminar/B738/toggle_switch/hydro_pumps2_pos");
  xPlane_elec1_pos = XPlaneRef("laminar/B738/toggle_switch/electric_hydro_pumps1_pos");
  xPlane_elec2_pos = XPlaneRef("laminar/B738/toggle_switch/electric_hydro_pumps2_pos");

  xPlane_light_elec_low_pressure_1 = XPlaneRef("laminar/B738/annunciator/hyd_el_press_a");
  xPlane_light_elec_low_pressure_2 = XPlaneRef("laminar/B738/annunciator/hyd_el_press_b");
  xPlane_light_eng_low_pressure_1 = XPlaneRef("laminar/B738/annunciator/hyd_press_a");
  xPlane_light_eng_low_pressure_2 = XPlaneRef("laminar/B738/annunciator/hyd_press_b");
  xPlane_light_el_hyd_ovht_1 = XPlaneRef("laminar/B738/annunciator/el_hyd_ovht_1");;
  xPlane_light_el_hyd_ovht_2 = XPlaneRef("laminar/B738/annunciator/el_hyd_ovht_2");;

  xPlane_panel_brightness_ratio_manual = XPlaneRef("sim/cockpit2/electrical/panel_brightness_ratio_manual[2]");
   
  pinMode(PIN_5V_BACKLIGHT,OUTPUT);
  pinMode(PIN_KORRY_PUSH_TO_TEST,OUTPUT);
 
  pinMode(PIN_KORRY_LIGHT_ELEC_LOW_PRESSURE_1,OUTPUT);
  pinMode(PIN_KORRY_LIGHT_ELEC_OVERHEAT_1,OUTPUT);
  pinMode(PIN_KORRY_LIGHT_ENG_LOW_PRESSURE_2,OUTPUT);
  pinMode(PIN_KORRY_LIGHT_ELEC_OVERHEAT_2,OUTPUT);
  pinMode(PIN_KORRY_LIGHT_ENG_LOW_PRESSURE_1,OUTPUT);
  pinMode(PIN_KORRY_LIGHT_ELEC_LOW_PRESSURE_2,OUTPUT);
 
  pinMode(PIN_SWITCH_ENGINE_1,INPUT_PULLUP);
  pinMode(PIN_SWITCH_ENGINE_2,INPUT_PULLUP);
  pinMode(PIN_SWITCH_ELEC_1,INPUT_PULLUP);
  pinMode(PIN_SWITCH_ELEC_2,INPUT_PULLUP);
}

void loop() {
  FlightSim.update();   

  analogWrite(PIN_5V_BACKLIGHT,mapfloat(xPlane_panel_brightness_ratio_manual, 0,1,0,255));
  analogWrite(PIN_KORRY_PUSH_TO_TEST,255);

  analogWrite(PIN_KORRY_LIGHT_ELEC_OVERHEAT_1,mapfloat(xPlane_light_el_hyd_ovht_1,0,1,0,255));
  analogWrite(PIN_KORRY_LIGHT_ELEC_OVERHEAT_2,mapfloat(xPlane_light_el_hyd_ovht_2,0,1,0,255));

  analogWrite(PIN_KORRY_LIGHT_ELEC_LOW_PRESSURE_1, mapfloat(xPlane_light_elec_low_pressure_1,0,1,0,255));
  analogWrite(PIN_KORRY_LIGHT_ELEC_LOW_PRESSURE_2, mapfloat(xPlane_light_elec_low_pressure_2,0,1,0,255));
 
  analogWrite(PIN_KORRY_LIGHT_ENG_LOW_PRESSURE_1, mapfloat(xPlane_light_eng_low_pressure_1,0,1,0,255));
  analogWrite(PIN_KORRY_LIGHT_ENG_LOW_PRESSURE_2, mapfloat(xPlane_light_eng_low_pressure_2,0,1,0,255));

  //Fix why these dont align up after restarting teensy, strange!

  if (digitalRead(PIN_SWITCH_ELEC_1) == HIGH && xPlane_elec1_pos != 1) {
    xPlane_elec1_pos = 1;
  }
  if (digitalRead(PIN_SWITCH_ELEC_1) == LOW && xPlane_elec1_pos != 0) {
    xPlane_elec1_pos = 0;
  }
  if (digitalRead(PIN_SWITCH_ELEC_2) == HIGH && xPlane_elec2_pos != 1) {
    xPlane_elec2_pos = 1;
  }
  if (digitalRead(PIN_SWITCH_ELEC_2) == LOW && xPlane_elec2_pos != 0) {
    xPlane_elec2_pos = 0;
  }
  if (digitalRead(PIN_SWITCH_ENGINE_1) == HIGH && xPlane_engine1_pos != 1) {
    xPlane_engine1_pos = 1;
  }
  if (digitalRead(PIN_SWITCH_ENGINE_1) == LOW && xPlane_engine1_pos != 0) {
    xPlane_engine1_pos = 0;
  }
  if (digitalRead(PIN_SWITCH_ENGINE_2) == LOW && xPlane_engine2_pos != 1) {
    xPlane_engine2_pos = 1;
  }
  if (digitalRead(PIN_SWITCH_ENGINE_2) == HIGH && xPlane_engine2_pos != 0) {
    xPlane_engine2_pos = 0;
  }

  //put a small delay here otherwise the processing is so fast. Lots of read/write that dont have to be so fast.
  delay(20);
}

float mapfloat(float x, float in_min, float in_max, float out_min, float out_max)
{
 return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}

Offline archen

  • Forum GURU
  • *
  • Posts: 309
  • Aviation Enthusiast
    • Anders Simparts
  • First Name: Anders
  • Home Location: Falun
Teensy LC Hydralic Panel
« Reply #1 on: October 14, 2018, 05:17:53 AM »
Hey Peter,
Looking at your code it looks like you control the brightness of the annunciator with a dataref related to some kind of lightning control knob in the Zibo aircraft. Is that correctly understood?

Are you limited to use the analog pins of the teensy? Are all the annunciators connected through a ULN2803A?

BR.
Anders

Skickat från min SM-G955F via Tapatalk

------------
Anders Simparts
http://www.anderssimparts.com
https://www.facebook.com/ArchenSimparts
Selling "Hard-to-get" simparts like authentic Engine starters, Autobrake, IRS mode selectors and N1&SPD Ref Switches.
------------

Online kurt-olsson

  • I am chained to this website!
  • *
  • Posts: 1,075
  • 737 -mixed year OEM panel builder.
  • First Name: Peter
  • Home Location: Gothenburg
Re: Teensy LC Hydralic Panel
« Reply #2 on: October 18, 2018, 08:38:50 AM »
Yes, its controlled by the dataref of the backlight.
Advantages with this is that you dont have to link backlight and the know by hardware / cables.
Just torn the know and read the values from the Logic in X-Plane. Great.

You prob know this now,

I am limited when it comes to the large panels, but with our PCB i plan to use double PCB and 4 ULN2803A. Then the pins and ULN2803A should be enough. =)

 

Recent Posts

Updating Navigraph FMC Data - Project Magenta / ProSim
by ScottThePilot
[November 14, 2018, 11:45:26 PM]
Notice to those who won the intercoms from Ruscool during Worldflight 2018
by RayS
[November 14, 2018, 06:28:58 PM]
737-800 Arduino X-Plane Build
by kurt-olsson
[November 14, 2018, 04:16:52 PM]
B737 Desktop sim project
by archen
[November 14, 2018, 03:48:11 PM]
CockpitSimParts 737 MIP & FWD OVH
by Trevor Hale
[November 14, 2018, 08:46:18 AM]
For sale! B737 home cockpit - mostly OEM parts!
by myanezt
[November 14, 2018, 07:26:08 AM]
Keep losing both engines and all power. Help
by mdavenport
[November 13, 2018, 04:15:35 PM]
For Sale-Real Cockpit Gauges...
by blueskydriver
[November 12, 2018, 09:16:00 PM]
For Sale GoFlight Jet Console, 2 Private Pilot Racks all with GoFlight Modules.
by blueskydriver
[November 12, 2018, 09:09:08 PM]
Rudder trim
by Mach7
[November 12, 2018, 07:54:17 AM]
Join me on Vatsim Tonight
by Trevor Hale
[November 11, 2018, 01:37:04 PM]
WorldFlight - CockpitBuilders DAL209 Progress
by Trevor Hale
[November 11, 2018, 11:32:12 AM]
WorldFlight - CockpitBuilders UAL1120 Progress
by dougsnow
[November 11, 2018, 11:08:19 AM]
6 Years already
by gjha97
[November 11, 2018, 07:02:26 AM]
CP Flight Selcal - How does it work
by ZK CWD
[November 10, 2018, 11:51:31 PM]
Ruscool stereo intercom com units for sale
by ZK CWD
[November 10, 2018, 11:07:11 PM]
HELP windows 10
by kenrowe
[November 10, 2018, 10:16:52 AM]
Solidworks Veterans Discounts
by Joe Lavery
[November 09, 2018, 06:00:32 PM]
World Flight and DAL209
by Sam Llorca
[November 07, 2018, 09:27:37 AM]
Installing P3D on D: drive
by navymustang
[November 07, 2018, 03:49:29 AM]
Stupid GSX trick :)
by Flying_Fox
[November 05, 2018, 03:26:55 PM]
What have you done for your simulator today?
by bernard S
[November 05, 2018, 02:59:13 PM]
3DOF Motion platform for sale $3990.00
by Lee737
[November 04, 2018, 09:52:42 PM]
Mickey's Flightdeck - A Boeing 737-800 Cockpit on Youtube
by Extraterra
[November 04, 2018, 04:02:00 PM]
Lohrenz Hanger
by jmlohrenz
[November 04, 2018, 12:14:01 AM]
Final Systems check: Gearing up for WF 2018...
by Trevor Hale
[November 03, 2018, 10:20:05 PM]
8" HDMI/VGA monitors for sale
by Goodenough
[November 03, 2018, 06:06:24 PM]
ALL MEMBERS! 9 Days and Counting!
by KyleH
[November 01, 2018, 09:00:17 AM]
What knowledge is needed to build an interface card?
by Pantu
[October 30, 2018, 08:29:06 AM]
Boeing 737-800 Next Generation Simulator
by jackpilot
[October 29, 2018, 06:37:25 PM]