Arduino и Ethernet Shield W5100
|
|
|
Администратор
2015-12-08 16:13 #1
Arduino и Ethernet Shield W5100 обсуждение цикла статей.
Часть 1 - Начало проекта. Часть 2 - Добавлено динамическое обновление данных и работа с SD картой. Часть 3 - Добавлено оформление страницы. Часть 4 - Добавлено управление реле. Часть 5 - Добавлен регулятор мощности нагрузки в виде ползунка. NEW!!! Часть 6 - Реализация включения реле по таймеру
Профиль
|
|
|
Администратор
2017-01-05 01:34 #286
Думаю будет интересно посмотреть людям на исходники Вашего решения. Могу оформить внутри статьи чтобы не потерялось на страницах форума.
Профиль
|
|
|
samuray
2017-01-05 20:34 #287
Цитата samuray ( ) МОДУЛЬ RTC I2C ЗАМЕНИЛ НА "Модуль часов с автономным питанием DS-1302" ПРОДОЛЖЕНИЕ: ДАЛЕЕ ВЕБ-СТРАНИЧКА ТРАНСФОРМИРОВАЛОСЬ В СМ. ПРИЛОЖЕНИЕ.
ОФОРМЛЮ СКЕТЧ И ФАЙЛЫ ВЕБ-СТРАНИЦЫ И ............ ВООБЩЕМ ЖДИТЕ ПРОДОЛЖЕНИЯ
Сообщение отредактировал samuray - Четверг, 2017-01-05, 21:28
Профиль
|
|
|
|
Администратор
2017-01-09 11:56 #289
gawmer, договорились с samuray сделать отдельной статьей. Уже сбросил мне всю информацию и на днях будет готова.
Профиль
|
|
|
|
sas_irk
2017-01-13 07:57 #291
Никак не могу сделать т.н. "эффект кнопки", то есть чтобы выбранное реле включилось и через dalay(1000) отключилось. Всё казалось бы получается, но W5100 запоминает изменения сделанные мышью и при следующем подключении браузером релюшки начинают хлопать как бог на душу положит. Понимаю что надо кроме записи в порты реле чего-то отправлять и на W5100, а вот что не знаю...
Профиль
|
|
|
Администратор
2017-01-13 09:23 #292
sas_irk, подробнее опишите вашу проблему. Не получается собрать по статье или другое устройство делаете?
Профиль
|
|
|
Гость
2017-01-13 09:29 #293
По статье все получается, хотелось бы чтобы реле не фиксировалось в замкнутом состоянии, а возвращалось в разомкнутое. Хочу сделать дистанционный reset серверов, запараллелив серверные кнопки к реле ардуино.
Профиль
|
|
|
|
lonerko
2017-01-25 11:09 #295
Спасибо Вам за проделанную роботу. Использую 16-и канальное реле. Немного изменив код все работает без нареканий. А можно ли добавить еще 2 кнопки для управления шаговым двигателем (например для открытия окна). При нажатии первой вращение по часовой, другой - против, на определенное расстояние.
В index.htm:
Код <button type="button" class="button_disabled" onClick="onClick(41)">Двигатель+</button> <button type="button" class="button_disabled" onClick="onClick(42)">Двигатель-</button>
В саму прошивку:
Код #include<AccelStepper.h> #define HALFSTEP 8 #define motorPin1 42 #define motorPin2 44 #define motorPin3 46 #define motorPin4 48 AccelStepper stepper01(HALFSTEP, motorPin1, motorPin3, motorPin2, motorPin4);
//секция setup stepper01.setMaxSpeed(300.0); stepper01.setAcceleration(10.0); stepper01.setSpeed(50); stepper01.move(300);
//секция loop } else if (StrContains(HTTP_req, "pin=41")) { stepper1.move(200); stepper1.run();
} else if (StrContains(HTTP_req, "pin=42")) { stepper1.move(-200); stepper1.run(); } Как я понимаю проблема в последней секции "loop", побывал разные условия добавлять но результата не добился. Как-то можно это реализовать?
Профиль
|
|
|
|
MacSIM
2017-01-25 23:49 #297
Цитата lonerko ( ) побывал разные условия добавлять но результата не добился добейтесь сначала работы двигателя без веб страницы, как вариант посылка команд через сериалмонитор. когда заработает прикрутите веб.
Профиль
|
|
|
lonerko
2017-01-27 12:31 #298
MacSIM, Стандартный (минимальный) код, что бы крутился то в одну сторону то в другую работает нормально. Изменяю цикл работы на другое действия - тоже работает. Если использую при нажатии кнопки этот же или другой код - работать отказывается.
Код #include<AccelStepper.h>
#define HALFSTEP 8
// Определение пинов для управления двигателем #define motorPin1 3 // IN1 на 1-м драйвере ULN2003 #define motorPin2 4 // IN2 на 1-м драйвере ULN2003 #define motorPin3 5 // IN3 на 1-м драйвере ULN2003 #define motorPin4 6 // IN4 на 1-м драйвере ULN2003
// Инициализируемся с последовательностью выводов IN1-IN3-IN2-IN4 // для использования AccelStepper с 28BYJ-48 AccelStepper stepper1(HALFSTEP, motorPin1, motorPin3, motorPin2, motorPin4);
void setup(){ stepper1.setMaxSpeed(1000.0); stepper1.setAcceleration(100.0); stepper1.setSpeed(200); stepper1.moveTo(20000); }
void loop(){ // Изменяем направление, если шаговик достигает заданного положения if(stepper1.distanceToGo()==0) stepper1.moveTo(-stepper1.currentPosition()); stepper1.run();
Профиль
|
|
|
shum
2017-02-15 17:53 #299
Уважаемые ! Спасибо за ваш проэкт ! Хочу внести свои копейки. 1. Скрестил Ваш 5-ый урок ( Добавлен регулятор мощности нагрузки в виде ползунка.) с FLProg . 2. Внес изменения в код для использования стандартных библиотек Arduino, т.е. вместо вашей #include <dht11.h> ипользую <DHT.h> и <DHT_U.h>
Это блекчает добавления кода из FLprog. Web код не трогал , только код Arduino. Плата mega 2560 но пины все ваши.
Профиль
|
|
|
Max_dm
2017-03-02 19:12 #300
Цитата AspiD ( ) данные грузятся динамически без обновления странички. происходит это так: скрипт в браузере каждую секунду отправляет запрос серверу. сервер собирает данные с датчиков и формирует строку ответа. затем строка отправляется по сети в браузер клиента. и скрипт эту строку разбирает на показания отдельных датчиков и выводит на страничку.вот этот код формирует ответную строку: Код if (StrContains(HTTP_req, "ajax_flame")) { sendBaseAnswer(client); int smoke_gas = 0; //пин на котором подключен MQ-2 int sensorReading = analogRead(smoke_gas); int chk; chk = DHT.read(DHT11_PIN); client.print(sensorReading); client.print(":"); client.print(DHT.temperature); client.print(":"); client.print(DHT.humidity); client.print(":"); client.print((digitalRead(2)) ? "1" : "0"); client.print(":"); client.print((digitalRead(3)) ? "1" : "0"); client.print(":"); client.print((digitalRead(5)) ? "1" : "0"); client.print(":"); client.print((digitalRead(6)) ? "1" : "0"); client.print(":"); client.print(pin5); } а вот этот эту строку разбирает и выводит на сайт: Код if (this.responseText != null) { var arrayOfStrings = this.responseText.split(":"); document.getElementById("flame_txt").innerHTML = arrayOfStrings[0]; document.getElementById("temp_txt").innerHTML = arrayOfStrings[1]; document.getElementById("humid_txt").innerHTML = arrayOfStrings[2]; for(var i = 1 ; i < 5 ; i++) if(arrayOfStrings[2+i] == "1") document.getElementById("led_"+i).setAttribute("class","button_enabled"); else document.getElementById("led_"+i).setAttribute("class","button_disabled"); } параметры передаются через ":" порядок параметров один и тот же А можно подробнее прокомментировать запрос-ответ?
Профиль
|
|