Перейти к содержанию
VALKNUT

Ардуино в помощь аквариуму

Рекомендуемые сообщения

12 часов назад, Haaans сказал(а):

Serial же – СОМ порт. Псевдо СОМ порт.

Ну вот про это нигде нет. Только выносной дисплей. 

12 часов назад, Haaans сказал(а):

Он Arduino IDE его не скомпилирует. Структура не соответствует 

А что код должен делать?

Это тестовая моргалка на таймере. Просто это "правильная" технология на SDK.  Но непонятно кто на чем её запускает, полно кода в интернете, который нерабочий, нафига кладут??))

На модули у меня не обругивается.

Поделиться сообщением


Ссылка на сообщение
13 минут назад, Lx671 сказал(а):

Ну вот про это нигде нет. Только выносной дисплей. 

https://alexgyver.ru/lessons/serial/
 

14 минут назад, Lx671 сказал(а):

Это тестовая моргалка на таймере. Просто это "правильная" технология на SDK.  Но непонятно кто на чем её запускает, полно кода в интернете, который нерабочий, нафига кладут??))

Примеры в arduino ide смотрели?

Поделиться сообщением


Ссылка на сообщение
25 минут назад, Haaans сказал(а):

Примеры в arduino ide смотрели?

Я их даже просканировал внутри - только кроме delay ничего...

..Ну я нашел пример с нормальным таймером.  Из цикла Loop выдергивает, меняет переменную, все как надо... 

По другому называется - модуль - Ticker.h

Про монитор понял, поищу у себя))

Поделиться сообщением


Ссылка на сообщение
6 минут назад, Lx671 сказал(а):

Я их даже просканировал внутри - только кроме delay ничего...

..Ну я нашел пример с нормальным таймером.  Из цикла Loop выдергивает, меняет переменную, все как надо... 

По другому называется - модуль - Ticker.h

Про монитор понял, поищу у себя))

Отлистайте тему. Наверно пару страниц. Есть моргание без delay

Поделиться сообщением


Ссылка на сообщение
1 час назад, Haaans сказал(а):

Есть моргание без delay

(BlinkWithoutDelay) - это не оно. Здесь Просто отсчет миллисекунд и вращение в том-же loop.

 

Поделиться сообщением


Ссылка на сообщение
2 часов назад, Haaans сказал(а):

Есть моргание без delay

Вот то что должно быть - 

#include <Ticker.h>
 
uint8_t blink_loop = 0;
uint8_t blink_mode = 0;
uint8_t modes_count = 0;
int cf=0;
 
Ticker blinker;
 
void timerIsr()
{
//if( blink_mode & 1<<(blink_loop&0x07) ) digitalWrite(LED_BUILTIN, HIGH);
//else digitalWrite(LED_BUILTIN, LOW);
if(cf>290){blink_loop=0; cf=0;}
analogWrite(LED_BUILTIN, cf);
blink_loop++;
cf = cf+1;
}
 
void setup() {
pinMode(LED_BUILTIN,OUTPUT);
blink_mode = 0B00000000;
blinker.attach(0.15, timerIsr);
}
 
void loop() {
digitalWrite(LED_BUILTIN, LOW);
delay(600);
//blink_mode = 0B00001111; //Мигание по 0.5 сек
//delay(200);
//blink_mode = 0B00000001; //Короткая вспышка раз в секунду
//delay(200);
Serial.begin(115200);
Serial.println("blink_loop = " + String(blink_loop)+ " cf = "+String(cf));
/*blink_mode = 0B00000101; //Две короткие вспышки раз в секунду
delay(1000);
blink_mode = 0B00010101; //Три короткие вспышки раз в секунду
delay(1000);
blink_mode = 0B01010101; //Частые короткие вспышки (4 раза в секунду)
delay(1000);*/
}
Здесь увидите, как в реальности работает шим. Имею ввиду яркость относительно процентов.
Это на led который на борту.

Поделиться сообщением


Ссылка на сообщение
В 24.10.2024 - 10:29, Haaans сказал(а):

Отлистайте тему.

