Помогите новичку!

Probelzaelo
Offline
Зарегистрирован: 15.04.2011

Andrey_Y_Ostanovsky пишет:
Артикль "Le", как мне казалось, произносится ближе к "лё", а не чисто "ле".

Так ведь мы ж, с Василь Иванычем, кансервоториев не кончали и в этикетках не сильны.

triada13
Offline
Зарегистрирован: 04.01.2013

Puhlyaviy пишет:

эххх как то чет тишина какая то в теме образовалась. новички закончились?

Почему это закончилися? Неправда Ваша, вот он тут я. Что не на есть новичек.

JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

С тобой никто не будет переписываться - у тебя "13" в нике...

triada13
Offline
Зарегистрирован: 04.01.2013

JollyBiber ну так нечесноооо.

triada13
Offline
Зарегистрирован: 04.01.2013

Я даже задам конкретный вопрос новичка:

Пытаюсь запустить скетч из примеров библиотеки RCSwitch, а именно: Webserver.

Код:

/*
  A simple RCSwitch/Ethernet/Webserver demo
  
  http://code.google.com/p/rc-switch/
  
  Need help? http://forum.ardumote.com
*/

#include <SPI.h>
#include <Ethernet.h>
#include <RCSwitch.h>

// Ethernet configuration
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // MAC Address
byte ip[] = { 192,168,0, 2 };                        // IP Address
EthernetServer server(80);                           // Server Port 80

// RCSwitch configuration
RCSwitch mySwitch = RCSwitch();
int RCTransmissionPin = 7;

// More to do...
// You should also modify the processCommand() and 
// httpResponseHome() functions to fit your needs.



/**
 * Setup
 */
void setup() {
  Ethernet.begin(mac, ip);
  server.begin();
  mySwitch.enableTransmit( RCTransmissionPin );
}

/**
 * Loop
 */
void loop() {
  char* command = httpServer();
}

/**
 * Command dispatcher
 */
void processCommand(char* command) {
  if        (strcmp(command, "1-on") == 0) {
    mySwitch.switchOn(1,1);
  } else if (strcmp(command, "1-off") == 0) {
    mySwitch.switchOff(1,1);
  } else if (strcmp(command, "2-on") == 0) {
    mySwitch.switchOn(1,2);
  } else if (strcmp(command, "2-off") == 0) {
    mySwitch.switchOff(1,2);
  }
}

/**
 * HTTP Response with homepage
 */
void httpResponseHome(EthernetClient c) {
  c.println("HTTP/1.1 200 OK");
  c.println("Content-Type: text/html");
  c.println();
  c.println("<html>");
  c.println("<head>");
  c.println(    "<title>RCSwitch Webserver Demo</title>");
  c.println(    "<style>");
  c.println(        "body { font-family: Arial, sans-serif; font-size:12px; }");
  c.println(    "</style>");
  c.println("</head>");
  c.println("<body>");
  c.println(    "<h1>RCSwitch Webserver Demo</h1>");
  c.println(    "<ul>");
  c.println(        "<li><a href=\"./?1-on\">Switch #1 on</a></li>");
  c.println(        "<li><a href=\"./?1-off\">Switch #1 off</a></li>");
  c.println(    "</ul>");
  c.println(    "<ul>");
  c.println(        "<li><a href=\"./?2-on\">Switch #2 on</a></li>");
  c.println(        "<li><a href=\"./?2-off\">Switch #2 off</a></li>");
  c.println(    "</ul>");
  c.println(    "<hr>");
  c.println(    "<a href=\"http://code.google.com/p/rc-switch/\">http://code.google.com/p/rc-switch/</a>");
  c.println("</body>");
  c.println("</html>");
}

/**
 * HTTP Redirect to homepage
 */
void httpResponseRedirect(EthernetClient c) {
  c.println("HTTP/1.1 301 Found");
  c.println("Location: /");
  c.println();
}

/**
 * HTTP Response 414 error
 * Command must not be longer than 30 characters
 **/
void httpResponse414(EthernetClient c) {
  c.println("HTTP/1.1 414 Request URI too long");
  c.println("Content-Type: text/plain");
  c.println();
  c.println("414 Request URI too long");
}

/**
 * Process HTTP requests, parse first request header line and 
 * call processCommand with GET query string (everything after
 * the ? question mark in the URL).
 */
