Принять из браузера 54 переменных, передать на 74HC595
- Войдите на сайт для отправки комментариев
Нужно:
В браузере отображается форма 6 на 9 ячеек. В ячейки пользователем вводятся числа 0-100 и нажимается кнопка отправки. В ардуино крутится 100-шаговый цикл. Значение, принятое из ячейки - это кол-во циклов, в которых сигнал на соответствующей ноге будет, на оставшихся циклах сигнала не будет. Т.е., если передан 0, то сигнал не выдаётся. Если 100 - сигнал есть постоянно. Если 50, то 50 циклов сигнал есть, 50 нет.
В ячейках формы отображаются текущие значения переменных. При запуске программы все значения 30.
Желательно предусмотреть возможность работы с профилями, подцветку ячеек в зависимости от значения и "мастер-ячейку" - значение которой присваивается всем переменным или значение всех ячеек увеличивается на заданное значение..
У Ардуино используется три ноги на выход плюс семь-восемь мультиплексоров (ссылка ниже).
Вот похожие задачи:
http://arduino.ru/forum/programmirovanie/parsing-stroki-adresa-arduino-v-rezhime-veb-servera#comment-28322
http://fdv.co.il/lechenie_v_izraele/viewtopic.php?p=623
Вот мультиплексоры:
http://arduino.ru/Tutorial/registr_74HC595
Нужно:
В браузере отображается форма 6 на 9 ячеек. В ячейки пользователем вводятся числа 0-100 и нажимается кнопка отправки. В ардуино крутится 100-шаговый цикл. Значение, принятое из ячейки - это кол-во циклов, в которых сигнал на соответствующей ноге будет, на оставшихся циклах сигнала не будет. Т.е., если передан 0, то сигнал не выдаётся. Если 100 - сигнал есть постоянно. Если 50, то 50 циклов сигнал есть, 50 нет.
В ячейках формы отображаются текущие значения переменных. При запуске программы все значения 30.
Желательно предусмотреть возможность работы с профилями, подцветку ячеек в зависимости от значения и "мастер-ячейку" - значение которой присваивается всем переменным или значение всех ячеек увеличивается на заданное значение..
У Ардуино используется три ноги на выход плюс семь-восемь мультиплексоров (ссылка ниже).
Вот похожие задачи:
http://arduino.ru/forum/programmirovanie/parsing-stroki-adresa-arduino-v-rezhime-veb-servera#comment-28322
http://fdv.co.il/lechenie_v_izraele/viewtopic.php?p=623
Вот мультиплексоры:
http://arduino.ru/Tutorial/registr_74HC595
могу взяться. пишите на fmv.electronics@gmail.com
Что знал уже написал. Мне нужна стоимость и сроки. Или допвопросы, если есть.
Почта моя rqtan@rambler.ru
Не грамотно написанное тз. Абсолютно. Что-такое "50 циклов есть 50 циклов нет"? Каких циклов? Машинных?
Перечитайте сами себя, исправте и повторите.
И ваще, у меня что-то файервол на ссылку с лечением в израиле ругается... может вас лучше забанить?
Уж как умел, так и написал. Не знаю, чем машинный цикл отличается от какого-либо другого.
С лечением в Израиле тож ничего добавить не могу - вот пример содержимого с этой страницы:
#include <SPI.h> #include <Ethernet.h> #include <string.h> //#include <SD.h> byte mac[] = { 0x00, 0x1D, 0xBE, 0xEF, 0xFE, 0x4A }; byte ip[] = { 10, 0, 0, 4 }; byte gateway[] = { 10, 0, 0, 138 };//gateway byte subnet[] = { 255, 0, 0, 0 }; //subnet EthernetServer server(80);//server port /////////////////////////////////////////////////////////////////////////////// byte sampledata=50; //some sample data - outputs 2 (ascii = 50 DEC) int ledPins[]= { 2,3,4,5,6,7,8,9 }; // LED pin String readString = String(30); //string for fetching data from address boolean LEDON1 = false; //LED status flag boolean LEDON2 = false; boolean LEDON3 = false; boolean LEDON4 = false; void setup() { Serial.begin(9600); Ethernet.begin(mac, ip, gateway, subnet); //Set pin to output for(int i = 2; i < 9; i++) { pinMode(ledPins[i],OUTPUT); } } 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; //replaces readString.append(c); } //output chars to serial port Serial.print(c); //if HTTP request has ended if (c == '\n') { //dirty skip of "GET /favicon.ico HTTP/1.1" if (readString.indexOf("?") <0) { //skip everything } else //lets check if LED should be lighted if(readString.indexOf("LED1=1") >0)//replaces if(readString.contains("L=1")) { //led has to be turned ON digitalWrite(ledPins[2], HIGH); // set the LED on LEDON1 = true; } if(readString.indexOf("LED1=0") >0){ //led has to be turned OFF digitalWrite(ledPins[2], LOW); // set the LED OFF LEDON1 = false; } if(readString.indexOf("LED2=1") >0)//replaces if(readString.contains("L=1")) { //led has to be turned ON digitalWrite(ledPins[5], HIGH); // set the LED on LEDON2 = true; } /* if(readString.indexOf("LED2=0") >0){ //led has to be turned OFF digitalWrite(ledPins[5], LOW); // set the LED OFF LEDON2 = false; } if(readString.indexOf("LED3=1") >0)//replaces if(readString.contains("L=1")) { //led has to be turned ON digitalWrite(ledPins[6], HIGH); // set the LED on LEDON3 = true; } if(readString.indexOf("LED3=0") >0){ //led has to be turned OFF digitalWrite(ledPins[6], LOW); // set the LED OFF LEDON3 = false; } if(readString.indexOf("LED4=1") >0)//replaces if(readString.contains("L=1")) { //led has to be turned ON digitalWrite(ledPins[7], HIGH); // set the LED on LEDON4 = true; } if(readString.indexOf("LED4=0") >0){ //led has to be turned OFF digitalWrite(ledPins[7], LOW); // set the LED OFF LEDON4 = false; } */ else{} // Формируем HTML client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println(); client.println("<head> "); client.println("<meta http-equiv='Content-Type' content='text/html; charset=utf-8' /> "); client.println("<title>:: Transformer.inc :: Умный дом ::</title>"); client.println("<link rel='stylesheet' type='text/css' href='http://www.fdv.co.il/arduino/css/style.css'> "); client.println("</head> "); client.println("<body"); //controlling led via radio elements client.println("<img src='http://www.fdv.co.il/shipuzim/image/transformer2.gif'>"); client.println("<h3>Управление четырьмя нагрузками</h3>"); client.println("<form method=get name=LED>"); if (LEDON1) { client.println("<input type=radio name=LED1 value=1 CHECKED>Включить</input><br /> <input type=radio name=LED1 value=0>Выключить</input><br /><input type=submit src='http://www.fdv.co.il/shipuzim/on.gif' value=Применить></input>"); client.println("<font size=’5′>Статус: "); client.println("<img src='http://www.fdv.co.il/shipuzim/image/on.png'><br />"); } else{ client.println("<input type=radio name=LED1 value=1>Включить</input><br /><input type=radio name=LED1 value=0 CHECKED>Выключить</input><br /><input type=submit value=Применить></input>"); client.println("<font size=’5′>Статус: "); client.println("<img src='http://www.fdv.co.il/shipuzim/image/off.png'><br />"); } client.println("</form></body></html>"); //clearing string for next read readString=""; //останавливаем web-client client.stop(); } } } } }Побаньте, если душа потешится. Да и клиентов поприбавится - порядок все любят)
я отписался на имейл
Принял. Ответил.
Можно ещё пару примеров ваших работ на почту или сюда?
на почту скину
Вот это проверьте, некорректный код:
int ledPins[]= { 2,3,4,5,6,7,8,9 }; // LED pin ... void setup() { //Set pin to output for(int i = 2; i < 9; i++) ~~~~~~~~~~~~~~~~~~~~~~~~~~ { pinMode(ledPins[i],OUTPUT); } }Длина массива.