У вас на контроллере случайно нет пинов S1, S2, S3, S4 ?? На них кнопки не вешали?

Поделиться сообщением


Ссылка на сообщение
3 часов назад, Lx671 сказал(а):

У вас на контроллере случайно нет пинов S1, S2, S3, S4 ?? На них кнопки не вешали?

Нет. Таких пинов нет. Все точно так как выше давал ссылку на схему 

Поделиться сообщением


Ссылка на сообщение

12 часов назад, Haaans сказал(а):

Таких пинов нет.

А кнопки какие-то пристраивали? Чтобы свет включить, если надо??

АЦП у себя нашел - 10 бит, как и на графиках-инструкции по краям не сразу параметр меняет, но для аналогового анализа пойдет))

Поделиться сообщением


Ссылка на сообщение
5 часов назад, Lx671 сказал(а):

А кнопки какие-то пристраивали? Чтобы свет включить, если надо??

Физические кнопки еще не делал. Кнопки в программе на смартфоне организовал, но то уже другое. Вы читали  информацию на сайте Alex Gyver?

@Lx671 , покажите плату.

Поделиться сообщением


Ссылка на сообщение
2 часов назад, Haaans сказал(а):

покажите плату.

И у Гувера читал и не только...))

Даже теперь знаю, что у меня ядро старой модификации)) Потому что с новой есть отличия в командах прерываний.

На пин D3 получилось приклеить прерывание, одновременно с таймером работает, приоритет по идее ниже таймера, но тоже все четко, из delay дергает, перенные внутри меняет...  Про S1... не могу найти ни где...

Колбаса черная - это точный переменник - по АЦП меняет яркость на внеш светодиоде (для проверки).

DSC_0001.JPG

DSC_0002.JPG

Поделиться сообщением


Ссылка на сообщение
2 минут назад, Lx671 сказал(а):

Про S1... не могу найти ни где..

Под S1 что понимаете?

7 минут назад, Lx671 сказал(а):

И у Гувера читал и не только...))

Даже теперь знаю, что у меня ядро старой модификации)) Потому что с новой есть отличия в командах прерываний.

На пин D3 получилось приклеить прерывание, одновременно с таймером работает, приоритет по идее ниже таймера, но тоже все четко, из delay дергает, перенные внутри меняет...  Про S1... не могу найти ни где...

Колбаса черная - это точный переменник - по АЦП меняет яркость на внеш светодиоде (для проверки).

DSC_0001.JPG

DSC_0002.JPG

А есть фото снизу?

Ваша плата отличается от той что у меня. И судя по фото на сайте у Вас не wemos

Вот тут пины описаны. Сильно не вчитывался. Ссылка

Поделиться сообщением


Ссылка на сообщение
1 час назад, Haaans сказал(а):

Вот тут пины описаны. Сильно не вчитывался. Ссылка

Ну на вашей ссылке эти пины SD1 SD2...  Это чуть другая модификация, другой чип USB. Про пины рисуют, но нет примеров обращения. А просто подать gnd - все stop и потом перезапуск. ХЗ короче. На Dx.. подать gnd можно, если ничего не описано, ничего не будет.

 

1 час назад, Haaans сказал(а):

Под S1 что понимаете?

У меня на фотке разве не видно?

ESP8266 Wi-Fi NodeMcu v3 контроллер плата CH340, Type-C - её название.

Поделиться сообщением


Ссылка на сообщение
4 часов назад, Lx671 сказал(а):

А просто подать gnd - все stop и потом перезапуск. ХЗ короче.

По опыту на своей плате есть пины, при подаче сигнала на которые происходит перезапуск либо при старте на них неправильный сигнал. 
Покажите код. 

Поделиться сообщением


Ссылка на сообщение
8 часов назад, Haaans сказал(а):

Покажите код.

Только здесь часть кода лишняя, я не "причесывал")) Код полностью рабочий.

Из разных мест и некоторые инструкции конкретно под данную версию.  Диоды на D6-7-8.  Движ резист на A0...

Кнопка на D3, естественно прога видит частично дробления - пока не отрабатывал.