char*  httpServer() {
  EthernetClient client = server.available();
  if (client) {
    char sReturnCommand[32];
    int nCommandPos=-1;
    sReturnCommand[0] = '\0';
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        if ((c == '\n') || (c == ' ' && nCommandPos>-1)) {
          sReturnCommand[nCommandPos] = '\0';
          if (strcmp(sReturnCommand, "\0") == 0) {
            httpResponseHome(client);
          } else {
            processCommand(sReturnCommand);
            httpResponseRedirect(client);
          }
          break;
        }
        if (nCommandPos>-1) {
          sReturnCommand[nCommandPos++] = c;
        }
        if (c == '?' && nCommandPos == -1) {
          nCommandPos = 0;
        }
      }
      if (nCommandPos > 30) {
        httpResponse414(client);
        sReturnCommand[0] = '\0';
        break;
      }
    }
    if (nCommandPos!=-1) {
      sReturnCommand[nCommandPos] = '\0';
    }
    // give the web browser time to receive the data
    delay(1);
    client.stop();
    
    return sReturnCommand;
  }
  return '\0';
}

Используется следующее железо:

1) Arduino UNO

2) Ethernet шилд на W5100

Поведение скетча:

При наборе в адресной строке браузера указанного в скетче IP-адреса открывается страница с сылками в количестве 4 шт. При первом клике на каждую ссылку команда отрабатывается (наличие команды отслеживается осцилографом на соответствующем пине указанном в скетче). При повторном клике на те же ссылки ничего не происходит, причем не помогает ни ресет, ни выкл. питания. Помогает только смена IP в скетче, и то только 1 раз.

Отсюда следует вопрос: это так должно быть, или я дурак?

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

triada13 пишет:

Отсюда следует вопрос: это так должно быть, или я дурак?

категорически согласен!

JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

Кергуду алаверды!

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

JollyBiber пишет:

Кергуду алаверды!

ну ругайся. лучше в гугл напиши

triada13
Offline
Зарегистрирован: 04.01.2013

Puhlyaviy пишет:

triada13 пишет:

Отсюда следует вопрос: это так должно быть, или я дурак?

категорически согласен!

Очень хочется конкретики.

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

triada13 пишет:

Очень хочется конкретики.

выберите сами :)

но код вы вязли где то там, где вроде есть новая версия этого кода без багов.. если это новая версия. то наверно вам нужны нормаьные версии библиотек :)

triada13
Offline
Зарегистрирован: 04.01.2013

пока я ждал конкретики, выяснил что такое поведение скетча наблюдается только при работе с Хромом, в ИЕ все работает. Буду дальше пытаться учиться.

JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

А вот это лишнее! Требую чтобы Вы требовали написании скетчей только силами форумчан! Не поддавайтесь на провакации!

triada13
Offline
Зарегистрирован: 04.01.2013

А че разве так можно?

JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

Форум и создан ради того чтобы другие могли созидать не напрягаясь!

triada13
Offline
Зарегистрирован: 04.01.2013

Ну тогда напишите мне скетч для вумного дома, я правда и сам могу попробовать, но тут так не принято говорят, так что начинайте писать.

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

triada13 пишет:

Ну тогда напишите мне скетч для вумного дома, я правда и сам могу попробовать, но тут так не принято говорят, так что начинайте писать.

у вас уже есть глупый дом?

triada13
Offline
Зарегистрирован: 04.01.2013

Ну а как без него то? Зачем заводить умный дом не имея глупого? А как же равновесие в природе?

JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

Попробуте его набить вумной литературой под самую крышу.

triada13
Offline
Зарегистрирован: 04.01.2013

Пробовал, сбегает...

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

triada13 пишет:

Пробовал, сбегает...

заставляйте его читать.. пусть читает мануалы и прочее и прочее

triada13
Offline
Зарегистрирован: 04.01.2013

Так он читать не умеет, он же глупый.

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

triada13 пишет:

Так он читать не умеет, он же глупый.

ну тогда азбуку ему вдалбливайте и таблицу умножения..

triada13
Offline
Зарегистрирован: 04.01.2013

Пойду биту покупать.

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

triada13 пишет:

Помогает только смена IP в скетче, и то только 1 раз.

Отсюда следует вопрос: это так должно быть, или я дурак?

Одноразовые скетчи - это ночной кошмар ардуинщика... :) А размер пакета (mtu) в программе - какой стоит? Страница в один пакет помещается целиком?

triada13
Offline
Зарегистрирован: 04.01.2013

Andrey_Y_Ostanovsky а где это можно посмотреть? в скетче?

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

triada13 пишет:

Andrey_Y_Ostanovsky а где это можно посмотреть? в скетче?

попробуйте посмотреть большую советскую энциклопедию :)

triada13
Offline
Зарегистрирован: 04.01.2013

