» Poradna » Ostatní

Arduino IDE

 |   |  Microsoft Windows 8.1 Chrome 30.0.1599.101

Dobrý den, potřebuji smíchat dohromady tyto kódy ,aby když půjdu na www stránku abych mohl otevírat a zavírat a aby po namačkáni kódu na keypad se otevřel a po napačkáni špatného zavřel. Děkuji.Code #1:#include <Keypad.h>#include <Servo.h>Servo servo_Motor;int LED_CLOSE = 11; int LED_OPEN = 12; int LED_TREZOR = 13;const byte ROWS = 4;const byte COLS = 3;char pressedKey[5] = {'0','0','0','0','0'};char code[5] = {'1','2','3','4','5'};char hexaKeys[ROWS][COLS] = {{'1','2','3'},{'4','5','6'},{'7','8','9'},{'*','0','#'}};byte rowPins[ROWS] = {2, 3, 4, 5};byte colPins[COLS] = {6, 7, 8};Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);void setup(){pinMode(LED_OPEN, OUTPUT); pinMode(LED_CLOSE, OUTPUT); pinMode(LED_TREZOR, OUTPUT);digitalWrite(LED_CLOSE, HIGH);servo_Motor.attach(2);}void loop(){char customKey = customKeypad.getKey();if (customKey){if (customKey == '#'){if ((pressedKey[0] == code[0]) && (pressedKey[1] == code[1]) && (pressedKey[2] == code[2]) && (pressedKey[3] == code[3]) && (pressedKey[4] == code[4])){digitalWrite(LED_CLOSE, LOW); digitalWrite(LED_OPEN, HIGH);digitalWrite(LED_TREZOR, HIGH);servo_Motor.write(10);tone(10,2400,1200);delay(15000);digitalWrite(LED_OPEN, LOW);digitalWrite(LED_CLOSE, HIGH);digitalWrite(LED_TREZOR, LOW);servo_Motor.write(90);tone(10,1900,1200);pressedKey[0] = '0';pressedKey[1] = '0';pressedKey[2] = '0';pressedKey[3] = '0';pressedKey[4] = '0';}else tone(10,500,1000); }else{pressedKey[0] = pressedKey[1];pressedKey[1] = pressedKey[2];pressedKey[2] = pressedKey[3];pressedKey[3] = pressedKey[4];pressedKey[4] = customKey; tone(10,1200,80);}}}Code #2:#include <SPI.h>#include <Ethernet.h>#include <Servo.h>Servo myservo; // create servo object to control a servo Servo ms;byte mac[] = { 0x00, 0xAB, 0xCD, 0xAF, 0xFD, 0xB8 }; //physical mac addressbyte ip[] = { 192,168,0,88 }; // ip in lanbyte gateway[] = { 192, 168, 0, 1 }; // internet access via routerbyte subnet[] = { 255, 255, 255, 0 };EthernetServer server(8080); //server portString readString; //////////////////////void setup(){ myservo.attach(14); //the pin for the servo control ms.attach(15); myservo.write(0); delay(200); ms.write(10); delay(500); myservo.write(60); //start Ethernet Ethernet.begin(mac, ip, gateway, subnet); server.begin();}void loop(){ // Create a client connection EthernetClient client = server.available(); if (client) { while (client.connected()) { if (client.available()) { char c = client.read(); //read char by char HTTP request if (readString.length() < 100) { //store characters to string readString += c; //Serial.print(c); } //if HTTP request has ended if (c == '\n') { /////////////// Serial.println(readString); //print to serial monitor for debuging client.println("HTTP/1.1 200 OK"); //send new page client.println("Content-Type: text/html"); client.println(); client.println("<HTML>"); client.println("<HEAD>"); client.println("<TITLE>Arduino Trezor</TITLE>"); client.println("</HEAD>"); client.println("<BODY>"); client.println("<H1>TREZOR</H1>"); client.println("<a href=\"/?on\"\">Odemknout</a>"); client.println("<a href=\"/?off\"\">Zamknout</a>"); client.println("</BODY>"); client.println("</HTML>"); delay(1); //stopping client client.stop(); ///////////////////// control arduino pin if(readString.indexOf("?on") >0)//checks for on { myservo.write(0); delay(1000); ms.write(101); } if(readString.indexOf("?off") >0)//checks for off { ms.write(10); delay(1000); myservo.write(60); } //clearing string for next read readString=""; } } } }}

Odpovědi na otázku

 |   |  Microsoft Windows 10 Firefox 45.0

Pro začátek by si ten kód mohl dát třeba na http://hastebin.com/

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 IE 11.0

Tak nějak mám pocit, že nepotřebuješ sloučit tyto dva kódy, ale do druhého vytvořit webovou stránku s javascriptem, který nasimuluje chování klávesnice a výsledek pošle zpět na Arduino. Jak velký ten javascript bude a zda se vleze do paměti Arduina, si netroufám odhadnout, s Javou nemám zkušenosti.Variantně by snad šlo vytvořit webovou stránku s klávesnicí, kde by každá klávesa měla odkaz (obdobně jako tam teď máš ?on a ?off, tak bys tam měl ?1, ?2 atd) a na Arduinu bys pak testoval správnost pořadí sekvence, ale to by asi bylo pomalé (po každém stisku by se musela stránka znova načítat a Adruino je asi nebude posílat zrovna bleskově...)Nejjednodušší by asi bylo vytvořit zadávací pole, kam naťukáš nějaké heslo a to odešleš ho.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 8 IE 11.0

Potrebuji toto aby stránka zůstala jak je a na mem " trezoru" mam keypad a když na něm nakukam 1234 tak se otevře a když spatne heslo tak se zavře.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 8.1 Chrome 49.0.2623.75

Tady máte linky na hastebiny.....Code #1: http://hastebin.com/wajusadute.avrasmCode #2: http://hastebin.com/ziluwoguyi.avrasm

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 IE 11.0

Nepřipadá mi, že bys ty dva kódy měl odladěné. Jeden používá jeden servomotor připojený k pinu 2, druhý servomotory dva, piny 14 a 15. Tím musíš začít, aby oba kódy fungovaly se stejným hardwarem bez přepojování drátů na různé piny.Pak potřebuješ sjednotit proměnné, (aby například jeden program nepoužíval "servo_Motor" a druhý "myservo" a "ms".Teprve, až budou oba programy používat stejné proměnné a fungovat, začni je slučovat - include k include, deklarace k deklaracím, ty dva void setup sloučit do jednoho, dva void loop sloučit do jednoho a vyzkoušet, co to udělá.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Unknown Mozilla 11.0

Ted nemam čas. Ale než jsem totu dával tak jsem vše zkoušel to samé jak si teď psal. Zítra vám dám na hastebin kódy které mají stejne serva atd.

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: Arduino, Trezor, Client, Servo, Byte, Delay, #include, Void, Loop, Serial println, Characters




Určitě si přečtěte

Tohle tak jednou zažít: Nová vzducholoď Airlander 10 s prosklenou podlahou

Tohle tak jednou zažít: Nová vzducholoď Airlander 10 s prosklenou podlahou

** Airlander 10 nabídne plavby vzduchem v interiéru s prosklenou podlahou ** Luxusní vzducholoď byla původně vyvíjena pro vojenské účely ** Počítá se s třídenními „kochacími“ výlety za poznáním

Karel Kilián | 7

Intel vs. AMD: souboj vícejádrových procesorů začal. AMD zesměšňuje Intel neuvěřitelně nízkou cenou

Intel vs. AMD: souboj vícejádrových procesorů začal. AMD zesměšňuje Intel neuvěřitelně nízkou cenou

** AMD představilo nové levné procesory až s 32jádry ** AMD útočí na serverový i domácí trh Intelu ** Intel nemá konkurenceschopnou nabídku

Karel Javůrek | 85

Externí SSD se může hodit. Je rychlé, malé zvenku, velké uvnitř a cena už se snese

Externí SSD se může hodit. Je rychlé, malé zvenku, velké uvnitř a cena už se snese

** Vyzkoušeli jsme rychlé externí SSD Samsung T5 ** Externí SSD je lepší než flešky i velké plotnové disky, většímu rozšíření doposud bránila především cena ** Samsung T5 zvládne i chytré šifrování a připojení k mobilu

David Polesný | 27


Jízdní řády Bileto
Aktuální číslo časopisu Computer

Megatest: 13 grafických karet

Srovnání 7 dokovacích stanic s USB-C

Jak na perfektní noční fotografie

Kvalitní zdroje informací pro sebevzdělávání