Если запустите, эта строка как будет у вас работать? - "in_d3 = digitalRead(0);"

#include <Ticker.h>

uint8_t blink_loop = 0;
uint8_t blink_mode = 0;
uint8_t modes_count = 0;
uint8_t led_a = 13;
volatile int cf=0;
volatile bool int10a = false;
const int analogInPin = A0;
int sensorValue = 0;
int in_d3;

Ticker blinker;

void timerIsr()
{
//if( blink_mode & 1<<(blink_loop&0x07) ) digitalWrite(led_a, HIGH);
//else digitalWrite(led_a, LOW);
if(cf>290){blink_loop=0; cf=0;}
blink_loop++;
cf = cf+1;
//Serial.println("sensorValue = " + String(sensorValue)+ " cf = "+String(cf));
}

struct Button {
  const uint8_t PIN;
  uint32_t numberKeyPresses;
  bool pressed;
};

Button button1 = {'D3', 0, false};

ICACHE_RAM_ATTR void r_Isr() {
  int10a = true;
 }

void setup() {
pinMode(button1.PIN, INPUT_PULLUP);
attachInterrupt(0, r_Isr, FALLING);//FALLING  RISING  D3-IRQ0
//pinMode(led_a,OUTPUT);
//pinMode(12,OUTPUT);
blink_mode = 0B00000000;
blinker.attach(0.01, timerIsr);
Serial.begin(115200);
}

void loop() {
sensorValue = analogRead(analogInPin);
//digitalWrite(led_a, LOW);
//delay(1000);
analogWrite(led_a, cf);
analogWrite(12, 255-cf);
analogWrite(15, sensorValue/4);
if (int10a){ analogWrite(15, 224);
Serial.println("sensorValue = " + String(sensorValue)+ " cf = "+String(cf));
int10a = false;}
in_d3 = digitalRead(0);
Serial.println("D3="+D3);
//blink_mode = 0B00001111; //Мигание по 0.5 сек
delay(500);
//blink_mode = 0B00000001; //Короткая вспышка раз в секунду
//delay(200);
/*blink_mode = 0B00000101; //Две короткие вспышки раз в секунду
delay(1000);
blink_mode = 0B00010101; //Три короткие вспышки раз в секунду
delay(1000);
blink_mode = 0B01010101; //Частые короткие вспышки (4 раза в секунду)
delay(1000);*/
}
 

Поделиться сообщением


Ссылка на сообщение
В 31.10.2024 - 07:16, Lx671 сказал(а):

Если запустите, эта строка как будет у вас работать? - "in_d3 = digitalRead(0);"

при проверке компиляции ругнулся вот так.

аrduinoIDE-unsaved2024101-8332-1bws261.8bv1\sketch_nov1a\sketch_nov1a.ino:31:19: warning: multi-character character constant [-Wmultichar]
   31 | Button button1 = {'D3', 0, false};

Не понимаю как вы хотите проверить работу этой строки.

Поделиться сообщением


Ссылка на сообщение
17 часов назад, Haaans сказал(а):

при проверке компиляции ругнулся вот так.

У вас должна быть такая-же команда проверки состояния пина (для кнопки). У меня переменную не мог увидеть.

Я нашел прикол в чем. Serial.println("D3="+String(in_d3)); Все присваивается, выводить нужно такой командой.

Поделиться сообщением


Ссылка на сообщение
3 часов назад, Lx671 сказал(а):

У вас должна быть такая-же команда проверки состояния пина (для кнопки). У меня переменную не мог увидеть.

Я нашел прикол в чем. Serial.println("D3="+String(in_d3)); Все присваивается, выводить нужно такой командой.

кнопки нет. проверить нечем.

Поделиться сообщением


Ссылка на сообщение

2 часов назад, Haaans сказал(а):

кнопки нет.

В общем, если захотите доп-функции с кнопки на устройстве, все нормально работает и можно отсчитывать время нажатия и соответственно разные функции на короткое и длинное нажатие... Основная прога при этом крутится без изменений.

Поделиться сообщением


Ссылка на сообщение
3 часов назад, Lx671 сказал(а):

