#2 Re: Програмування Arduino » Библиотеки ESP8266 » 2017-06-12 21:12:05

dictor пише:
condensator89 пише:

https://github.com/esp8266/Arduino

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

http://arduino.ru/forum/obshchii/ne-mogu-dobavit-v-menedzhere-plat-ide-platy-s-esp8266
http://arduino.ru/forum/programmirovanie/arduino-i-esp8266
http://arduino.ru/forum/apparatnye-voprosy/polzuet-li-kto-wifi-moduli-esp8266-podelites-vpechatleniyami
http://arduino.ru/forum/apparatnye-voprosy/vneshnyaya-antenna-k-esp8266
http://arduino.ru/forum/apparatnye-voprosy/esp8266-v3-c-mikro-usb-pomogite-ozhivit
http://arduino.ru/forum/obshchii/esp8266-lua-loader

#4 Re: Програмування Arduino » Ищу специалиста в Скетче к Ардуино. и настройке. » 2017-06-12 19:12:18

Вячеслав Азаров пише:

Пропорционально Интегрально Дифференциальный (ПИД) регулятор описывается теорией автоматического управления и регулирования. Это простейший линейный регулятор, для инерционной нагрузки, реализующий оптимальное управление.

И его можно собрать:

- из механических компонентов
- из аналоговых электронных
- из дискретной электромеханической или электронной логики

#5 Re: Програмування Arduino » Ищу специалиста в Скетче к Ардуино. и настройке. » 2017-06-12 18:57:03

Вячеслав Азаров пише:

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

Да, без электронных в разы сложнее и не все возможно реализовать в премлемом виде.
Ничто не мешает инженеру собрать конечный автомат или процессор из дискретных электронных или электромеханических (малонадежная трещотка) вентилей :-)

#6 Re: Апаратні питання » подключение реле к електромагнитному клапану » 2017-06-12 18:48:56

Bodya пише:

я хотел уточнить!мне покдлючать к нормально-замкнутым на реле?

Бодя, вы сегодня пили кисель ?

Если поставлена цель замкнуть исполнительную цепь в реле с Н.Р. контактами, то нужно подать напряжение на обмотку.
Н.З. используют  если хотят, чтобы исполнительная цепь осталась замкнутой при пропадании управляющего напряжения, гибели ардуины  и тд.

#7 Re: Програмування Arduino » Ищу специалиста в Скетче к Ардуино. и настройке. » 2017-06-12 18:37:38

Вячеслав Азаров пише:

Давно, еще в юности, работая наладчиком, я ремонтировал и настраивал термостаты диффузионных печей, при 1400С точность 0.5С. Такое без ПИДа не получается. Регуляторы тогда были без всяких микрокомпьютеров. Вспомнилось.

Механический термостат он и есть ПИД-регулятор, но у него, как правило, проблема с диференциальной (оценка тенденции) составляющей .

Если нет микроконтроллера, регулятор температуры с любой логикой можно сделать хоть на столбике градусника, триггерах из ТТЛ или реле и фотодиодах :-)
Будет винтажный регулятор - конечный автомат.

#8 Re: Програмування Arduino » Ищу специалиста в Скетче к Ардуино. и настройке. » 2017-06-12 18:20:27

Вячеслав Азаров пише:

Когда фермер руками форточку открывает и дрова в печку подкладывает, вот вам и весь ПИД!  smile

Простейший бытовой ПИД-регулятор: человек решил помыться в теплом душе при скачках давления холодной и горячей воды и без механического термостата-смесителя.

#9 Re: Апаратні питання » подключение реле к електромагнитному клапану » 2017-06-12 18:15:48

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

#10 Re: Програмування Arduino » Ищу специалиста в Скетче к Ардуино. и настройке. » 2017-06-12 18:11:47

Вячеслав Азаров пише:
condensator89 пише:

Окирительный научный труд   буклет за авторством доцента.

Такая нынче наука у нас ...  ардуиновая.

Он там ищщо буклет разбавил Овеновскими ПИД-регуляторами

#11 Re: Програмування Arduino » Ищу специалиста в Скетче к Ардуино. и настройке. » 2017-06-12 17:38:16

Вячеслав Азаров пише:

Вот один пример творчества официальной науки.  http://uhbdp.org/images/uhbdp/pdf/2016.12.09_Energodar/02.2_Kashkarev.pdf

Окирительный научный труд   буклет за авторством доцента.

#12 Re: Програмування Arduino » Ищу специалиста в Скетче к Ардуино. и настройке. » 2017-06-12 17:33:58

Вячеслав Азаров пише:

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

Заказной проект стоит дорого не только на западном рынке. А некоторые "заказчики" надеются мыслить категориями "100 долларов" - купите на них всё и ни в чем  себе не отказывайте :-)

#13 Re: Програмування Arduino » NRF24 не работает при отправке редких пакетов, а с частыми нет проблем » 2017-06-12 12:38:54

Вячеслав Азаров пише:

Возможно она выключается только после завершения передачи буферов. А поскольку они все время заполняются то "спать некогда".  smile

имхо не так, ибо

1) Функция write() дожидается окончания передачи и и чистит за собой буфер передачи , и только после этого возвращает управление вызывающей программе.
2) Есть еще  функция startWrite(), которую использует write(), она начинает передачу и возвращает управление вызывающей программе не дожидаясь завершения.

#14 Re: Програмування Arduino » NRF24 не работает при отправке редких пакетов, а с частыми нет проблем » 2017-06-12 12:12:38

Вячеслав Азаров пише:

Может быть она засыпает, нечаянно?   wink  Я серьезно. Как иначе объяснить отсутствие реакции на ре-инициализацию.