Ну как я ее посмотрю, она же большая, да и советов щас нету.

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

triada13 пишет:

Ну как я ее посмотрю, она же большая, да и советов щас нету.

ну если большая то нужно смотреть издалека, либо частями

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

triada13 пишет:

Andrey_Y_Ostanovsky а где это можно посмотреть? в скетче?

Обычно - в библиотеке. Только не в "Большой Советской", а в подключаемой к скетчу. :) Например у enc28j60 это #define BUFFER_SIZE 765, по-умолчанию там было что-то типа 350-400 и вся система периодически вешалась наглухо. Максимальный размер для тренспорта по обычной сети - 1472 байта, и лучше в него не упираться, т.к. фрагментацию (обработку icmp_need_frag) плата вряд ли сама умеет делать, а Вам на ее осознание не одна бутылка коньяка потребуется...

triada13
Offline
Зарегистрирован: 04.01.2013

Andrey_Y_Ostanovsky это оно?

#define TX_RX_MAX_BUF_SIZE 2048
#define TX_BUF 0x1100
#define RX_BUF (TX_BUF + TX_RX_MAX_BUF_SIZE)

#define TXBUF_BASE 0x4000
#define RXBUF_BASE 0x6000

 

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

пещера с ардуино

Probelzaelo
Offline
Зарегистрирован: 15.04.2011

triada13 пишет:
для вумного дома...

... тут так не принято говорят, так что начинайте писать.

Сходил попИсал, но чот дом не поумнел, дорогая передача, в чем дело?...

triada13 пишет:
пока я ждал конкретики,

Просто писать мало, нужна еще и конкретика?!

triada13 пишет:
выяснил что такое поведение скетча наблюдается только при работе с Хромом, в ИЕ все работает. Буду дальше пытаться учиться.
Таки разберись с хромом... может он считает что не надо обновлять страницы которые вот тоооко загружены? и потому ни чего не делает?

triada13
Offline
Зарегистрирован: 04.01.2013

Puhlyaviy пишет:

пещера с ардуино

Гыы, у меня хорьки такие пещерки роют, зачем мне Ардуину нагружать такой работой.

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

triada13 пишет:

Гыы, у меня хорьки такие пещерки роют, зачем мне Ардуину нагружать такой работой.

хорьков нужно наверно штук 100 что бы они вырыли вместительную пещеру на 3-4 детей.. да и теперь вот можно делать умную пещеру :)

triada13
Offline
Зарегистрирован: 04.01.2013

Puhlyaviy ну так за колличеством дело не станет, нас хореманьяков в мире ой как много.

triada13
Offline
Зарегистрирован: 04.01.2013

Люди добрые подскажите плиз, кто нибудь юзал сей девайс: 

Контроллер сенсорной кнопки AT42QT1012-TSHR

Если да то поделитесь впечатлениями, стоит ли оно того.

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

triada13 пишет:

Puhlyaviy ну так за колличеством дело не станет, нас хореманьяков в мире ой как много.

у меня у самого дома их 2 штуки тусят..

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

triada13 пишет:

Люди добрые подскажите плиз, кто нибудь юзал сей девайс: 

Контроллер сенсорной кнопки AT42QT1012-TSHR

Если да то поделитесь впечатлениями, стоит ли оно того.

вот скажи, зачем оно тебе?

triada13
Offline
Зарегистрирован: 04.01.2013

Puhlyaviy ооо наш товарисчь, у тебя кто пацаны или дефки? (это про хорьков).

а про Контроллер сенсорной кнопки: интересно же.

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

triada13 пишет:

Puhlyaviy ооо наш товарисчь, у тебя кто пацаны или дефки? (это про хорьков).

а про Контроллер сенсорной кнопки: интересно же.

адын самец и одна девка. а контролер оставь ты его нафиг.. ну вот не нада оно тебе.. к ардуине и так можно сенсорную кнопку прикрутить. без контролеров.. погугли

triada13
Offline
Зарегистрирован: 04.01.2013

Puhlyaviy и че теперь пусть пылятся в коробочке?

А у меня две дефки и пацан.

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

triada13 пишет:

Puhlyaviy и че теперь пусть пылятся в коробочке?

ну не знаю. смотря сколько их у тебя.. если много то попробуй из них мозаику выложить на стене..

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

triada13 пишет:

Andrey_Y_Ostanovsky это оно?

#define TX_RX_MAX_BUF_SIZE 2048

Многовато будет... Надо разбираться в самом коде: для чего этот буфер используется...

JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

И этот герой буду я!

Вот, для всех кому оно не чуждо: godville.net

 