В общем, если захотите доп-функции с кнопки на устройстве, все нормально работает и можно отсчитывать время нажатия и соответственно разные функции на короткое и длинное нажатие... Основная прога при этом крутится без изменений.

Хорошо. Благодарю 

Поделиться сообщением


Ссылка на сообщение
17 часов назад, AlexLi сказал(а):

куда Игоря дели?

Ну он наверное со стороны наблюдает))

Поделиться сообщением


Ссылка на сообщение
18 часов назад, AlexLi сказал(а):

А вы куда Игоря дели?

Соскучился? 
 

По сути сейчас практика нужна.
1. Написал.

2. Проверил.

3. Получил ошибки.
4. Исправил.

5. п 2. 
6. Когда ошибки перестали сыпаться.

7. Собрал тест вариант.
8. п 2.

9. Пустил кривое в работу. Чешешь репу и исправляешь ошибки исходя из эксплуатации.

Поделиться сообщением


Ссылка на сообщение

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

Если у кого-то найдется время скопировать себе (https://disk.yandex.ru/d/fgm-e68t-ZfnhA) на телефон этот каталог (4мб) и запустить audio_sound.htm из любого браузера. Должны при нажатии слышны кусочки музык.

Должен получиться файл audio_sound.htm и рядом каталог с файлами - "audio_files"

У меня кнопочный)) Если получится, то для данной связи можно самим писать web-приложения, которые работают везде и без установки.

C 1-го esp8266 может получиться до 8 таймеров с условиями. Типа не только температуру мерить и свет,  но и залить воду до определенного уровня, выкл грелку на ночь, выключить помпу, если упал уровень воды (типа протекло...), сигнал аварии, если помпа вырубилась.... 

Поделиться сообщением


Ссылка на сообщение
1 час назад, Haaans сказал(а):

Тестировали?

Звуки для команд делать сложно и долго. Принял кодовое слово до 4-х импульсов, но команд (не 16) получается до фига. Кодировка двойная. Импульсы подгонять долго, но тогда ошибок нет. 

...В общем новый сигнал ИКМ получился))) И на 1 планшет или телефон, можно повесить несколько таких контроллеров.

Поделиться сообщением


Ссылка на сообщение
1 час назад, Lx671 сказал(а):

Звуки для команд делать сложно и долго. Принял кодовое слово до 4-х импульсов, но команд (не 16) получается до фига. Кодировка двойная. Импульсы подгонять долго, но тогда ошибок нет. 

...В общем новый сигнал ИКМ получился))) И на 1 планшет или телефон, можно повесить несколько таких контроллеров.

Сложно 

Поделиться сообщением


Ссылка на сообщение

В 12.11.2024 - 19:21, Haaans сказал(а):

Сложно 

Случайно не проверяли, какие ноги работают на ШИМ? Не очень с описанием сходится.

Поделиться сообщением


Ссылка на сообщение
5 часов назад, Lx671 сказал(а):

Случайно не проверяли, какие ноги работают на ШИМ? Не очень с описанием сходится.

Пруф у меня считай все пины умеют в шим

Поделиться сообщением


Ссылка на сообщение
15 часов назад, Haaans сказал(а):

все пины умеют в шим

Вот тоже самое...  Твердотельные реле, которые с оптронами, на ШИМ пробовали?

Поделиться сообщением


Ссылка на сообщение
43 минут назад, Lx671 сказал(а):

Вот тоже самое...  Твердотельные реле, которые с оптронами, на ШИМ пробовали?

Лежит, но еще не пробовал. Только оно (реле) не отреагирует на ШИМ у него (то что у меня) только ВКЛ/ВЫКЛ. Именно на ШИМ отдельный модуль и он весь диапазон может 

Поделиться сообщением


Ссылка на сообщение
1 час назад, Haaans сказал(а):

Именно на ШИМ отдельный модуль

А что за отдельный модуль? То что в интернете - это обычные контактные реле с оптическими переходами за бешеные деньги))

Сам придумать и сделать могу, но может штатное есть...

Поделиться сообщением


Ссылка на сообщение

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

×