Вячеслав Азаров, спасибо.
Ваша догадка насчет спячки подтвердилась во всем кроме "нечаянно":  в конце функции write() обнаружен вызов  powerDown();

Однако , в описании библиотеки сказано: 

void RF24::powerDown ( void )
Enter low-power mode.
To return to normal power mode, either write() some data or startListening, or powerUp().

, то есть первый же вызов write() должен вывести из спячки. В реальности этого не происходит, поэтому перед вызовом  write() добавил  powerUp() и проблема исчезла;

Осталось понять странный глюк:  почему после выполнения powerDown() при следующем без задержки вызове write() проблема не проявлялась.  Как Вы думаете?

#15 Re: Програмування Arduino » NRF24 не работает при отправке редких пакетов, а с частыми нет проблем » 2017-06-11 19:56:38

Восстанавливается только для передачи первого пакета, а после delay или любой задержки, в том числе  на выполнение следующего кода,  опять рушится. Управляю опосредованно через библиотеку функциями "высокого" уровня.
Библиотек RF24 на github великое множество и ХЗ какая оригинальная и сопровождаемая авторами.

Вам доводилось работать с NRF24L01+?

#16 Re: Програмування Arduino » NRF24 не работает при отправке редких пакетов, а с частыми нет проблем » 2017-06-11 16:05:00

Дополню: основная беда в том, что даже если отправляьб пакеты непрерывно, то при возникновении случайной задержки в программе TX, NRF теряет работоспособность sad

#17 Re: Програмування Arduino » nrf24L01+ Помогите в коде прописать защиту от пропадания связи. » 2017-06-11 13:45:50

VS пише:

Если возможно подскажите, как можно сделать, чтоб при пропадании (сбое) связи в моем скетче пины 6,7,8 принимали значение HIGH.

Очень просто:

1) в конце setup() установи значение таймаута на отсутствие приема: mytimeout=500; //в милисекундах
и last_time=0; 
2) в основной программе запоминай время последнего принятого пакета last_time=millis();
3) вычисли разницу времени между last_time и текущим временем dt=millis()-last_time;
4) if(dt >= mytimeout) { /* отключи то, что хотел отключить*/;;; } else;

5) помни про возможное переполнение счетчика у функции millis()

#18 Програмування Arduino » NRF24 не работает при отправке редких пакетов, а с частыми нет проблем » 2017-06-11 13:28:06

condensator89
відповідей: 4

Прошу помощи - NRF24L01+  перестает работать если отправлять пакеты редко и уверенно работает  если их отправлять непрерывно без задержки.

В приведенном ниже примере я отключил подтверждение приема setAutoAck(false) на тот случай, если согласившийся  протестировать не имеет вторую  NRF и вторую ардуину.
Включение подтверждение приема setAutoAck(true) приведет к необходимости задействовать вторую ардуину и вторую NRF, но ничего не меняет.

Как только включаю задержку >= 15 мсек   delay(100) ... delay(1000) , перестает работать передача, это видно по статусу возврата  функции write(buf,32)   через свечение RED LED и также видно со стороны приемника. 
Тактовая частота контроллера 16 Мгц.

Повторная инициализация NRF не помогает.
Причину найти не могу, прошу помощи  форумчан ....

// file TX_PING_TEST. INO 

#include "nRF24L01.h"
#include "SPI.h"
#include "RF24.h"
const uint64_t pipe = 'ABCDEFG';
uint8_t  buf[32];

/* 
схема соединений для Mega2560 и Uno:
GND  -> GND
VCC  -> +3,3V
MISO -> MISO
MOSI -> MOSI
SCK  -> SCK
IRQ  не подключен
CE   -> CE_PIN  см для UNO или Mega
SS   -> SS_PIN  см для UNO или Mega
*/

// для Mega2560:
RF24 RA(49,53); // CE_PIN,SS_PIN
//для Uno:
// RF24 RA(8,10); // CE_PIN,SS_PIN


void setup(void)
{  
init_leds();   
init_TX(); 
int i; for(i=0; i<32; i++) {buf[i]=0xFF;}
} 

void loop(void)
{
  switch(RA.write(buf,32))
     { case false: digitalWrite(14,HIGH); digitalWrite(16,LOW); break;
       case true:  digitalWrite(16,HIGH); digitalWrite(14,LOW); break;
     }
      delay(1); // задержка в 1 мсек не влияет на качество работы
     
//    delay(100);  //как только включаю задержку > 15-20 мсек , перестает работать передача,
//   это видно по статусу возврата  RA.write(buf,32)   через RED LED и также со стороны приемника 
//    init2_TX();  // после включения delay() переинициализация NRF не помогает...
}

void init_TX()
{  
  RA.begin();
  init2_TX();
}

void init2_TX()
{  
  
  //RA.setAutoAck(true);
  RA.setAutoAck(false);
  RA.setDataRate(RF24_1MBPS);
  RA.setCRCLength(RF24_CRC_16);
  RA.setChannel(66);
  RA.openWritingPipe(pipe);
  //RA.printDetails();
  
}

void init_leds()
{
  pinMode(14, OUTPUT);  
  pinMode(15, OUTPUT);digitalWrite(15,LOW);// GND для LED, использую один трехногий GREEN+RED светодиод, его
  //средний вывод общий минус (катод), а два крайние  аноды (положительные) для   GREEN  и RED
  
  pinMode(16, OUTPUT);
  // проверка  LED при старте
  digitalWrite(16,HIGH); delay(20); digitalWrite(16,LOW); delay(100); digitalWrite(16,HIGH); delay(20); digitalWrite(16,LOW);delay(500); 
  digitalWrite(14,HIGH); delay(20); digitalWrite(14,LOW); delay(100); digitalWrite(14,HIGH); delay(20); digitalWrite(14,LOW);delay(500);
}  

Підвал форуму