цЫтаты:

 

13:18
Ненадолго прервал торговлю и выбежал на улицу, чтобы гордо пройтись по округе, демонстрируя амулет переселения в душ. Восхищённые зрители обильно ахали.

13:14
Торговец вдруг выпучил глаза и, не торгуясь, купил пропуск в пантеон за 346 золотых монет. Где тут ближайшая пивная?

13:13
Поспорил с торговцем на 165 монет, что подарю ему бидон дизеля. Выиграл.

13:10
Отпустили из лечебницы под подписку о невыезде. Пойду пешком.

13:10
Капал в ухо настойку шалфея.

13:05
Хорошо погрелся у очага инфекции. Даже в жар бросило.

13:03
С криком «Я только спросить!» пробился к врачам гильдии

JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

Кстати, а почему страница падала?

leshak
Offline
Зарегистрирован: 29.09.2011

JollyBiber пишет:

arduino.ua - русскоязычный ресурс :)

Кстати, по правилам .ua домена, зарегистрировать такой домен можно только будучи владельцем торговой марки "arduino" (или есть договор о передачи права собственности на торговую марку)

Тимур
Тимур аватар
Offline
Зарегистрирован: 30.04.2014

Поясните мне плиз за что даются балы  и для чего стрелочки в правом верхнем углу сообщения?

п.с. про балы догнал, это просто счётчик сообщений

Probelzaelo
Offline
Зарегистрирован: 15.04.2011

Тимур пишет:

Поясните мне плиз за что даются балы  и для чего стрелочки в правом верхнем углу сообщения?

п.с. про балы догнал, это просто счётчик сообщений

Стрелочки полный аналог "Лайк" на всяких ю трубах. просто рейтинг согласных и несогласных, если таковые имеются. У сильно популярных сообщений "появляются" цифирки ;))

Viktorrr
Offline
Зарегистрирован: 07.12.2013

Здравствуйте !

Помогите кто чем может :) !

подскажите как использовать кнопки и экран, вот в таком лсд шилде

http://www.mini-tech.com.ua/index.php?route=product/product&path=20_27&p...

желательно на каком либо примере, допустим вот на таком коде, надо чтоб показывало на экране длина импульса в микросекундах, длина паузы, и чтоб можно было менять значение delayMicroseconds кнопками. как такое сделать, покажите пожалуйста!

void setup() {               
pinMode(3, OUTPUT);
}
void loop() {
digitalWrite(3, HIGH);
delayMicroseconds(1000);
digitalWrite(3, LOW);  
delayMicroseconds(1000);      
}

Probelzaelo
Offline
Зарегистрирован: 15.04.2011

Viktorrr пишет:
подскажите как использовать кнопки и экран, вот в таком лсд шилде

http://www.mini-tech.com.ua/index.php?route=product/product&path=20_27&product_id=57

желательно на каком либо примере, допустим вот на таком коде, надо чтоб показывало на экране длина импульса в микросекундах, длина паузы, и чтоб можно было менять значение delayMicroseconds кнопками. как такое сделать, покажите пожалуйста!

Для использования данного дисплея потребуется либо писать программу - обработчик дисплея.

Либо просто подключить библиотеку LiquidCrystal:

#include <LiquidCrystal.h>

загляните в папочку Disk:\arduino***\libraries\LiquidCrystal\examples

там примеры использования в виде скетчей, начни с привычного HelloWorld ))))

Главное разобраться как подключен дисплей и в правильной последовательности перечислить пины

// initialize the library with the numbers of the interface pins
#include <LiquidCrystal.h> // Подключение библиотек
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); // Инициализация LCD с указанием пинов

Далее не забываем включить строчку в

void setup()
{
 lcd.begin(16, 2); // Старт библиотеки. Указанием количества символов и строк 

Это обьясняем что у нашего ЖКИ 2 строки по 16 символов в каждой.

Вывод на Экран точно так же как в serial порт

 // устанавливаем позицию для вывода 
lcd.setCursor(0,0);  //  символ(колонка) 0  в строке 0

//Далее вывод на дисплей символов 
 lcd.print("Freq: ");

 lcd.setCursor(6,0);  // Символ 6 в строке 0
 lcd.print("           ");  // в данном случае зачистка предыдущего значения

 lcd.setCursor(6,0);
 lcd.print(freq);   // выводим новое значение переменной

и так далее

А здесь, судя по всему практически готовый скетч почти для вашей затеи, за исключением того, что там задают частоту для внешнего устройства а вы хотите задавать непосредственно параметры собственного сигнала.

там же задействованы и кнопки.