Doet min of meer hetzelfde als de Pressuregard van Robart.
https://robart.com/collections/air-...sories/products/robart-retract-pressure-guard
Alleen is die al een tijdje niet verkrijgbaar.
Zelfbouwen is echter heel eenvoudig.
Het belangrijkste onderdeel is de druksensor en ik heb gekozen voor een analoge sensor van Honeywell.
Deze werkt; van 0 tot 10 Bar, op 5V en geeft een analoge spanning als uitkomst.
Achter op de sensor twee condensatoren plaatsen (zie de datasheet).
Het is handig om de sensor in de buurt van de luchttank(s) te plaatsen.
Edit: link naar sensor toegevoegd https://www.reichelt.nl/druksensor-...-abpllnt010-p247626.html?&trstct=pos_11&nbc=1
De verwerking wordt gedaan op een Arduino Nano bordje (zo'n beetje overal te koop).
Aan verdere onderdelen heb je een paar connectoren voor servo-stekkers nodig (direct solderen kan ook), een 5V piezo-buzzer ( https://www.reichelt.nl/zoemer-elek...d-430-00008-p254027.html?&trstct=pos_15&nbc=1 ) en eventueel een jumper.
De jumper overbrugd de spanningsregelaar van het arduino bordje (tussen V-in en 5V) en deze wordt alleen gebruikt als de voedingsspanning zelf al 5V is.
werkt je ontvanger met een hogere spanning dan de jumper verwijderen zodat de spanningsregelaar van de Arduino voor 5V zorgt.
Behalve de druksensor gaat er servo kabeltje naar de ontvanger (kanaal naar keuze) en een kabeltje naar de servo welke het ventiel aanstuurd.
Hier onder een geprint kastje waar de connectoren te zien zijn, de buzzer, een condensator (100nF tussen 5V & Gnd) en linksonder de jumper voor rechtstreeks op 5V (jumper gebruiken) of 7 tot 12 V (jumper verwijderen.
Rechtsonder zit de druksensor bij de tyraps.
Wat het doet;
Gewoon het signaal van de ontvanger doorgeven of je het landingsgestel wilt intrekken of juist neerlaten, totdat de druk te laag wordt.
Komt de druk beneden een ingestelde waarde (hier ca 2,6 Bar) dan zal het landingsgestel direct naar beneden gaan.
Verder onthoud hij de laatste stand van het landingsgestel.
Als (bij het aanzetten) blijkt dat de laatste stand niet overeenkomt met wat de zender opgeeft, dan laat de buzzer zich horen en gebeurd er niets voordat de (schakelaar ? op) zender overeenkomt.
Hieronder staat de Sketch (code).
Je zult waarschijnlijk twee waarden moeten aanpassen in de code. Die voor Gearup & Geardown. [ int ServoGearup = (bv)1080 & int ServoGeardown = (bv)1750;]
Die kun je heel makkelijk bepalen door vooraf met een servo-tester even te kijken wat deze waarden zijn.
https://robart.com/collections/air-...sories/products/robart-retract-pressure-guard
Alleen is die al een tijdje niet verkrijgbaar.
Zelfbouwen is echter heel eenvoudig.
Het belangrijkste onderdeel is de druksensor en ik heb gekozen voor een analoge sensor van Honeywell.
Deze werkt; van 0 tot 10 Bar, op 5V en geeft een analoge spanning als uitkomst.
Achter op de sensor twee condensatoren plaatsen (zie de datasheet).
Het is handig om de sensor in de buurt van de luchttank(s) te plaatsen.
Edit: link naar sensor toegevoegd https://www.reichelt.nl/druksensor-...-abpllnt010-p247626.html?&trstct=pos_11&nbc=1
De verwerking wordt gedaan op een Arduino Nano bordje (zo'n beetje overal te koop).
Aan verdere onderdelen heb je een paar connectoren voor servo-stekkers nodig (direct solderen kan ook), een 5V piezo-buzzer ( https://www.reichelt.nl/zoemer-elek...d-430-00008-p254027.html?&trstct=pos_15&nbc=1 ) en eventueel een jumper.
De jumper overbrugd de spanningsregelaar van het arduino bordje (tussen V-in en 5V) en deze wordt alleen gebruikt als de voedingsspanning zelf al 5V is.
werkt je ontvanger met een hogere spanning dan de jumper verwijderen zodat de spanningsregelaar van de Arduino voor 5V zorgt.
Behalve de druksensor gaat er servo kabeltje naar de ontvanger (kanaal naar keuze) en een kabeltje naar de servo welke het ventiel aanstuurd.
Hier onder een geprint kastje waar de connectoren te zien zijn, de buzzer, een condensator (100nF tussen 5V & Gnd) en linksonder de jumper voor rechtstreeks op 5V (jumper gebruiken) of 7 tot 12 V (jumper verwijderen.
Rechtsonder zit de druksensor bij de tyraps.
Wat het doet;
Gewoon het signaal van de ontvanger doorgeven of je het landingsgestel wilt intrekken of juist neerlaten, totdat de druk te laag wordt.
Komt de druk beneden een ingestelde waarde (hier ca 2,6 Bar) dan zal het landingsgestel direct naar beneden gaan.
Verder onthoud hij de laatste stand van het landingsgestel.
Als (bij het aanzetten) blijkt dat de laatste stand niet overeenkomt met wat de zender opgeeft, dan laat de buzzer zich horen en gebeurd er niets voordat de (schakelaar ? op) zender overeenkomt.
Hieronder staat de Sketch (code).
Je zult waarschijnlijk twee waarden moeten aanpassen in de code. Die voor Gearup & Geardown. [ int ServoGearup = (bv)1080 & int ServoGeardown = (bv)1750;]
Die kun je heel makkelijk bepalen door vooraf met een servo-tester even te kijken wat deze waarden zijn.
Code:
#include <Servo.h>
#include <EEPROM.h>
int ServoinPin = 5;
int ServogearPin = 7;
int Buzzpin = 13;
int Buzz;
int Pressure;
int Pressurelimit = 350; // = ca 2,8 Bar (0 Bar = 0 & 10 Bar = 1024)
int servoinput;
Servo servogear;
int ServoGeardown = 1750; // value for geardown in ms (check this value for your plane)
int ServoGearup = 1080; // value for gearup in ms (check this value for your plane)
int Readystatus; // 0= not ready (no match between TX-signal and gear up or down)/ 1 = ready (match)
int Gearstatus; //0 = gear up / 255 = geardown
void setup()
{
pinMode(ServoinPin, INPUT);
pinMode(ServogearPin, OUTPUT);
pinMode(Buzzpin, OUTPUT);
Buzz = LOW;
Readystatus = 0; // 0 = previus not ready.
delay(3000); // 3 seconds delay (rx to get ready)
}
void loop()
{
Pressure = analogRead (A0);
servoinput = pulseIn(ServoinPin, HIGH);
Gearstatus = EEPROM.read(0);
if (servoinput <= 1250 && Gearstatus == 255) // if the switch on transmitter is in the same (down)position as the gear
{
Readystatus = 1; // Gear = in the same position as switch on TX
}
if (servoinput >= 1750 && Gearstatus == 0) // if the switch on transmitter is in the same (up)position as the gear
{
Readystatus = 1; // Gear = in the same position as switch on TX
}
if (Readystatus == 1)
{
servogear.attach(ServogearPin);
if (Pressure >= Pressurelimit) // Pressure is above minimum - all OK
{
if (servoinput <= 1250)
{
servogear.writeMicroseconds(ServoGeardown);
if (Gearstatus == 0) // If the gear was up
{
Gearstatus = 255; // change status to gear down
EEPROM.write (0,Gearstatus); // New status in Eeprom
}
Gearstatus = 255;
}
if (servoinput >= 1750)
{
servogear.writeMicroseconds(ServoGearup);
if (Gearstatus == 255)
{
Gearstatus = 0;
EEPROM.write (0,Gearstatus);
}
Gearstatus = 0;
}
}
if (Pressure < Pressurelimit)
{
servogear.writeMicroseconds(ServoGeardown);
Gearstatus = 255;
EEPROM.write (0,Gearstatus);
}
}
if (Readystatus == 0)
{
if (Buzz == LOW)
{
Buzz = HIGH;
digitalWrite (Buzzpin, Buzz);
delay(100);
}
if (Buzz == HIGH)
{
Buzz = LOW;
digitalWrite (Buzzpin, Buzz);
delay(100);
}
}
}
Laatst bewerkt: