0 Members and 1 Guest are viewing this topic.
#include "Wire.h"#include "LiquidCrystal_I2C.h"LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); String donne = "";int nb = 0;boolean mode = true;const int led_verte = 3;const int bouton = 2;int etatbouton;void setup(){ //prepparation du bouton + led pinMode(led_verte, OUTPUT); pinMode(bouton, INPUT); digitalWrite(bouton, HIGH); digitalWrite(led_verte, HIGH); //demarrage du port série Serial.begin(9600); //mise en place de l'affichae main lcd.begin(16, 2); lcd.setCursor(0,0); lcd.print("Main : "); //mise en place de l'affichage RCS lcd.setCursor(0,1); lcd.print("RCS : ");}void loop(){ etatbouton = digitalRead(bouton); if (etatbouton == HIGH) { digitalWrite(led_verte, HIGH); Serial.print("0"); } else { //bouton appuyé digitalWrite(led_verte, LOW); Serial.print("1"); }}//fonction qui transforme certain caractères dec en asciiString ascii(int arg_dec) { if (arg_dec == 48) return "0"; if (arg_dec == 49) return "1"; if (arg_dec == 50) return "2"; if (arg_dec == 51) return "3"; if (arg_dec == 52) return "4"; if (arg_dec == 53) return "5"; if (arg_dec == 54) return "6"; if (arg_dec == 55) return "7"; if (arg_dec == 56) return "8"; if (arg_dec == 57) return "9"; if (arg_dec == 97) return "a"; if (arg_dec == 98) return "b"; if (arg_dec == 99) return "c"; if (arg_dec == 100) return "d"; if (arg_dec == 109) return "m"; if (arg_dec == 114) return "r";}void serialEvent() //se déclenche quand le port série reçois une données{ donne = ""; nb = 0; //mose main, la données atterit d'abord sur le compteurs du réservoir principal if (mode == true) { while (Serial.available() > 0) { lcd.setCursor(8,0); donne = donne + ascii(Serial.read()); nb = nb + 1; } if (nb == 1) donne = "0000" + donne; if (nb == 2) donne = "000" + donne; if (nb == 3) donne = "00" + donne; if (nb == 4) donne = "0" + donne; lcd.print(donne); mode = false; } else { //mose rcs, la données atterit ensuite sur le compteurs du RCS puis on repart au main while (Serial.available() > 0) { lcd.setCursor(8,1); donne = donne + ascii(Serial.read()); nb = nb + 1; } if (nb == 1) donne = "0000" + donne; if (nb == 2) donne = "000" + donne; if (nb == 3) donne = "00" + donne; if (nb == 4) donne = "0" + donne; lcd.print(donne); mode = true; }}
-- Mise en place des constancesv = vessel.get_interface('GL-01')h1 = v:get_propellanthandle(0) --réservoir principalh2 = v:get_propellanthandle(1) --réservoir RCS-- Mise en place du SQLrequire "luasql.odbc"mysql = luasql.odbc()sql = mysql:connect("BDD","root","5pcr12v6")sql:setautocommit(true)local boucle = truerepeat -- récupération de la masse des jauges de carburant masse0 = v:get_propellantmass(h1) masse1 = v:get_propellantmass(h2) --envois de l'information à la BDD sql:execute("UPDATE orbiter SET carburant0 = "..masse0..", carburant1 = "..masse1.." where id =1") --récupération de la commande de ravitaillement des réservoirs cursor = sql:execute("SELECT ordre FROM commande WHERE id = 1") cmd = cursor:fetch("commande") cursor:close() --si la commande est sur 1 alors on remplie if cmd == true then --remplissage si le réservoir est inférieur a sont max if v:get_propellantmass(h1) < 12900 then v:set_propellantmass(h1, v:get_propellantmass(h1) + 20) end if v:get_propellantmass(h1) < 600 then v:set_propellantmass(h2, v:get_propellantmass(h2) + 10) end --réquilibrage des taux max au cas ou que sa dépasse if v:get_propellantmass(h1) > 12900 then v:set_propellantmass(h1, 12900) end if v:get_propellantmass(h1) > 600 then v:set_propellantmass(h2, 600) end end --message --oapi.dbg_out("Main : "..masse0.." RCS : "..masse1) proc.wait_simdt(0.5) until boucle == false
eh ben, c'est très interessant comme projet j'adore quand il a plein de boutons juste comme ça, il y a un moyens d'afficher les réserve de carbu sous forme de graphique sur l'écran LCD ?
je ne vous raconte pas le casse tête que sa va être
Used to identify keyboard events for panels and MFDs.OAPI_KEY.ESCAPE "Esc" OAPI_KEY.1 "1" OAPI_KEY.2 "2" OAPI_KEY.3 "3" OAPI_KEY.4 "4" OAPI_KEY.5 "5" OAPI_KEY.6 "6" OAPI_KEY.7 "7" OAPI_KEY.8 "8" OAPI_KEY.9 "9" OAPI_KEY.0 "0" OAPI_KEY.MINUS "-" on main keypad OAPI_KEY.EQUALS "=" on main keypad OAPI_KEY.BACK Backspace OAPI_KEY.TAB Tab key OAPI_KEY.Q "Q" OAPI_KEY.W "W" OAPI_KEY.E "E" OAPI_KEY.R "R" OAPI_KEY.T "T" OAPI_KEY.Y "Y" OAPI_KEY.U "U" OAPI_KEY.I "I" OAPI_KEY.O "O" OAPI_KEY.P "P" OAPI_KEY.LBRACKET "[" OAPI_KEY.RBRACKET "]" OAPI_KEY.RETURN Enter key on main keypad OAPI_KEY.LCONTROL Left control key OAPI_KEY.A "A" OAPI_KEY.S "S" OAPI_KEY.D "D" OAPI_KEY.F "F" OAPI_KEY.G "G" OAPI_KEY.H "H" OAPI_KEY.J "J" OAPI_KEY.K "K" OAPI_KEY.L "L" OAPI_KEY.SEMICOLON ";" OAPI_KEY.APOSTROPHE "'" OAPI_KEY.GRAVE "`" OAPI_KEY.LSHIFT Left Shift key OAPI_KEY.BACKSLASH "\" OAPI_KEY.Z "Z" OAPI_KEY.X "X" OAPI_KEY.C "C" OAPI_KEY.V "V" OAPI_KEY.B "B" OAPI_KEY.N "N" OAPI_KEY.M "M" OAPI_KEY.COMMA "," OAPI_KEY.PERIOD "." OAPI_KEY.SLASH "/" OAPI_KEY.RSHIFT Right shift key OAPI_KEY.MULTIPLY "*" on numeric keypad OAPI_KEY.LALT Left Alt key OAPI_KEY.SPACE Space bar OAPI_KEY.CAPITAL Caps lock key OAPI_KEY.F1 F1 function key OAPI_KEY.F2 F2 function key OAPI_KEY.F3 F3 function key OAPI_KEY.F4 F4 function key OAPI_KEY.F5 F5 function key OAPI_KEY.F6 F6 function key OAPI_KEY.F7 F7 function key OAPI_KEY.F8 F8 function key OAPI_KEY.F9 F9 function key OAPI_KEY.F10 F10 function key OAPI_KEY.NUMLOCK Num lock key OAPI_KEY.SCROLL Scroll lock key OAPI_KEY.NUMPAD7 "7" on numeric keypad OAPI_KEY.NUMPAD8 "8" on numeric keypad OAPI_KEY.NUMPAD9 "9" on numeric keypad OAPI_KEY.SUBTRACT "-" on numeric keypad OAPI_KEY.NUMPAD4 "4" on numeric keypad OAPI_KEY.NUMPAD5 "5" on numeric keypad OAPI_KEY.NUMPAD6 "6" on numeric keypad OAPI_KEY.ADD "+" on numeric keypad OAPI_KEY.NUMPAD1 "1" on numeric keypad OAPI_KEY.NUMPAD2 "2" on numeric keypad OAPI_KEY.NUMPAD3 "3" on numeric keypad OAPI_KEY.NUMPAD0 "0" on numeric keypad OAPI_KEY.DECIMAL "." on numeric keypad OAPI_KEY.OEM_102 "|", "<", ">" on UK/German keyboards OAPI_KEY.F11 F11 function key OAPI_KEY.F12 F12 function key OAPI_KEY.NUMPADENTER Enter key on numeric keypad OAPI_KEY.RCONTROL Right Control key OAPI_KEY.DIVIDE "/" on numeric keypad OAPI_KEY.RALT Right Alt key OAPI_KEY.HOME Home key on cursor keypad OAPI_KEY.UP Up-arrow on cursor keypad OAPI_KEY.PRIOR PgUp on cursor keypad OAPI_KEY.LEFT Left-arrow on cursor keypad OAPI_KEY.RIGHT Right-arrow on cursor keypad OAPI_KEY.END End key on cursor keypad OAPI_KEY.DOWN Down-arrow on cursor keypad OAPI_KEY.NEXT PgDn on cursor keypad OAPI_KEY.INSERT Insert key on cursor keypad OAPI_KEY.DELETE Delete key on cursor keypad
Nulentout: Entre autre vous pouvez voir mon T.B. sur le lien :http://orbiter.dansteph.com/forum/index.php?topic=2469.0