Ви не увійшли.
має вистачити десь на 300 мс. Теоретично можна встигнути. Але це дуже оптимістична оцінка
unsigned long start = millis();
prefs.begin("actuator", false);
prefs.putInt("position", position);
prefs.end();
ets_printf("actuator save time: %drn", millis() - start);
position_changed = false;
Встигає за 1 мс ESP32 капєц швидка штука
Нраіцца.
А зберігати в MQTT дійсно можна. Це працює, але без гарантій. Якщо wifi відвалиться - упсь.
Продовження
Для управління моторчиком планував використати модуль MC33886, але, на жаль, трапився бракований. Тому довелось придумувати свою реалізацію Н-мосту з того, що знайшлось у коробці. У коробці знайшлись малопотужні релюшки HK4100F. Китайці обіцяють струм 3А, але, мені здається, що з індуктивним навантаженням вони довго не протягнуть. Тому придумав такий лайфхак - комутацію релюшками робити з відключеною напругою, а напругу подавати окремим ключем з невеликою затримкою. Тим же ключем можна робити плавний старт. Так, можна накрафтити і H-міст повністю на mosfet'ах.. Але це буде трохи складніше, а для моєї саморобки не має особливого смислу.
Замість контроллера взяв ESP32-C3. Цікава штука, хто не пробував - рекомендую. Після цього Arduino Nano - якийсь артефакт із минулого . Дофіга пам"яті, дофіга флешки, WiFi, можна обновляти прошивку без проводів, дебаг прямо з IDE.. Але є і деякі неочевидні речі. По перше, антена. Вона припаяна з порушенням всіх норм міжнародного права і здорового глузду
Щоб радіо працювало більш стабільно, треба припаяти до антени кусок проводу довжиною 31 мм (гуглиться). Інші методи у мене не спрацювали. Окремого конвертора USB-UART, як на Arduino, тут немає. Якщо хочеться бачити логи - підключаємо свій. Наче є спосіб задіяти вбудований в чіп USB-CDC, але можливо це зламає on chip debug.. не пробував.
Була ідея ловити пропадання напруги живлення, і, поки є енергія в конденсаторах, зберігати налаштування програми на флешку.. Але завади від мотора досить інтенсивні, багато false positive.. Поки не придумав рішення.
Хм, https://github.com/stanekTM/TX_nRF24_5ch_LED
Точно шукали?
До речі, ліба Adafruit_SSD1306 всередині на ifdef
Я якось робив саморобку, з цим дисплеєм, енкодером і аналоговими кнопками. І якось так вийшло, що ліба від Гувера для дисплея конфліктувала з лібою від нього ж, але для кнопок Розбиратись було влом - де дисплей, де кнопки, і не розумію я цей його стиль, взяв лібу для дисплея від Adafruit - все завелось. Мораль в цій байці відсутня
Ну особисто я не заперечую
Якби мені захотілось такого, як би я робив?
GyverOLED<SSD1306_128x64> oled; // Обьект дисплея
Мабуть спробував би шаблон, який підходить до мого дисплея, 1306 i2c і 1106 SPI мабуть чимсь відрізняються. Але перед тим обов"язково запустив би якусь мінімальну демку, щоб впевнитись, що ця ліба дійсно пряцює з моїм дисплеєм.
Або переписав би під ту лібу, яка точно працює.
Або купив би підходящий дисплей. 120 грн в Україні зразу, чи 1 бакс на Алі за 2 тижні.
Десь так.
А говнокод без синтаксичної розмітки я б взагалі нікому не показував. Тим більше що вмикається вона одною кнопкою. Мені це не коштує нічого, а людям приємно.
#define OLED_SOFT_BUFFER_64 // Буфер на стороне МК
#include <GyverOLED.h> // Библиотека дисплея
GyverOLED<SSD1306_128x64> oled; // Обьект дисплея
#include <GyverButton.h> // Либа кнопок
GButton up(3, HIGH_PULL); // Кнопки
GButton down(4, HIGH_PULL);
GButton ok(2, HIGH_PULL);
#define ITEMS 24 // Общее кол во пунктов (больше 8 - нужно несколько страниц)
Правда, краще ?
Пробував розкоментувати рядок GyverOLED<SSD1306_128x64
дисплей SSH1106 не працює
1306, 1106, яка різниця..
2018-11-06 18:12:03
7 років пройшло, не думаю що цей проект ще актуальний.
https://web.archive.org/web/20241212164627/http://www.byvac.com/index.php/ASI_Library_for_the_Arduino
Хм, вебархів - бімба
Але походу ця тема з ASI не дуже популярна серед мейкерів. Ну, логічно. Справжніх буйних, які будуть дебажитись на проді, їх мало
Якщо до ардуїни добавити нормальне живлення, нормальний корпус, нормальний input-output, з ізоляцією і захистом, то вийде нормальне промислове рішення, яке працюватиме не тільки на столі. Але воно коштуватиме теж нормально.
Того ніхто не знає (ц)
Вдалось прочитати повідомлення?
Вашу картинку видно десь так
Спробуйте інакше.
Коли пишете як зареєстрований юзер - видно кнопку Завантаження.
Оце надумався зробити в теплиці автоматику, щоб вікно само відкривалось і закривалось. Готовий потужний привід коштує як пів теплиці, тому вирішив спробувати запиляти замостійно.
Ні токарного верстата ні 3Д прінтера немає, є шуруповерт, болгарка, зварювальний апарат і Епіцентр з безкоштовною доставкою
В Епіку замовив трубу 25х1.5 мм - в неї ідеально стає підшипник, 20х1.5 мм, підшипник 608 ZZ, шпильку М8 (здогадуюсь, що різьба трохи не така, але що маємо те маємо), вварні гайки. Стопорні кільця для підшипника вирізав з тієї ж труби 25 мм - відрізав сегмент 10 мм і вирівняв. Одне кільце вварив, інше - фіксується гвинтами М3. Квадратну втулку зварив з квадратної труби 16 мм, магніт зафіксував термоусадкою. Щоб шпилька не прокручувалась у втулці - зробив лиску. Гайки на шпильці зафіксував фіксатором різьби.
Мотор-редуктор склопідіймача ВАЗ - з ОЛХ.
Неодимовий магніт, мікрик, датчик Холла (аналоговий) - arduino.ua.
Чутливості датчика досить, незважаючи на метал кругом - напруга міняється від 1.5 до 2.5 В.
Можна писати код. Too bee contiiinue..
Якась ардуінофобія ... hmm
Навпаки
Якщо використовуєте Arduino Core - дивно не бути послідовними і не використовувати ардуїнівські ліби. Ви ж прямо в регістри UART не пишете? Хіба що вам ліцензійно чистий код потрібен..
Це не наш шлях ...
arduino-way це використовувати по максимуму вже написаний код.
Ну, хіба що самому цікаво погратися в С
https://docs.arduino.cc/libraries/nmeaparser/
Все вже кимсь написано
Підкажіть плз просту програму для 3Д моделювання. Побажання нескладні Намалювати циліндр, в ньому підшипник, в підшипнику вал, на валові різьба.. Моторчик, кінцевик, датчик обертів.. Щоб можна було отримати чи підігнати розміри без експериментів. І щоб були бібліотеки готових компонентів, бо вимальовувати кожну кульку в підшипнику не хочеться.
Blender пробував, щось воно не зайшло. Є щось простіше, для колгоспників?
Я використовую цю понижайку
Блін
У вас на картинці одне, напаяне щось інше..
Короче. По живленню пролазить імпульсна завада. Щось з цим робіть. Або напаюйте конденсатори, зразу з low esr, щоб 2 рази не вставати. 1000мкф. і кераміку. Або намалюйте що насправді там відбувається.
Або заживити ардуїну через окремий dc-dc конвертор. https://arduino.ua/prod5471-mini-modyl-ponijaushhego-preobrazovatelya-mp1482-mini360-v2 наприклад.
Понижайка у вас неправильна.
Потрібно конденсатори на вході і на виході, і електроліти, раз в 10 більшої ємності, і керамічні, на 0.47 мкф.
Можливо також варто задіяти watchdog timer.
https://github.com/adafruit/Adafruit-ST7735-Library/ не хочете розглянути?
google://dwin arduino library
їх дофіга
можна не гратися в реверс-інжинірінг
ЗІ
Щось форум глючить. Якісь повідомлення показує, якісь ні..
Сорян, був неправий.
Ну тоді читати https://arduino.ua/prod2423-sim800c-v2-modyl-gsm-85090018001900-bluetooth - там цілий епос.
https://arduino.ua/prod1665-gsm-modyl-na-sim800l
Звертаємо увагу, що у модуля напруга логічного високого рівня становить 2.8В, що вимагає застосування перетворювача логічних рівнів при використанні модему з контролером Arduino.
Перевищення вхідної напруги інтерфейсу UART призведе до псування модуля SIM800!
https://arduino.ua/prod2165-preobrazovatel-logicheskih-yrovnei-dvynapravlennii врятує наступним разом.
Не вірю.
+1
Але цікаво було б побачити цю історію успіху
танунафіг..
Дешевше переписати з нуля.
Стороння людина в простиню з digitalread/digitalwrite без труда не врюхає.
while(1) - можна спокійно викинути, функція loop() сама перезапускається.
FlexiTimer2 - хз що це і як воно працює, підозрюю що якась ліба з таймером. Без вивчення readme таке крпще не використовувати.
TubeDisplay4Bit - судячи з назви, щось пов"язане з дисплеєм. Але всередині там щось з секундами робиться.
В пєчьку! (ц)